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
Last revisionBoth sides next revision
doc:appunti:hardware:xiaomi_mi_a1 [2019/11/09 15:38] – [Recovery Mode] niccolodoc:appunti:hardware:xiaomi_mi_a1 [2020/09/23 17:05] – [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.3.zip**\\ Current boot slot: _b, unpacking, patching, repacking, flashing new boot image.
  
 ===== Web References ===== ===== Web References =====
doc/appunti/hardware/xiaomi_mi_a1.txt · Last modified: 2020/09/23 17:06 by niccolo