Root DevEco-Studio OpenHarmonyOS Emulator on macOS

修改 system.img

本节内容参考自:https://wuxianlin.com/2024/10/27/root-harmonyos-next-emultor/

  1. 挂载 system.img

    sudo mount -o rw,loop system.img ~/system_oho

  2. 修改 system/etc/param/ohos.para

    const.secure=1 -> const.secure=0

    const.debuggable=0 -> const.debuggable=1

  3. 修改 system/etc/param/hdc.para

    参考 非root版本文件内容root版本文件内容 修改即可

  4. 修改 system/etc/init/hdcd.cfg

    参考 非root版本文件内容root版本文件内容 修改即可,其中 hdcd 的 selinux 上下文设置为 u:r:hdcd:s0 , 也就是不改。

  5. 修改 system/etc/selinux/system_common.cil

    (type sh) -> (typepermissive sh)

  6. 取消挂载

Patch emulator

按照上面的方法对 system.img 进行 patch 后,发现镜像文件检验失败无法启动镜像(我镜像你也要校验,真下头

image.png

对 Emulator 文件进行逆向后发现,校验的实现在 CheckImage::CheckSign 函数

image.png

patch 也比较简单 VerifyReleaseCmsFile 函数修改为 return 0 即可。 然后重新签名一下

sudo codesign -s - --entitlements app.entitlements --force  Emulator_patched

其中 app.entitlements 的内容为

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "<http://www.apple.com/DTDs/PropertyList-1.0.dtd>">
<plist version="1.0">
<dict>
<key>com.apple.security.hypervisor</key>
<true/>
</dict>
</plist>

image.png

签名部分参考自:https://stackoverflow.com/questions/64642062/apple-hypervisor-is-completely-broken-on-macos-big-sur-beta-11-0-1