手机基于Pixel 2XL
环境基于VMWARE: Kali Linux
镜像基于Android 10(Q)
VMWARE 拖拽缓存清除:rm -rf /root/.cache/vmware/drag_and_drop/*
VMWARE 记得随手打快照
1 先解锁
#Check version should be same if you have used sdk manager
#Check version to ensure the tools are running
adb --version
fastboot --version
#Check if your device is showing up. If not you need to make sure #you have proper Google USB driver installed and Device manager #should not show any warning. If everything is alright you can see #android device in device manager without any warning
adb devices
#To switch to bootloader mode use this command. You can #alternatively use pwr+vol_down, but i prefer using adb.
adb reboot bootloader
#Once bootloader has started run the command below to make sure #fastboot command can detect your device.
fastboot devices
#Now you can unlock your bootloader
fastboot flashing unlock
2 刷入TWRP并进行系统扩容
2.1 下载 TWRP
https://twrp.me/google/googlepixel2xl.html
2.2 刷入 TWRP
重启到 bootloader:
adb reboot bootloader
启动 twrp
fastboot boot /twrp-3.7.0_9-0-taimen.img
adb push /twrp-installer-3.zip /
在twrp中安装zip。
2.3 系统扩容
只有在第一次刷android 9 以上的系统需要扩容,以后可略过此步骤。
Flash the HH.R version of TWRP and launch it
Open terminal (TWRP -> Advanced -> Terminal)
Type hh_repart -m
Wait until your phone reboots
Install your rom
3 刷入谷歌原生镜像
3.1查看源码对应的版本和支持的设备
https://source.android.com/docs/setup/about/build-numbers?hl=zh-cn
Pixel 2XL 选择这个版本, 其他手机同理在这里找对应版本:
3.2下载选择版本的镜像
https://developers.google.com/android/images?hl=zh-cn#taimen
Version | Flash | Download | SHA-256 |
---|---|---|---|
10.0.0 (QQ3A.200805.001, Aug 2020) | https://flash.android.com/build/6578210?target=taimen-user&hl=zh-cn | https://dl.google.com/dl/android/aosp/taimen-qq3a.200805.001-factory-305df20c.zip?hl=zh-cn | 305df20c865426b9be467cc6a44081a8cac3992257f86ab9c5c91321596fd6b8 |
3.3刷入镜像
下载adb和flashboot工具,并放入环境变量中:https://developer.android.com/studio/releases/platform-tools.html?hl=zh-cn
设置环境变零:ANDROID_PRODUCT_OUT
为镜像所在目录。
手机进入 bootloader
(完全关机,音量向下键+安卓电源键), 进入镜像文件夹执行./flash-all.sh
进行刷入。
如果出错则替换 fastboot
文件继续尝试。 fastboot
目录查看:which fastboot
。
如果出现
archive does not contain 'system.sig'
, 就缓缓喝杯茶,等会再重复命令继续刷机。
3.4 刷三方镜像
3.4.1 lineageos
下载镜像:
https://download.lineageos.org/devices/taimen/builds
刷机教程:
https://wiki.lineageos.org/devices/taimen/
3.4.2 blissroms
https://sourceforge.net/projects/blissroms/files/Q/taimen/
3.5 安装原生镜像网络受限制
// 删除变量 Captive Portal
adb shell settings delete global captive_portal_mode
// 关闭谷歌服务检测检测
adb shell settings put global captive_portal_mode 0 (注:Android 8 不需要执行这一条)
adb shell settings get global captive_portal_mode (返回0)
// 删除默认的强制门户设置
adb shell settings delete global captive_portal_https_url
adb shell settings delete global captive_portal_http_url
// 修改新的设置
adb shell settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204
adb shell settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204
//设置中国时区
adb shell setprop persist.sys.timezone Asia/Shanghai
//设置NTP服务器
adb shell settings put global ntp_server ntp1.aliyun.com
这是几个国内可用的服务器地址,也可以使用自己的服务器,返回204即可。
小米:http://connect.rom.miui.com/generate_204
华为:http://connectivitycheck.platform.hicloud.com/generate_204
Vivo:http://wifi.vivo.com.cn/generate_204
Google 大陆: g.cn/generate_204
国内还可以用 connectivitycheck.gstatic.com / www.gstatic.com / ssl.gstatic.com ,国内会自动解析到北京Google那边,在境外的话又能解析到Google全球网络去。
4 刷入 Magisk
4.1 下载
下载最新的APK并安装在手机上:https://github.com/topjohnwu/Magisk
4.2 安装
根据官方文档进行安装:https://topjohnwu.github.io/Magisk/install.html#patching-images
4.3 检测ROOT权限
$ adb shell
$ su -
5 源码编译
https://source.android.com/setup/build/building
5.1 下载 AOSP源码包
使用清华镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
下面是每月打包的最新初始化包:
https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar
5.2 创建新分区用于源码编译
启动Gparted软件,在unallocated部分右击,选择新建,按照默认即可,即可新建分区,点击选择Apply,应用到磁盘。然后将这个新建的磁盘mount到某个文件夹:
$ cd Desktop
$ mkdir COMPILE
$ mount /dev/sdaX/ /root/Desktop/COMPILE
sdaX根据软件提示修改
将下载好的 aosp-latest.tar
放入 /root/Desktop/COMPILE
中,并解压:
`tar xvf aosp-latest.tar`
解压完成后删除压缩包释放空间rm aosp-latest.tar
5.2 准备编译环境
$ apt update
$ git config --global user.email "[email protected]"
$ git config --global user.name "Your Name"
$ apt install bison tree
$ dpkg --add-architecture i386
$ apt update
$ apt install libc6:i386 libncurses5:i386 libstdc++6:i386
$ apt install libxml2-utils
安装JDK11或8,11报错就用8:
$ apt install openjdk-11-jdk
下载aosp源码版本管理工具,并设置可运行
$ curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo
$ chmod a+x /usr/bin/repo
装htop,CPU、内存、缓存查询
$ apt install htop
装jnettop,系统网络流量连接查询
$ wget http://ftp.us.debian.org/debian/pool/main/j/jnettop/jnettop_0.13.0-1+b3_amd64.deb
$ dpkg -i jnettop_0.13.0-1+b3_amd64.deb
装tmux,窗口分屏软件
$ apt install tmux
将源码同步到最新状态
$ cd /root/Desktop/COMPILE/aosp/
同步源码树
$ repo sync -j8
-j8 是开启八个线程同时下载, 看你CPU牛不牛
此后,每次只需运行repo sync
即可保持同步。
5.3 驱动安装
Nexus 和 Pixel 设备的驱动程序二进制文件
https://developers.google.com/android/drivers?hl=zh-cn#taimenqq3a.200805.001
下载对应版本的驱动文件
[图片上传失败...(image-c80aaf-1699237827415)]
适用于 Android 10.0.0 (QQ3A.200805.001) 的 Pixel 2 XL 二进制文件
硬件组件 | 公司 | 下载 | SHA-256 |
---|---|---|---|
供应商映像 | https://dl.google.com/dl/android/aosp/google_devices-taimen-qq3a.200805.001-bbe1141b.tgz?hl=zh-cn | 1821dd417bc57cf70dbd69da7e3fb3ca5fd564a1755e1b7a83c95962ff6f1889 | |
GPS、音频、相机、手势、图形、DRM、视频、传感器 | Qualcomm | https://dl.google.com/dl/android/aosp/qcom-taimen-qq3a.200805.001-a89eddab.tgz?hl=zh-cn | 0405a1638911e5d16dd56afd68438f1d0dbf5a2309768b57fb0da741fb5c7a43 |
下载Google 和高通的版本驱动,分别解压和shell脚本执行:
$ cd /root/Desktop/COMPILE/aosp/
$ wget https://dl.google.com/dl/android/aosp/qcom-taimen-qq3a.200805.001-a89eddab.tgz?hl=zh-cn
$ wget https://dl.google.com/dl/android/aosp/google_devices-taimen-qq3a.200805.001-bbe1141b.tgz?hl=zh-cn
$ tar zxvf google_devices-taimen-qq3a.200805.001-bbe1141b.tar
$ ./extract-google_devices-taimen.sh
$ tar zxvf qcom-taimen-qq3a.200805.001-a89eddab.tar
$ ./extract-qcom-taimen.sh
5.4 编译
一定要先挂载磁盘:
$ mount /dev/sdaX/ /root/Desktop/COMPILE
建立工作目录:
$ cd /root/Desktop/COMPILE/aosp/
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
指定特定的版本, 这里用的支持Pixel 2xl的android10:https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds
$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r41
$ repo sync --current-branch
开始编译:导入环境变量
# cd /root/Desktop/COMPILE/aosp/
# source build/envsetup.sh
选择设备:
# lunch
选择 Pixel2xl,可调试带ROOT的combo:
aosp_taimen-userdebug
或者不带调试和ROOT的生产combo:aosp_taimen-user
(推荐)
user:适合生产环境
userdebug:与user类似,但具有 root 访问权限和调试功能; 调试的首选
eng:带有附加调试工具的开发配置
export LC_ALL-C
python环境需要2.7.
开始编译,你的cpu牛起来:
make -j8
编译完成的系统镜像位于当前目录的out/target/product/sailfish/下,后缀.img
。
替换原生镜像中的IMG:
重新打zip,替换原文件。
使用编译出来的fastboot进行刷机。