【解包分析用】华为Pura70Pro+的鸿蒙Next升级包和回退包

@Ta 10-27 17:20发布,10-29 09:09修改 7305点击

解包分析用,华为不支持通过zip包安装更新,没法给自己手机用。

鸿蒙4.2升级到鸿蒙Next(不兼容安卓)的更新包

更新安装界面:http://update.dbankcdn.com/download/data/pub_13/HWHOTA_hota_900_9/af/v3/ke_6k0vEQVWRq8U5Gx-GyQ/oh_assets.zip
更新包本体:http://update.dbankcdn.com/download/data/pub_13/HWHOTA_hota_900_9/a3/v3/3tlkMNeBSxWqNthH3x2tXQ/full/update_full_base.zip

UPDATE.APP 文件拆分工具

包里的 UPDATE.APP 用这个工具拆分:https://github.com/marcominetti/split_updata.pl

拆分后可以得到各个分区的镜像,比如 BOOT.IMG、SYSTEM.IMG 等,有的镜像可以在最新版 Linux 系统内挂载(mkdir system; sudo mount SYSTEM.IMG system)。

SYSTEM.IMG 采用 EROFS,Linux 内核得打开这个文件系统支持才能挂载(已知Arch Linux可以挂载)。

Next的一次增量更新:

http://update.dbankcdn.com/download/data/pub_13/HWHOTA_hota_900_9/4f/v3/HFjnwm1RS8iy_tP6riPlnA/full/updater.zip

从鸿蒙next回退到4.2(兼容安卓)的回退包

  1. http://update.dbankcdn.com/download/data/pub_13/HWHOTA_hota_900_9/c4/v3/W1Zt1qRYST6VkLFQowT1ZQ/full/update_full_base.zip
  2. http://update.dbankcdn.com/download/data/pub_13/HWHOTA_hota_900_9/7b/v3/LnmMlrPyTlGpR2qu_HGNlA/full/update_full_preload_HBN-AL10_all_cn_R3.zip
  3. http://update.dbankcdn.com/download/data/pub_13/HWHOTA_hota_900_9/21/v3/TFUR75r_S-SH4m5nJFrm8g/full/update_full_cust_HBN-AL10_all_cn.zip

百度网盘下载

为防链接过期,顺便提供百度网盘下载,附带拆分好的各个分区镜像;此外还附带在next系统USB调试模式(hdc shell)里执行 hidumper 命令的输出(hidumper.txt),里面包含鸿蒙内核的启动参数和系统进程信息;mount.txt则包含系统分区挂载布局。

链接:https://pan.baidu.com/s/12pgwmS-DouwCqIzFGyBpKA?pwd=ot48
提取码:ot48

image.png(42.31 KB)image.png(42.83 KB)


鸿蒙内核的启动参数:

Hongmeng version: HongMeng Kernel 1.9.3.B030

/proc/cmdline

mntn_switch=011111111111101000101100000000000000011010000010001 last_bootup_keypoint=250 reboot_reason=COLDBOOT exception_subtype=no panic_pc=NA spec_info=0 tz_uefi_enable=1 ohos.boot.vendor.ddrsize=16 dma_zone_only=true swiotlb=2 allow_file_spec_access=true  console=ttyS0 sn=2Y中间十二位被移除03 UEFI=true pmu_nv_addr=0x10940000 ohos.boot.odm.conn.chiptype=hisi ohos.boot.odm.conn.schiptype=bisheng ohos.boot.odm.conn.chiptype=hisi enter_recovery=0 enter_erecovery=0 ohos.boot.uapp_ctx.match_nonce=0 efuse_status=0  ohos.boot.vercnt1=0 ohos.boot.trust_nv=0 ohos.boot.untrust_nv=0 ohos.boot.soft_nv=0  ohos.boot.hvb.enable=green ohos.boot.uapp_ctx.auth_role=0  ohos.boot.hvb.version=1.1 ohos.boot.hvb.device_state=locked ohos.boot.hvb.hash_algo=sha256 ohos.boot.hvb.size=31488 ohos.boot.hvb.digest=f2a11f50f75d094be49313ef7e96df8b83bf04dc4b1857d83f3f6b892dff8e8d ohos.boot.reboot_reason=normal ohos.boot.mode=normal ohos.boot.hardware=Kirin9010 ohos.boot.gpu_vendor=higpu.v200   ohos.boot.chiptype=Kirin9010_csv2   ohos.boot.devicename=default hmkernel.console.kernel-disable=2 hmkernel.console.loglevel=4 ohos.boot.modem_enable=1 normal_reset_type=COLDBOOT hw_kpatch=k=1  ro.boot.powerkey_restart_type=1 productid=0x2D085811 productid_unchecked=0x2D085811 cota_productid_unchecked=0xFFFFFFFF vendorcountry=all/cn devmodel=HBN-AL10 userHotaUpdate=success_0 recovery_update=0 check_vc=1  ohos.boot.udid=46中间六十位被移除0A runmode=normal backcolor=black  oba_version=20241018012340_OBA_VERSION userlock=locked oemmode=user developer_mode=1 uefilogo_time=6131 bl_time=6657  fg_cali=0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0 direct_charger=0,0,0,0  battery_nv_sn=42中间十二位被移除3B boot_detector_enable=1 boot_recovery_enable=1 bopd_mem_sp=on  TP_COLOR=210  tpcolor=black  usb_macbt=normal  NO_KEYCHORDS  boardid=13622 ohos.boot.board.boardid=13622 ufs_product_name=SGQ824FEBU0//XCF bootconfig loglevel=4 page_tracker=on fw_devlink=permissive printktimer=0xfb21b000,0x534,0x538 rcupdate.rcu_expedited=1 buildvariant=user default_boot_device=fa500000.ufs ohos.boot.swtype=normal ohos.boot.kernel=hongmeng 

