首页
社区
课程
招聘
[分享]定制 ROM 设计解析 从应用画像到系统执行:AOSP、ART 与内核共同构成的环境模拟体系。【上】
发表于: 3小时前 105

[分享]定制 ROM 设计解析 从应用画像到系统执行:AOSP、ART 与内核共同构成的环境模拟体系。【上】

3小时前
105

大家好,新手逆向,改机小白说说最近研究的定制 ROM 设计,也是借鉴了很多大佬的项目和源码!!!


此 ROM 以应用和分身为配置单位,将设备属性、文件视图、资源统计、定位及电话信息组织为独立环境。 Agent 提供操作入口,设备中间件 组织参数,底层执行点分布于 Android Framework、运行时、系统运行 库和 Linux 内核。 自写“ROM 示例应用”实机画面。

结合自写应用的配置前后对照,解释功能如何进入系统,以及身份、路径、缓存、ABI 和编译优化为何成为 底层实现的难点。所有应用截图均为自写示例,不展示业务应用、账号、设备序列号或服务端地址。


这个对照体现了环境模拟的基本思路:配置改变系统的返回路径,应用保留原有调用方式。8 GiB 是接口呈 现值,不会增加真实物理内存;文件替换的作用范围也由实际打开路径决定。



不同层处理不同类型的信息,共同遵循应用身份和配置空间的选择结果

01 Agent:入口与任务编排 选择应用和分身,设置参数,启动、脚本、代理、远程任务等。 

02 设备中间件:参数生成与服务 将设备画像转换为属性快照、结构化参数及各类底层配置文件。 

03 AOSP / Framework:系统语义 在预埋调用点处理参数、系统对象与回调,承接定位、电话和应用生命周期。 

04 ART / 系统运行库:进程内执行 方法入口替换、原方法回调、属性读取与 Native 接口适配。 

05 Linux 内核:路径与查询基础 按配置身份参与文件打开、元数据、文件系统统计、网络信息和 proc 输出


Java 接口、Native 包装层和直接系统调用的覆盖范围各不相同。定位“在哪一层改写”,才能决定需要修 改哪些入口、什么时候加载参数,以及如何核对最终结果。


在系统既定调用位置保留扩展入口,再由功能分发器执行参数代理和结果替换

5.钩子的价值:进入对象真正产生的位置


电话订阅、定位回调、应用启动和内存对象具有不同生命周期。将钩子放进 AOSP 调用链,可以在对象创建、 参数分发或结果返回时接入,使功能实现与对应系统服务保持明确关系。



预埋钩子适合稳定的系统接入点;ART 方法替换服务于运行时扩展。二者分别处理调用位置与方法入口,需要协 同初始化。

按身份选择一套环境 内核以真实运行 UID 为起点,经过映射找到对应参数空间。

映射把“哪个进程正在运行”与“这次使用哪套参数”联系起来。它选择环境数据,本身不会把进程的 Linux 凭据改成配置身份。分身启动链还会组织包管理身份、数据目录与进程启动,这些是相互配合的独立 动作


配置关联需跨越启动、退出、隔离子进程和分身切换。UID 复用、卸载和目录删除都可能改变状态,因此身份映射、参数缓存和磁盘文件需要分别维护。控制接口还应限定调用主体与目标范围,保证配置能力只作用 于预期应用。




原路径 → 覆盖候选 → 实际文件对象



传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!

收藏
点赞 ・4
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回