使用U-Boot从Pritom P7提取Boot镜像
这是一篇关于如何使用U-Boot(通过UART访问)从基于Allwinner A133的廉价Android平板提取boot镜像的指南。原始固件在互联网上找不到。通过获取boot镜像并使用Magisk,你可以root你的Android平板,使其更加实用。
Pritom P7是一款非常廉价的Android平板。我从AliExpress以33美元的价格购买,但最低可以27美元找到。这是一款经过Google GMS认证的设备(通过Play Integrity检查,收到时未发现恶意软件),使用32位Android Go系统。我仅用它来测试一些32位Android应用的兼容性。
我以32.75美元的价格购买 该型号可能有多个不同规格的变种。我的是:Allwinner A133,1.5GB RAM(广告宣传为2GB,在Android信息中显示为2GB),32GB ROM,仅支持2.4 GHz WIFI,无GPS。
可解锁的Bootloader
幸运的是,我们可以通过开发者菜单解锁该设备的bootloader:使用adb reboot bootloader
,然后使用fastboot oem unlock
。一些廉价Android设备不允许解锁(例如,基于近期Unisoc SOC的设备)。
我可以使用OEM解锁选项允许bootloader解锁 我的平板产品ID是P7_EEA(Android 11),内核版本为Linux localhost 5.4.180-svn33409-ab20220924-092422 #28 SMP PREEMPT Sun Aug 20 19:13:45 CST 2023 armv8l。构建号为PRITOM_P7_EEA_20230820。
我没有找到针对该设备的Android漏洞利用,也没有发现任何后门。根据我的经验,一些廉价Android设备有隐藏的su后门。由于找不到漏洞利用,我放弃了从用户空间提取boot镜像的尝试。
对于某些SOC,你可以使用PC软件轻松读取/转储/提取闪存。我没有找到适用于此Allwinner芯片的任何软件。一个允许闪存读取的SOC例子是Unisoc(前身为Spreadtrum),但另一方面,我所知的搭载最新Unisoc SOC的手机和平板的bootloader不可解锁。
UART
幸运的是,该设备易于打开,UART引脚位于左上角靠近摄像头的位置。
顶部靠近摄像头的UART + FEL焊盘
以下是特写:
最右边的引脚是FEL,如果你想进入FEL模式。但进入FEL模式可以轻松使用:adb reboot efex
。
为了测试引脚是否输出内容,我只需将地线连接到USB-C地线,并在启动过程中用手按住电缆,按压TX焊盘。
如果你能这样按住手,则无需焊接
U-Boot
幸运的是,我们可以闯入u-boot(未锁定);从那里,可以轻松转储bootloader。有多种方法可以做到,但这是我所做的。首先,使用env print
打印环境变量,查看用于加载boot分区的命令:
|
|
注意:我建议你更改bootdelay,以便下次更容易进入U-boot。
我们可以看到,可以使用以下命令将闪存分区读取到特定内存位置:
|
|
现在,我们需要将此内存区域写入SD卡。我准备了一张FAT格式的SD卡。插入后,执行:sunxi_card0_probe
。这将检测到卡。我需要执行mmcinfo
,否则下一个命令将无法工作:mmc part
。
现在我们可以测试列出卡的内容:fatls mmc 0:1
。由于我们刚刚格式化,它应该是空的。接下来是将内存写入文件:fatwrite mmc 0:1 45000000 boot.img 4000000
。注意:所有数字均为十六进制。64兆字节只是boot分区的常见大小。
我们可以将Magisk APK安装到平板,运行它,然后选择“安装”和“选择并修补文件”。修补我们的boot.img,然后可以使用fastboot flash boot magisk_patched_xx.img
刷入magisk_patched_xx.img文件。
Magisk已安装
我本可以使用u-boot转储所有分区,但我觉得u-boot写入SD卡的速度较慢。在获得root访问权限后,我们可以通过访问/dev/block/by-name
中的文件轻松转储其余分区。
结论
我希望本指南能帮助你root你的Allwinner设备,即使你没有原始固件。
我认为除非你有特定需求,否则不值得购买此设备。如果你想测试Android Go或32位Android库的应用,这款平板还可以。这也是学习破解Android硬件的良好平板。
如果你使用相同的设备并想要boot分区,可以在此处下载:请确保你的硬件与我的完全相同,以防止变砖。