鸿蒙内核的技术细节解读视频

视频链接

视频里提到鸿蒙内核有一个Linux驱动容器,可以在容器内加载Linux内核驱动(.ko),解包发现MODEM_DRIVER.img里面确实有一个modem_driver.ko,这是我目前发现的唯一一个.ko

此外视频还提到鸿蒙内核有能力启动AOSP(安卓框架),所以它肯定实现了很多AOSP需要的Linux内核功能。所以在mount.txt里看到SeLinux这样的东西也不用大惊小怪,这并不能代表 BOOT.IMG 里是Linux内核。(备注:虽然有能力启动,但next系统不附带安卓框架,不过这为VMOS这样的安卓虚拟机app移植到next提供了想象空间。)

目前我还搞不清楚 next 的 BOOT.IMG 里到底是什么东西(虽然理论上来说它应该是鸿蒙内核),但它肯定不是安卓风格的Linux内核(用strings BOOT.IMG看就能发现它没有安卓Linux内核内置的那一堆字符串,和鸿蒙4.2的 BOOT.IMG 明显不一样)。


更新:在 hidumper.txt 里找到另一个 .ko,of.ko,是通过以下形式运行的:

devmgr.elf --root-driver of.ko

其中devmgr.elf似乎就是上面那个视频里提到的 Linux 驱动容器。此外,.ko作为用户进程运行也反映出鸿蒙确实是微内核架构。

不过这个of.ko文件具体在哪里还没有找到,可能在 BOOT.IMG 里。

image.png(55.98 KB)


「AVSS研报iOS .Android.鸿蒙安全对抗能力初评报告﹣内核篇

https://mp.weixin.qq.com/s/QjXGDmnmvHyxWzoESsADLg

里面介绍了鸿蒙next微内核的安全特性,以及和鸿蒙4.2及iOS的区别。

回复列表(16|隐藏机器人聊天)
  • @Ta / 10-27 17:35 / /

    回退后数据是不是没了。
    一加ace2Pro(灰|24+1024)

  • @Ta / 10-27 17:49 / /

    @上善若水,对,不过可以导入回退之前的备份。

  • @Ta / 10-29 10:10 / /

    未签名的ELF可执行文件在鸿蒙next中不可执行。我试了一下确实执行不了,hdc shell 里执行会报 permission denied。

    screenshot_20241029_070445.jpg(582.54 KB)hm.jpg(180.81 KB)

  • @Ta / 10-29 10:19 / /

    @老虎会游泳,是不是selinux限制了执行?
    华夏手机X100(蓝)

  • @Ta / 10-29 10:33 / /

    @3gnet,是,关不掉,我只能想办法给ELF签名,或者把ELF打包进hap里靠hap启动。

  • @Ta / 10-31 11:50 / /
    什么手机可以刷?
  • @Ta / 10-31 22:16 / /

    @胡图图,没有手机可以刷,华为手机不支持从zip安装刷机包。这只是用来做解包分析的,看看系统里面有什么东西用的。

  • @Ta / 11-21 22:51 / /
    pro的有吗
  • @Ta / 11-27 17:21 / /
    不能刷机呀
  • @Ta / 11-27 17:49 / /

    @真赚ieearn_com,不能,只能在线升级,所以这个包对手机没有用,只是用来在电脑上解包分析的。

  • @Ta / 11-27 17:48 / /

    @WillieSch,没有,你可以自己抓,先申请升级尝鲜,然后电脑开个wifi手机连上,电脑用wireshark抓包,手机再进行升级,就能抓到下载地址了。

  • @Ta / 12-16 17:28 / /
    楼主有解出system.img方法不,simg2img执行不了
  • @Ta / 12-16 17:37 / /

    @tangwangtot,mt管理器有没有试过。mt2.cn
    一加ace2Pro(灰|24+1024)

  • @Ta / 12-17 10:25 / /
    @上善若水,感谢解答,了解了一下这个是手机开机后类似adb提权查看文件的方法,这个能直接解析img吗?我这边手机是别人的,不能长期使用,能否在非手机环境下解出这个文件?
  • @Ta / 12-17 14:21 / /

    @tangwangtot,你是说这个鸿蒙next里的system.img吗?它是一个EROFS文件系统镜像,如果你手机root了,你可以尝试直接挂载。
    先把它放在 /sdcard/system.img 这个位置,然后打开终端模拟器,输入如下命令:

    su
    mkdir /data/mount
    mount /sdcard/system.img /data/mount
    ls /data/mount
    

    如果挂载成功没有报错,就能用mt管理器或者RE文件管理器(Root Explorer)在 /data/mount 这个位置看到 system.img 的内容了。
    如果挂载失败,可能是没有root权限,或者手机不支持EROFS文件系统,那你就只能去电脑上安装Linux系统进行挂载了。建议安装ArchLinux系统,已知它默认打开了EROFS支持。其他系统的内核不一定打开了EROFS支持。

  • @Ta / 12-17 16:14 / /
    @老虎会游泳,感谢,成功了,确实啥都没加,以为还加密了层。
添加新回复
回复需要登录