User Tools

Site Tools


doc:appunti:hardware:xiaomi_mi_a1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:hardware:xiaomi_mi_a1 [2019/11/09 15:38] – [Recovery Mode] niccolodoc:appunti:hardware:xiaomi_mi_a1 [2020/09/23 17:06] (current) – [August 2020 security update] niccolo
Line 10: Line 10:
 ^ Internal Memory  | 32 Gb   | ^ Internal Memory  | 32 Gb   |
 ^ CPU              | Qualcomm Snapdragon 625 2.0GHz 8-core  | ^ CPU              | Qualcomm Snapdragon 625 2.0GHz 8-core  |
 +^ Architecture     | arm64-v8a  |
 ^ Screen           | 5.5 Inches, 1920 x 1080  | ^ Screen           | 5.5 Inches, 1920 x 1080  |
 ^ Connector        | USB Type C  | ^ Connector        | USB Type C  |
Line 323: Line 324:
  
 The main content is a **payload.bin**, in our case it was an incremental update (November 2018 Security patches), with size of about 66 Mb. It seems that there is a tool able to extract the content of that payload files, see **[[https://forum.xda-developers.com/android/development/extract-files-ota-payload-bin-diff-t3959161|Extract files from OTA payload.bin full and incremental]]**. The main content is a **payload.bin**, in our case it was an incremental update (November 2018 Security patches), with size of about 66 Mb. It seems that there is a tool able to extract the content of that payload files, see **[[https://forum.xda-developers.com/android/development/extract-files-ota-payload-bin-diff-t3959161|Extract files from OTA payload.bin full and incremental]]**.
 +
 +===== March 2020 security update =====
 +
 +In March 2020 Xiaomi released a new security update, according to this post **[[https://piunikaweb.com/2020/03/18/mi-a1-android-10-update-dream-keeps-fading-as-the-device-picks-up-march-security-patch/|Mi A1 Android 10 update dream keeps fading]]**, it is another **AndroidOne v.9** relase, build number **V10.0.19.0.PDHMIXM**.
 +
 +I performed the upgrade re-installing **TWRP** and **Magisk** afterward. The starting conditions were:
 +
 +  * A/B System Updates status: **Current Slot: B** (checked via TWRP => Reboot screen).
 +  * Bootloader is **unlocked**.
 +  * Installed O.S.: Android: 9, Build number: **PKQ1.180917.001.V10.0.14.0.PDHMIXM** (check from Impostazioni => Sistema => Informazioni sul telefono).
 +  * From //Impostazioni// => //Sistema// => //Avanzate// => //Aggiornamento di sistema// we get informed about **Aggiornamento sistema disponibile**, **March 2020 security update** (1100.3 Mb). The file is already downloaded and the phone suggests to reboot to install.
 +  * **Magisk** v20.1 and **TWRP** 3.3.0 were installed into **boot partition** (Slot B).
 +  * **System partition** was the stock one: root privileges were never used to tamper the **/system** hierarchy.
 +
 +The system upgrade will **verify** the **boot** and the **system** partitions before attempting the installation, refusing to proceed if they were tampered. So I had to restore the stock boot image (loosing TWRP and Magisk).
 +
 +I restored the stock **boot_b.img** image (saved before TWRP and Magisk), using the ADB commands from a connected PC:
 +
 +<code>
 +adb reboot bootloader
 +fastboot flash boot_b boot_b.img
 +fastboot reboot
 +</code>
 +
 +I got **a problem** during this step: may be the **boot_b.img** was saved from version **9.6.8.0**, not from the currently installed **10.0.14.0**. Luckily enough, the only negative effect was that **the WiFi was not working**. This is a **logcat** excerpt:
 +
 +<code>
 +android.hardware.wifi@1.0-service: finit_module return: -1: Required key not available
 +android.hardware.wifi@1.0-service: Failed to load WiFi driver
 +android.hardware.wifi@1.0-service: Failed to initialize firmware mode controller
 +android.hardware.wifi@1.0-service: Wifi HAL start failed
 +</code>
 +
 +I proceeded with the standard upgrade path, trusting that the boot partition would be recognized as original and therefore upgraded to the new one. Remember: the update ZIP archive were already downloaded into the phone, so I just launched the **reboot and install** action. After some minutes and a few reboots, the system was upgraded to **Android v.9** build number **PKQ1.180917.001.V10.0.19.0.PDHMIXM**. Fortunately enough the WiFi were recovered.
 +
 +To complete the upgrade:
 +
 +  - Copy **twrp-installer-3.3.0-2-tissot.zip** and **Magisk-v20.1.zip** into the phone internal storage.
 +  - Backup the stock boot partitions.
 +  - Reinstall TWRP.
 +  - Reinstall Magisk.
 +  - Backup the rooted boot partitions.
 +
 +First of all **run the TWRP** recovery //fastbooting// the image directly from the PC hard disk (i.e. **without installing it into the phone**):
 +
 +<code>
 +adb reboot bootloader
 +fastboot boot twrp-3.3.0-2-tissot.img
 +</code>
 +
 +From //TWRP// => //Reboot// menu, I verified that the **Current Slot** is **A**: it is normal that the upgrade procedure swaps the boot partition during the upgrade. Using ADB from the connected PC, I backed up the stock boot images:
 +
 +<code>
 +adb pull /dev/block/mmcblk0p22 boot_a.img
 +adb pull /dev/block/mmcblk0p23 boot_b.img
 +</code>
 +
 +Now I installed the TWRP recovery into the boot partitions: from //TWRP// => //Install// => **twrp-installer-3.3.0-2-tissot.zip**. The installation warns about //Running boot image patcher on slot// A and B, and spit some harmless warnings about the **/vendor** mounting point. It is necessary to install TWRP before Magisk, otherwise TWRP will unroot the phone during its install.
 +
 +After a system reboot, and another boot into Recovery, I did //TWRP// => //Install// => **Magisk-v20.1.zip**. This will install //root// on the phone(the **su** program). Once again I got some harmless warnings about the /vendor mounting point.
 +
 +Finally I repeated the procedure to **backup** the patched **boot_a** and **boot_b** partitions.
 +
 +**NOTICE**: the ADB client required to perform the ''adb pull'' command is active when I boot TWRP using ''fastboot boot twrp-3.3.0-2-tissot.img''. If instead I boot TWRP from the phone, the ADB client is not active.
 +
 +Once rebooted the phone into normal system, I installed the root permissions manager: **MagiskManager-v7.5.1.apk**.
 +
 +===== August 2020 security update =====
 +
 +This is a new update from Xiaomi, still featuring **AndroidOne v.9** relase, build **PKQ1.180917.001.V10.0.24.0.PDHMIXM**. The upgrade was downloaded nightly over the WiFi. It seems impossibile to prevent such automatic download: I did not find any settings to prevent automatic upgrade download. After downloading, the phone asks to reboot to complete the upgrade.
 +
 +The starting conditions were:
 +
 +  * A/B System Updates status: **Current Slot: ?** (may be it was **A**, because after installation it is **B**).
 +  * Bootloader is **unlocked**.
 +  * **Magisk** and **TWRP** were installed, but may be they were hidden by accident. Infact the installation of the upgrade went OK after a reboot, whereas it should fail because the boot sector is tampered with **Magisk su**.
 +  * **System partition** was the stock one: root privileges were never used to tamper the **/system** hierarchy.
 +
 +After the upgrade, I did the following to get **root again**:
 +
 +  * adb reboot bootloader
 +  * fastboot boot twrp-3.3.0-2-tissot.img
 +  * Verified from TWRP => Reboot: **Current slot: B**
 +  * adb pull /dev/block/mmcblk0p22 boot_a.img
 +  * adb pull /dev/block/mmcblk0p23 boot_b.img
 +  * TWRP ⇒ Install ⇒ **twrp-installer-3.3.0-2-tissot.zip**\\ Running boot image patcher on slot a and b.
 +  * system reboot
 +  * adb reboot bootloader
 +  * fastboot boot twrp-3.3.0-2-tissot.img
 +  * TWRP ⇒ Install ⇒ **Magisk-v20.4.zip**\\ Current boot slot: _b, unpacking, patching, repacking, flashing new boot image.
  
 ===== Web References ===== ===== Web References =====
doc/appunti/hardware/xiaomi_mi_a1.1573310334.txt.gz · Last modified: 2019/11/09 15:38 by niccolo