Bootstrap

小米note pro一代(leo)线刷、twrp、magisk、TODO: android源码编译

本文主要说android5

整体思路

android 5.1 + twrp + magisk + Zygisk(Riru) + Dreamland(xposed)

Riru不支持android5.1, 因此只能选择Zygisk : 如果你正在使用 Android 5,你必须使用 Zygisk 因为 Riru 并不支持 Android 5.

基于magisk之上的xposed 其中提到的 作者修改的xposed-framework下载链接XposedInstaller 3.1.5 已经失效了 , 改用独立的xposed, 但是独立的xposed隐藏性差?

寄生于magisk下的xposed: Android Lollipop (5.1, sdk22): original Xposed (ART) (Magisk Systemless-ly) / XposedInstaller_3.1.5下载网页/xposedinstaller_3-1-5-Magisk Systemless-ly.apk

放弃EdXposed 因为: EdXposed只能支持supports Android 8.0 ~ 11 不支持android5.1

android5刷机环境准备

腾讯androidSdk网页/platform-tools_r23-linux.zip

cd /app5/mi_leo/

wget https://mirrors.cloud.tencent.com/AndroidSDK/platform-tools_r23-linux.zip
unzip platform-tools_r23-linux.zip -d .
#/app5/mi_leo/platform-tools/fastboot

PATH_BASE=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH=/app5/mi_leo/platform-tools:$PATH_BASE
which adb  # == /app5/mi_leo/platform-tools/adb
which fastboot # == /app5/mi_leo/platform-tools/fastboot

线刷

线刷包下载

unbrick_rom_url_slow=http://bigota.d.miui.com/6.1.7/leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585.tgz
#下载很慢的url, 才几十KB

unbrick_rom_url_fast=${unbrick_rom_url_slow/bigota.d.miui.com/bkt-sgp-miui-ota-update-alisgp.oss-ap-southeast-1.aliyuncs.com}
#unbrick_rom_url_fast==http://bkt-sgp-miui-ota-update-alisgp.oss-ap-southeast-1.aliyuncs.com/6.1.7/leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585.tgz
#更换域名后 下载速度正常了


axel -n 5 $unbrick_rom_url_fast

刷机步骤

  1. 解压线刷包: tar -xf leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585.tgz

  2. 手机进入fastboot模式: adb reboot bootloader 或者 手机彻底关机情况下, 先按住音量下不放手 、 再按开机键

  3. 运行刷机脚本: cd leo_images_6.1.7_20151221.0000.11_5.1_cn/ && bash -x flash_all.sh

  4. 刷完后, 自动重启,进入android首次运行设置

观看:版本

观: 版本

进入android ,设置中看到 版本为

  • 型号: MI NOTE PRO
  • Android版本 : 5.1.1 LMY47V
  • Android安全补丁程序级别 : 2016-01-01
  • MIUI版本:MIUI 7 6.1.7 | 开发版
  • 基带版本:BO.2.6.c1.2-0106_2249_5b57 e09
  • 内核版本:3.10.49-g17e0411
  • 谷歌版本号:LMY47V

猜测: LMY47V表示git分支android 5.1.1下的某个git提交

google rom 网页 中 看到 有7个设备支持Android版本5.1.1 (LMY47V), 且Android5.1.1共有3个:

  • 5.1.1 (LMY47V)
  • 5.1.1 (LMY48J)
  • 5.1.1 (LMY48N)

这说明 LMY47V表示git分支android 5.1.1下的某个git提交

twrp2.8正常启动

twrp2.8-小米leo下载: 网页leo-miui-customization…/twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.zip, 已上传在此

adb reboot bootloader

cd /app5/mi_leo/

unzip twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.zip
#file twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img

md5sum  twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img # == adf1cf420e48ae965906ceb8267f26aa

fastboot boot  twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img
#downloading 'boot.img'...
#OKAY [  1.283s]
#booting...
#OKAY [  0.396s]
#finished. total time: 1.679s


警告 android5 不可安装magisk25.2或更高版本

此节未验证,是据此文猜测的

安装magisk-v23.0(通过twrp)

参考 lineage16-magisk27-ok.md

magisk版本列表,由此看到,Magisk支持android 5.0的的高版本 Magisk 23.0网页/Magisk-v23.0.apk 离最高版本 Magisk-v25.2.apk很近(上文已说明不用25.2的理由)

md5sum Magisk-v23.0.apk == ea450d98c25b4e09bb353e5bef8ca8a0

1. 重启手机到fastboot : adb reboot bootloader

