Android 12 分区签名如何搞?刷入 GSI 然后上锁 bootloader 无限重启 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
andforce

Android 12 分区签名如何搞?刷入 GSI 然后上锁 bootloader 无限重启

  •  
  •   andforce Jul 31, 2024 7630 views
    This topic created in 638 days ago, the information mentioned may be changed or developed.

    背景

    公司之前采购了一批的设备,系统版本有 Android10 ,Android12 ,因为上游厂商倒闭,因此这批设备没有上游厂商支持了。(之前会让上游厂商在 ROM 中做一些简单的定制,比如去掉/隐藏某个设置入口之类的,总是很简单的修改)

    目前现状

    因为没有源码,所以我们要重新利用起来这批设备想到了 GSI 。

    因为有之前厂商提供的签名私钥,就是 xxx.pem ,用于解锁、加密 vbmeta 和 vbmeta_system,

    针对 Android10 ,我们目前已经完整实现了:

    1. 解锁
    2. 刷入从 aosp 源码编译得到的 system.img
    3. 使用私钥重新生成 vbmeta.img 和 vbmeta_system.img,并刷入
    4. 上锁

    这些都完美工作。

    遇到的问题

    但是在处理 Android 12 的时候,遇到了问题。

    1. 解锁 -正常
    2. 刷入从 aosp 源码编译得到的 system.img -正常
    3. 使用私钥重新生成 vbmeta.img 和 vbmeta_system.img,并刷入 -正常
    4. 上锁 --会导致无限重启,不上锁 bootloader 的话,系统一切都是正常的。

    从分区上来看,android12 比 android10 多了个 system_ext 分区,并且使用 lpunpack 解包 super.img 后,多了很多 ab

    -rw-r--r-- 1 ddd ddd 271257600 7 月 29 17:39 product_a.img -rw-r--r-- 1 ddd ddd 0 7 月 29 17:39 product_b.img -rw-r--r-- 1 ddd ddd 654548992 7 月 29 17:39 system_a.img -rw-r--r-- 1 ddd ddd 0 7 月 29 17:39 system_b.img -rw-r--r-- 1 ddd ddd 343097344 7 月 29 17:39 system_ext_a.img -rw-r--r-- 1 ddd ddd 0 7 月 29 17:39 system_ext_b.img -rw-r--r-- 1 ddd ddd 805707776 7 月 29 17:39 vendor_a.img -rw-r--r-- 1 ddd ddd 0 7 月 29 17:39 vendor_b.img -rw-r--r-- 1 ddd ddd 15613952 7 月 29 17:39 vendor_dlkm_a.img -rw-r--r-- 1 ddd ddd 0 7 月 29 17:39 vendor_dlkm_b.img 

    而 android10 的 super.img 中 只有 system.img product.img 和 vendor.img 这三个。

    我本身没有 bsp 或者 fwk 的开发经验,上面那些操作完全来自于网上搜索~

    目前针对 Android 12 基本上把网上能尝试的操作都试了,有点没有头绪了~

    6 replies    2024-08-01 20:59:12 +08:00
    pagxir
        1
    pagxir  
       Jul 31, 2024
    kernel 能加载么,不能就是签名不对。你可以试试不要解锁,然后生成 ota 包。进入 recovery 然后 sideload 生成的 ota 包
    andforce
        2
    andforce  
    OP
       Jul 31, 2024
    @pagxir 现在用那个 xxx.pem 可以给 bootloader 解锁,签名方式与 android10 基本一致,感觉上应该是对的。

    现在情况是 android10 可以,android12 不行,不行指的是上锁后会无限重启,不上锁因为 vbmeta 不验证一切都正常。

    至于生成 OTA 包可能不行啊,因为我们没有源码。只有一个秘钥。

    还是说使用 AOSP 源码就能生成 OTA 包?
    andforce
        4
    andforce  
    OP
       Aug 1, 2024
    @lx0758 感谢,看来 Android12 引入了新的启动引导机制,目前 Android10 成功的,我再试试 Android11 ,至于 Android12 目前没有太多思路,搞一下 Android11 试试~
    pagxir
        5
    pagxir  
       Aug 1, 2024 via Android
    full OTA image 可以升级整个系统,即使原来的系统坏了,只要能进 recovery 就能刷进去。
    andforce
        6
    andforce  
    OP
       Aug 1, 2024 via iPhone
    @pagxir 这应该得有之前系统的源码才行吧,单纯从 asop 的代码弄不出来 ota 的文件吧。
    About     Help     Advertise     Blog     API     FAQ     Solana     858 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 41ms UTC 20:09 PVG 04:09 LAX 13:09 JFK 16:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86