# LineageOS 刷機筆記
Authors & Contributors:
- Mat
## 觀念介紹
### 主要流程
### A/B分割區
#### Q: 如何檢查目前的分割區為何?
```
fastboot getvar current-slot
```
#### Q: 如何手動切換分割區
```
fastboot set_active b
```
### 主架構晶片
- CPU & ARCH
- SoC
### 打開"開發者選項"
## 事前準備
### 取得型號資訊
至系統的 "設定" >> "關於手機" 的設定分頁裡,找出 "型號" 參數。
然後至 LineageOS 支援列表查找對應的型號:
<https://wiki.lineageos.org/devices/>
舉 `H4133` 為例:
- 該型號列在 `Xperia XA2` 的 "Supported models" 內
- codename 為 `pioneer`
- 參考網頁: <https://wiki.lineageos.org/devices/pioneer/>
### 安裝 adb/fastboot 工具
```
sudo apt install adb fastboot
```
確認版本資訊:
```
adb --version
fastboot --version
```
### 下載檔案
## 案例: Sony Xperia XA2
```
adb reboot bootloader
```
```
$ fastboot devices
CQ300191LQ fastboot
```
```
$ fastboot boot twrp-3.7.0_9-0-pioneer.img
Sending 'boot.img' (32464 KB) FAILED (Write to device failed (Cannot send after transport endpoint shutdown))
fastboot: error: Command failed
```
這裡改中間改接一條 USB Hub 就可以通了
```
adb sideload lineage-19.1-20220818-nightly-pioneer-signed.zip
```
```
adb reboot recovery
```
- 選擇 "Apply Update"
- 選擇 "Apply from ADB"
- 此時會出現 "ADB Sideload" 的訊息
執行
```
adb sideload MindTheGapps-12.1.0-arm64-20220605_112439.zip
```
遇到
```
Signature verification failed
Install anyway?
```
選擇 "Yes"
回到主選單
選擇 "Reboot system now"
## 案例: Google Pixel 4
## 案例: Xiaomi Redmi 10C
```
adb sideload F-Droid.apk
```
2022-10-13:
```
adb reboot recovery
```
進到 recovery mode 之後
按 "Factory reset"
接著回到主選單
選 "Advanced" => "Enable ADB"
選 "Apply Update" => "Apply from ADB"
```
adb sideload MindTheGapps-12.1.0-arm64-20220605_112439.zip
```
再按 "Reboot system now" 重開機
裝 F-Droid
先到 https://f-droid.org/ 下載 apk
然後執行
```
adb install F-Droid.apk
```
裝 Magisk
自 https://github.com/topjohnwu/Magisk/releases/tag/v25.2
下載
```
adb install Magisk-v25.2.apk
```
```
adb root
adb shell
```
```
$ adb shell
fog:/ # whoami
root
fog:/ #
```
```
fog:/ # ls -l /dev/block/by-name/ | grep boot
lrwxrwxrwx 1 root root 16 1970-05-11 00:38 boot_a -> /dev/block/sde11
lrwxrwxrwx 1 root root 16 1970-05-11 00:38 boot_b -> /dev/block/sde33
lrwxrwxrwx 1 root root 16 1970-05-11 00:38 vendor_boot_a -> /dev/block/sde20
lrwxrwxrwx 1 root root 16 1970-05-11 00:38 vendor_boot_b -> /dev/block/sde43
fog:/ #
```
```
dd if=/dev/block/by-name/boot_b of=/data/media/0/boot.img
```
```
adb pull /data/media/0/boot.img
```
進到 Magisk 程式,點選安裝
=> "選擇並修補檔案"
完成後會放在 Download 目錄
```
/data/media/0/Download/magisk_patched-25200_APUyA.img
```
用 adb pull 下來
```
adb pull /data/media/0/Download/magisk_patched-25200_APUyA.img
adb reboot bootloader
```
```
fastboot flash boot magisk_patched-25200_APUyA.img
fastboot reboot
```
## 實測
版本組合:
| 項目 | 主系統 | Magisk | LSPosed | Shamiko | Universal SafetyNet Fix | Magisk Hide Props Config |
| ---- | -------------- | ------------ | ------- | ------- | ----------------------- | ------------------------ |
| (A) | LineageOS 19.1 | v25.2 zygisk | v1.8.3 | v0.5.2 | v2.3.1 | v6.1.2-v137 |
測試要點:
- 將測試目標 App 加進 Magisk 的 DenyList
- 重新啟動前,先清除先前的執行狀態
- 進入目標 App 的 "App info"
- 按 **Force stop** 強制停止運行中的 instance
- 進到 **Storage & cache**
- 按 **Clear storage**
- 優先通過 **SafetyNet Test** 測試
- https://play.google.com/store/apps/details?id=org.freeandroidtools.safetynettest
- 通過後,再進行其他 Apps 測試
- 建議關掉 USB debugging 的功能(開發者選項)
### SafetyNet Test
| 名稱 | 最新測試日期 | 測試結果 | 版本組合 | 硬體 |
| -------------- | ------------ | -------- | -------- | -------------------- |
| SafetyNet Test | 2022-10-24 | Passed | (A) | Sony Xperia XA2+/XA2 |
### 銀行 Apps
| 名稱 | 最新測試日期 | 測試結果 | 版本組合 | 硬體 |
| ------------ | ------------ | ------------------------ | -------- | --------------------- |
| 玉山行動銀行 | 2022-10-23 | **Open failed** | (A) | Sony Xperia XA2/ XA2+ |
| 國泰世華銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 台新銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| Richart | 2022-10-24 | --(需關掉 USB debugging) | (A) | Sony Xperia XA2 |
| 富邦行動銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 兆豐銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 永豐銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 將來銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 元大銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 中國信託 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 遠東商銀 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 彰化銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
| 臺灣銀行 | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
### 行動支付 Apps
| 名稱 | 最新測試日期 | 測試結果 | 版本組合 | 硬體 |
| ------------------------ | ------------ | -------- | -------- | ---------------- |
| Google Pay | 2022-10-24 | -- | (A) | Sony Xperia XA2+ |
| LINE Pay | 2022-10-24 | -- | (A) | Sony Xperia XA2+ |
| 台灣行動支付(Taiway Pay) | 2022-10-24 | -- | (A) | Sony Xperia XA2+ |
| 中油 Pay | 2022-10-24 | -- | (A) | Sony Xperia XA2 |
### 其他 Apps
| 名稱 | 最新測試日期 | 測試結果 | 版本組合 | 硬體 |
| -------------------- | ------------ | -------- | -------- | ---------------- |
| Easy Wallet 悠遊付 | 2022-10-24 | -- | (A) | Sony Xperia XA2+ |
| 健保快易通(健康存摺) | 2022-10-24 | -- | (A) | Sony Xperia XA2+ |