2. fastboot启动twrp : fastboot boot twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img

3. twrp界面: Advance --> 启动ADB Sideload

4. 自动提取并修改boot.imgadb sideload Magisk-v23.0.apk

5. 在twrp下重启进android: adb reboot

6.1. android下卸载上一步安装的 不完整app magisk: adb shell 'pm uninstall com.topjohnwu.magisk'

6.2. android下安装完整 magisk : adb install Magisk-v23.0.apk

Dreamland(TODO)

如果你正在使用 Android 5,你必须使用 Zygisk 因为 Riru 并不支持 Android 5.

寄生于magisk下的xposed

寄生于magisk下的xposed: Android Lollipop (5.1, sdk22): original Xposed (ART) (Magisk Systemless-ly) / XposedInstaller_3.1.5下载网页/xposedinstaller_3-1-5-Magisk Systemless-ly.apk , 已上传在此 XposedInstaller_3.1.5–Magisk_Systemless-ly.apk

独立的xposed(通过twrp)

下载 dl-xda.xposed.info/framework/sdk22/arm64/ / xposed-v89-sdk22_Android5.1_Lollipop-arm64.zip, 已上传在此xposed-v89-sdk22_Android5.1_Lollipop-arm64.zip

下载 xposed-installer-3-1-5.apk网页

1~3 和 安装magisk-v23.0(通过twrp)的 1~3 一样的

0. 在android下安装 xposed-installer-3-1-5.apk : adb install xposed-installer-3-1-5.apk

1. 重启手机到fastboot : adb reboot bootloader

2. fastboot启动twrp : fastboot boot twrp-2.8.6.0-leo-ganfan-20150613-en-custom-materialised-play-light_lightblue-theme-v287x.img

3. twrp界面: Advance --> 启动ADB Sideload

4. adb sideload xposed-v89-sdk22_Android5.1_Lollipop-arm64.zip

5. 在twrp下重启进android: adb reboot

6. 解决问题: 打开 xposed后显示未激活

若 先步骤0 再步骤4,不会出现此问题
若 错误地 先 步骤 4 再 步骤0 , 会出现此问题
在这里插入图片描述

adb shell

/sbin/su
#  readlink -f /sbin/su # == /sbin/magisk64
ls -l /data/user/0/ |grep de.robv.android.xposed.installer
#drwx--x--x u0_a111  u0_a111           2024-11-23 15:19 de.robv.android.xposed.installer
chmod 777  /data/user/0//de.robv.android.xposed.installer
#drwx--x--x u0_a111  u0_a111           2024-11-23 15:19 de.robv.android.xposed.installer
reboot

很奇怪,加权限后 权限没变化, 但是重启后 ,xposed界面的未激活 变成 已激活了

在这里插入图片描述

参考 : Xposed框架90版本已安装,但尚未激活。

7. (报错 )三条线–>模块 报错 未找到Xposed模块

leo android源码 最低分支 android7.1 但又说 支持android 5.0.2 到 7.0

xiaomi-classic-dev组织下 搜索 xiaomi_leo / CyanogenMod 14.1==android7.1 == android_device_xiaomi_leo.git/cm-14.1

小米note pro 第一代 顶配版(leo) 找不到 CyanogenMod 12.1==android5.1

但是 android_device_xiaomi_leo.git/mkq-mr1/README.md却在说 Shipped Android Version : 5.0.2 up to 7.0 ,这意思是说 该仓库支持的版本范围为 android 5.0.2 up to 7.0 ?

寻找xiaomi_leo内核源码仓库、厂商vendor仓库

xiaomi-classic-dev(找到xiaomi_leo)

xiaomi-classic-dev组织下 搜索 xiaomi_leo

但是 这些仓库最低android版本为 CyanogenMod 14.1==android7.1 == android_device_xiaomi_leo.git/cm-14.1

CyanogenMod(无xiaomi_leo)

CyanogenMod组织下 搜索leo 只能获得 htc leo 手机: android_device_htc_leo.git, 却没有小米 note pro一代 顶配版 (leo)

CyanogenMod组织下 搜索msm8994支持以下手机, 但唯独没有xiaomi_leo

备注

brick==砖头,

unbrick非砖头救砖头

edle dlemergency download==紧急 下载

(可选)twrp寻找过程

代号为leo的手机有两个: 小米note pro一代 顶配版htc hd2

twrp/设备们/搜索leo/htc hd2(leo)/twrp leo

google搜索twrp leo 获得的是 htchd2==twrp leo

