HOA鸿易通app(Harmony on Android)是一个面向开发者和玩机用户的实验性项目应用。目标是让普通安卓设备无需刷机、无需Root,直接加载并运行鸿蒙原生HAP包。它并不是把整套鸿蒙系统搬进安卓,而是基于ArkUI-X的Android构建体系做定向适配,用ETS虚拟机执行HAP里的modules.abc字节码,用ACE渲染引擎把ArkTS页面画到Android的SurfaceView上,再通过musl→bionic的ABI桥接层加载鸿蒙原生.so。
| 完整 Bundle Manager | 不支持 | 未实现,bundleInfo_ is nullptr 日志警告 | | 后台能力 / Service | 不支持 | 未实现 | | 分布式 / 多设备 | 不支持 | 未实现 |
HOA 仍在早期开发阶段,以下为已知限制:
• HAP 兼容性:目前只有部分 HAP 能正常运行。依赖未实现系统 API 的 HAP 会白屏或崩溃。
• 性能:ArkUI-X 渲染管线未经优化,复杂页面可能卡顿。
• 内存:每个 HAP 启动一个独立进程,多 HAP 同时运行内存压力较大。
• 稳定性:长时间运行可能出现资源泄漏,建议测试后重启 app。
• 安全性:HDC daemon 无认证机制(默认 8710 端口),仅适合开发调试,不要在生产环境使用。
HOA 基于 ArkUI-X 的 Android 构建体系,通过多个仓库的定向适配使运行时能够加载并执行 OHOS 原生格式的 HAP:
• ArkTS 渲染:ETS VM 执行 modules.abc 字节码,ACE 引擎将 UI 树渲染到 Android SurfaceView
• 原生 .so 支持:通过 libb.so(musl ABI bridge)在 Android bionic 上运行 OHOS 闭源 .so;ELF patch 将 DT_NEEDED libc.so 替换为 libb.so;elf_load_with_deps 对无 RUNPATH 的 .so 做拓扑依赖加载
• HDC 协议:实现 OHOS HDC daemon,支持 DevEco Studio 设备识别与一键部署
关键机制:Java 层通过 setOhosHapMode(true) 设置环境变量,经 JNI 传入 ETS VM,在模块路由时激活 OHOS 兼容路径(自动适配 SDK 5.0/6.0 ABC record 名格式差异),使 ArkUI-X 能正确加载 OHOS 编译的 ABC 文件。
v26.7.9.1版本
新增 libdeviceinfo_ndk.z.so 兼容实现
新增 libasset_ndk.z.so stub 实现
新增 libbundle_ndk.z.so 兼容实现
新增 librawfile.z.so 兼容实现
禁用 MALLOC_CANARY_DEBUG,消除 libb.so 对 backtrace 的外部依赖
展开内容
使用 NFC 允许应用进行近场通信交换数据。 ------------------------------------- 修改联系人 允许增加、修改或删除您的通讯录记录。 ------------------------------------- 读取音频 访问手机中的音乐文件(Android 13+)。 ------------------------------------- 精确位置 通过 GPS 获取您的精确地理位置信息。 ------------------------------------- 身体传感器 访问心率计等生理传感器数据。 ------------------------------------- 写入外部存储 允许应用保存文件、图片到手机存储或 SD 卡。 ------------------------------------- 控制振动 允许应用触发手机振动反馈。 ------------------------------------- 发送短信 允许应用自动发送短信,可能产生额外费用。 ------------------------------------- 蓝牙配对 允许应用连接已配对的蓝牙设备。 ------------------------------------- 识别身体活动 识别步数、骑行等运动状态。 ------------------------------------- 拨打电话 允许应用直接拨打电话,可能产生资费。 ------------------------------------- 读取手机状态 获取设备识别码(IMEI/序列号),常用于追踪或验证。 ------------------------------------- 连接蓝牙设备 允许应用连接到已配对的蓝牙设备(Android 12+)。 ------------------------------------- 读取视频 访问手机中的视频文件(Android 13+)。 ------------------------------------- 发送通知 允许应用弹出通知消息(Android 13+)。 ------------------------------------- 录制音频 允许应用使用麦克风录音,常用于语音功能。 ------------------------------------- 大致位置 通过基站或 WiFi 获取模糊的地理位置。 ------------------------------------- 蓝牙管理 允许应用搜索并配对新的蓝牙设备。 ------------------------------------- 前台服务 允许应用运行对用户可见的后台任务。 ------------------------------------- 修改日历 添加或更改日历提醒。 ------------------------------------- 读取外部存储 允许应用读取相册、视频或本地文档。 ------------------------------------- 读取照片 访问手机中的照片文件(Android 13+)。 ------------------------------------- 后台位置访问 允许应用在后台运行时持续获取您的位置。 ------------------------------------- 读取联系人 访问通讯录,获取联系人姓名和电话。 ------------------------------------- 所有文件访问 Android 11+ 高级权限,允许管理手机内所有文件。 ------------------------------------- 扫描蓝牙设备 允许应用发现并配对附近的蓝牙设备(Android 12+)。 ------------------------------------- 读取短信 访问您的短信箱,涉及验证码等个人隐私。 ------------------------------------- 拍摄照片和视频 允许应用调用摄像头进行拍摄或扫码。 ------------------------------------- 接收短信 允许应用程序接收并处理短信。 ------------------------------------- 访问网络 允许程序访问网络。 ------------------------------------- 读取日历 获取日历记录和日程信息。 -------------------------------------