在Xperia XZ上刷入AOSP
教程作者:StaticGTF
原文链接:https://sx.ix5.org/info/flashing-aosp-on-xperia-xz/
修订版本:1.1(2021-09-08)
本人第一次尝试汉化,水平有限,部分专有名词可能翻译有误,不对之处还望指正!
所有脚注均为本人增补,与原文无关。
请严格遵守以下步骤,并以正确的顺序来进行操作。
操作简览:
对于了解并熟知相关步骤的人,可以直接参考本简览步骤,否则请从第一步开始阅读。
1.请升级或刷入最新的官方系统,然后解锁Bootloader
2.从SONY开发者世界下载V9版本的OEM文件,进入fastboot将OEM文件刷入OEM
分区
3.刷入此修复后的TWRP,修复者为Artem Labazov(@ ab123321)1
4.在TWRP中刷入最新的AOSP ROM
嗯,就是这样。
1.计算机上的安装准备
在准备刷入ROM之前,你需要准备一台可以正常使用的计算机且已安装好相关驱动,用来给设备刷入最新的FTF文件,Recovery和OEM文件。
如何设置及进入Fastboot模式,有许多的其他教程可以参考,但此教程对大部分人来说足够用,所以就不一一阐述了。
在Windows系统里:
将以下软件下载并安装到您的计算机上:
- 来自于XDA开发者的Minimal ADB and Fastboot
- Androxyde开发的线刷工具FlashTool
您还需要安装以下驱动:
-
Xperia XZ 驱动程序
-
Flashmode 驱动程序
-
Fastboot(S1)驱动程序
驱动程序位于FlashTool安装文件夹中,您可能需要临时禁用驱动签名验证2并重新启动计算机,才能安装这些驱动程序。
在Linux系统里:
下载Androxyde开发的线刷工具FlashTool
然后,通过不同Linux发行版的软件包管理器安装Fastboot
和ADB
工具。
-
在Ubuntu上:
apt install android-tools-adb android-tools-fastboot
-
在Arch Linux上:
pacman -Syu android-tools
2.下载必要的文件
在开始刷机之前,请确保您已经在计算机上下载或安装了所需的所有文件。最好把所有需要的img文件都放在同一个文件夹中,这样在刷入的时候就不会因为输入各种路径而麻烦(比如放在包含fastboot.exe的文件夹里)。3
-
下载索尼官方的最新固件(以
.FTF
为后缀的文件),它的命名规则应该是在后面有.184
或者.192
的后缀,抑或是以地区为结尾4。具体可以参阅此最新固件列表。您还可以使用XperiFirm
附带的下载工具FlashTool
进行下载。 -
在Sony开发者世界里下载适用于代号为
tone
、于Android Pie、内核版本为4.9的OEM文件5,此文件的文件名格式是SW_binaries_for_Xperia_Android_9.0_2.3.2_v$VERSION_tone.zip
,其中$VERSION
目前为V9 -
在sx.ix5.org上下载最新的AOSP 10
-
可选:从XDA上下载最新的稳定版Magisk
-
可选:从opengapps.org里下载OpenGApps。您需要选择Android 10.06、ARM64,除此之外,您还可以根据您的需求选择不同的版本,我建议选
pico
,因为它的体积最小。
3.解锁Bootloader
在刷机之前,您需要解锁您设备的Bootloader,请仔细阅读此网页的内容,并知晓解锁Bootloader所带来一切可能的后果。
如果您设备上的Bootloader已经被解锁,则可以直接跳至下一步。
⚠警告!
在解锁Bootloader之前,请先备份您设备上的Trim Area(即"TA"分区),解锁Bootloader是一个不可逆的过程7,DRM密钥以及设备保修都可能会永久丢失!
如果您设备的Bootloader尚未解锁,您则需要访问Sony设备解锁页面来解锁Bootloader。
4.线刷最新的固件
通过USB数据线连接您的设备与计算机,在计算机上完成以下步骤。
如果您先前已升级到最新的官方固件(即.192
)并且仅进行了简单的测试,例如刷入了OmniROM8,则无需再重新线刷固件,您可以直接跳过此步骤。
您可以通过以下方法进入S1刷机模式9:完全关闭设备电源,然后按住音量-
键不要松手,使用USB数据线将设备连接至电脑,直至设备的呼吸灯变为绿色后方可松开按键。
随后,您便可以使用Androxyde开发的FlashTool刷入最新可用的、基于Android Oreo的、文件后缀为.FTF
的线刷固件。
5.刷入TWRP Recovery
您可以通过以下方法进入Fastboot模式11:完全关闭设备电源,然后按住音量+
键不要松手,使用USB数据线将设备连接至电脑,直至设备的呼吸灯变为蓝色后方可松开按键。
进入先前准备好的ADB命令行环境 ,执行以下指令:
fastboot flash recovery twrp-3.2.1-0-kagura-ab-x.img
(您必须使用此修复后的recovery进行后续操作,因为正式版的TWRP无法挂载/data分区或处理加密)
执行完指令暂时不要退出命令行与断开手机连接,请先继续下一步(如果没有刷OEM的需要的话则可以跳过下一步)
6.刷入OEM文件
在刷入前请先检查是否解压了从索尼OEM列表中下载的zip文件,并得到以.img
为后缀的文件,再使用以下指令刷入索尼的OEM文件:
(这里需要注意一下,刷入recovery和OEM时的目标分区是不一样的!)
fastboot flash oem SW_binaries_for_Xperia_Android_9.0_2.3.2_v3_tone.img
7.TWRP Recovery中的操作
从设备上拔下USB数据线,并检查设备是否完全断电。然后同时按住音量-
键和电源
键启动设备进入Recovery模式,当出现白色的Sony logo时,松开所有的按键。
7.1 清除数据(可选,但强烈建议执行此操作)
请在TWRP中清除/data
、/cache
和Dalvik的缓存:
- 开机引导至TWRP后,从左向右滑动下方的解锁条,即可启用系统修改。请不要将系统分区标记为“只读”(Read only)!
- 点击主菜单里的“清除”(Wipe)按钮,然后执行恢复出厂设置,依然是从左向右滑动即可继续。(用户的个人文件会依旧保存在内部存储中,但所有原有的应用程序数据会被删除)
如果您是从官方固件准备刷入AOSP,那么您必须执行此操作;如果您是从先前的Android P或者Android Q执行升级操作,则可以跳过此步骤;但是如果遇到问题,那么您至少需要清除一下/cache
分区,如果还不能解决问题,请备份好您的重要数据并尝试清除/data
分区。
7.2 刷入AOSP ROM
- 设备开机引导至TWRP后,从左向右滑动下方的解锁条,即可启用系统修改。请不要将系统分区标记为“只读”(Read only)!
- 通过USB数据线将设备连接至计算机,此时设备应出现在Windows资源管理器左侧的设备列表中。
- 将AOSP ROM的zip文件传输到手机的内部存储中。
- 点击“安装”(Install)按钮,并在内部存储中选择AOSP(或基于AOSP)的ROM文件。
- 从左向右滑动即可开始刷入。
7.3 修复/dsp file labels
本步骤仅适用于部分基于Android Pie的类原生ROM,Android 10不再需要此修复程序。
如果您曾经安装过基于Android Oreo的自定义内核ROM(例如OmniROM 8.1),则该dsp
分区的SELinux file labels会是错误的。有关更多详细说明,请参阅 SODP文件的改写。
这种情况下,只需要在TWRP中刷入DSP label修复程序即可。
7.4 刷入双卡修复程序(可选)
如果您使用的是双卡设备(F8332),请下载双卡修复程序。
-
将双卡修复程序的zip文件传输到手机的内部存储中。
-
点击“安装”(Install)按钮,并在内部存储中选择双卡修复文件。
-
从左向右滑动即可开始刷入。
7.5 刷入OpenGApps(可选)
如果在刷入GApps后遇到问题,请清除所有的数据,然后再次刷入ROM,且不要再尝试刷入GApps。
-
将OpenGApps的zip文件传输到手机的内部存储中。
-
点击“安装”(Install)按钮,并在内部存储中选择OpenGApps的zip文件。
-
从左向右滑动即可开始刷入。
7.6 刷入Magisk(可选)
如果您需要刷入Magisk,请刷入Magisk v18.1或更高版本,然后再安装Magisk Manager应用程序,安装Magisk模块前请仔细阅读模块说明,确定该模块是否兼容您的设备!
-
将Magisk的zip文件传输到手机的内部存储中。
-
点击“安装”(Install)按钮,并在内部存储中选择Magisk的zip文件。
-
从左向右滑动即可开始刷入。
如果您已刷入Magisk,则手机将在首次启动时可能会再重启一次,这是完全正常的。
8.重新启动
返回TWRP的主页,然后选择“重新启动”(Reboot)。如果TWRP建议您在设备中安装TWRP的应用程序,请拒绝并选择正常重启。
您的设备将需要一段时间才能完成启动(约5分钟或更长时间),等待其进入系统欢迎界面或主页即可。
注意!
可选部分
您可以尝试OpenCamera,Snap Camera(来自LineageOS)或众多 Google Camera移植版之一
故障排除
如果您的设备无法通过白色的Sony logo引导开机,或长时间卡在Android开机动画上,请尝试同时按住电源
键和音量+
键直到出现第一次振动,这个操作将会强制重启设备。
如果您需要重新进入TWRP,则必须先关闭手机电源。在任何状态下,只要按住电源
键和音量+
键直到出现三次振动,设备便可强制关机。然后松开按钮并按住电源
键和音量-
键即可引导至TWRP。
Magisk
如果您无法安装Magisk模块,或者安装完Magisk模块无法正常开机/使用,则它们可能与您当前使用的ROM不兼容。在上传错误报告之前,请删除所有Magisk模块(通过刷入Magisk卸载包卸载Magisk)(最新版的Magisk已经不需要单独下载卸载包了,如果需要卸载Magisk请直接刷入Magisk安装包)13,然后尝试重启设备。
加密无效
请参阅下面的“格式化/data“。
格式化/data
如果仍然无法正常启动AOSP,请尝试格式化/data
分区。
如果您在使用索尼官方固件时打开了加密功能,则可能在您使用AOSP前还必须格式化内部存储,这是因为官方固件似乎使用了与AOSP不同的加密版本或算法,从Android Nougat14开始,默认情况下,官方的固件都会进行加密。
在格式化/data
分区前,请将您所有的照片,应用程序等备份到计算机,因为这将完全清除您的内部存储!
对于32GB(单SIM卡)设备,请执行以下指令:
fastboot format:ext4:0x58dffc000 userdata
对于64GB(双SIM卡)设备,请执行以下指令:
fastboot format:ext4:0xcd5bfc000 userdata
对于上述指令,请在ADB与Fastboot环境下执行,因为在TWRP中执行清除操作并没有为crypto footer(需要32MB的空间)留下足够的空间,而您则需要运行全磁盘加密(FDE)。
以下是用于计算fastboot format
所需十六进制值的方法,也包括用于crypto footer的空间:
# Single-SIM:
# Reserve space for data encryption (23857201152-16384)
BOARD_USERDATAIMAGE_PARTITION_SIZE := 23857184768
# Dual-SIM:
# Reserve space for data encryption (55125737472-16384)
BOARD_USERDATAIMAGE_PARTITION_SIZE := 55125721088
然后使用Python计算十六进制值:
$ python
hex(23857184768)
'0x58dffc000'
hex(55125721088)
'0xcd5bfc000'
非常感谢StaticGTF 编写了本指南的大部分内容!
版权声明:本文为StaticGTF原创,Lenvers翻译,依据 CC BY-SA 4.0 许可证进行授权,转载请附上出处链接及本声明。
就是Minimal ADB的那个安装路径下,如果你先前已经安装过类似的ADB工具,也可以移步至那个ADB工具的安装路径下,把所需的img文件都放在那里,这样可以减少很多不必要的麻烦) ↩︎
比如XZ目前的最新固件版本应该是41.3.A.2.192,而且国行版固件的后面有CN的结尾 ↩︎
除此之外,如果你想刷入其他基于旧版AOSP的ROM,请前往SONY OEM文件下载列表中下载代号为tone且你所需要的对应Android版本的OEM文件 ↩︎
如果你想刷入其他基于旧版AOSP的ROM,请选择你所需要的Android版本 ↩︎
原文如此,但据我的了解,只要TA备份还在就有办法完美回锁(仅限自己的TA备份) ↩︎
原文如此 ↩︎
即俗称的“绿灯模式” ↩︎
教程为英文版,之后如果发现有比较好的中文教程可以替换成中文的 ↩︎
即俗称的“蓝灯模式” ↩︎
未汉化 ↩︎
如果你安装的是新版Magisk,在TWRP的“终端”(terminal)里可以访问data/adb/modules目录尝试删除导致异常的模块而不必卸载整个Magisk,旧版Magisk可能需要安装“mm管理器”这个模块,在“终端”(terminal)里使用 * /mm 指令才能尝试删除其他模块 ↩︎
即牛轧糖,Android 7.x的代号,包括前文的Oreo(奥利奥,Android 8.x)、Pie(派,Android 9)与Q(Android 10)都是Android版本的代号。 ↩︎