twrp没有收录 小米note pro一代 顶配版

twrp/小米没有leo

twrp 小米note pro一代 顶配版

xiaomitools/TWRP-20180729-3.2.3.0-leo.zip

twrp3.x报错(因twrp3.1至少需要android7.1)

adb reboot bootloader

cd /app5/mi_leo/

unzip TWRP-20180729-3.2.3.0-leo.zip
#file TWRP-20180729-3.2.3.0-leo.img

fastboot boot  TWRP-20180729-3.2.3.0-leo.img
#Sending 'boot.img' (29668 KB)                      OKAY [  0.806s]
#Booting                                            FAILED (remote: 'dtb not found')
#fastboot: error: Command failed

报错FAILED (remote: 'dtb not found')原因是 twrp3.x至少需要android7.0, 而这里是android5.1

报错原因: TWRP版本和Android版本需要一定的对应关系

此文复制一段话:

2.TWRP版本和Android版本需要一定的对应关系。

比如刷入Android 8.1,必须要TWRP Recovery版本≥3.2,低于3.2版本的TWRP刷入Android 8.1+,会卡在机型验证上报错。

有些机型3.2.x版本的TWRP Recovery只可用于刷入Android 8.1+,刷入7.1则需要3.1.x版本的TWRP Recovery。而有些则也可以用3.2.x版本的TWRP Recovery刷入Android 7.1、6.0或更老版本。

(可选)通过高通紧急下载edl串口端口9008刷机

android5刷机环境准备

腾讯androidSdk网页/platform-tools_r23-windows.zip

msys2@win10

#/app5==/g
cd /g/mi_leo/

wget https://mirrors.cloud.tencent.com/AndroidSDK/platform-tools_r23-windows.zip
unzip platform-tools_r23-windows.zip -d .
#/g/mi_leo/platform-tools/fastboot
mv platform-tools  platform-tools-windows
#/g/mi_leo/platform-tools-windows/fastboot

PATH_BASE=/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem
export PATH=/g/mi_leo/platform-tools-windows:$PATH_BASE
which adb  # == /g/mi_leo/platform-tools-windows/adb
which fastboot # == /g/mi_leo/platform-tools-windows/fastboot

刷机工具MiFlash*.exe下载、安装

404

同样替换域名后的MiFlash20150601_win10.exe下载返回404

unbrick_tool_url_slow=http://bigota.d.miui.com/tools/MiFlash20150601_win10.exe
unbrick_tool_url_fast=${unbrick_tool_url_slow/bigota.d.miui.com/bkt-sgp-miui-ota-update-alisgp.oss-ap-southeast-1.aliyuncs.com}
#unbrick_tool_url_fast==http://bkt-sgp-miui-ota-update-alisgp.oss-ap-southeast-1.aliyuncs.com/tools/MiFlash20150601_win10.exe
#替换后的地址说不存在404了
#axel -n 5 $unbrick_tool_url_fast

正常

MiFlash20150601_win10.exe下载网页

安装

安装MiFlash20150601_win10.exed:\MiFlash20150601_win10

刷机步骤

  1. 手机进入fastboot模式: adb reboot bootloader 或者 手机彻底关机情况下, 先按住音量下不放手 、 再按开机键

  2. 手机进入高通紧急下载模式(串口9008端口): fastboot oem edl

  3. 解压leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585.tgz

  4. 运行D:\MiFlash20150601_win10\MiFlash.exe 选择 解压后的目录leo_images_6.1.7_20151221.0000.11_5.1_cn_02396b5585 即开始刷机

在这里插入图片描述

参考

CyanogenMod对照android版本

小米 note pro 顶配版(leo) : 高通 骁龙810 == MSM8994

htc G9 , CyanogenMod/gingerbread(可能是android2.x) 编译

htc G9(Aria) : 高通 MSM7227, 出厂为android2.1

CyanogenMod/android.git

小米4 : 高通骁龙810 == MSM8974AC, 出厂为android4.4, MIUI 6

小米4 ,CyanogenMod/13.0编译


nexus5刷机、解锁bootloader、magisk(root)、解包boot.img(得initrd.img、zImage)、解initrd.img得根文件系统、解zImage得vmliux

线刷包url : 小米Note顶配不解BL锁获取ROOT权限

HyperOS丨MIUI 下载速度慢?解除限速教程

MiFlash 线刷工具旧版本收集。除个别早期版本,其它需要 Windows 64 位系统环境才能使用。

2.TWRP版本和Android版本需要一定的对应关系。

;