# AOSP系统定制入门教程 ## 第1章 引言 ### 1.1 AOSP是什么 ### 1.2 系统开发,定制,刷机,改机分别是什么 ### 1.3 安卓系统发展史 ### 1.4 常见的第三方定制系统 ### 1.5 初识系统定制 ### 1.5.1 系统定制的优点 ### 1.5.2 系统定制的缺点 ### 1.5.3 系统定制的发展趋势 ### 1.6 初识系统刷机 ### 1.7 小结 ## 第2章 系统开发环境与工具 ### 2.1 重新看待系统定制 ### 2.2 环境准备 ### 2.2.1 Windows环境 ### 2.2.2 Linux环境 ### 2.3 源码拉取与同步 #### 2.3.1 分支选择策略 #### 2.3.2 repo配置 #### 2.3.3 源码拉取与同步 ### 2.4 系统编译 #### 2.4.1 AOSP编译依赖库安装 #### 2.4.2 系统编译 ### 2.5 模块编译 ### 2.6 内核编译 ### 2.7 刷机 #### 2.7.1 线刷 #### 2.7.2 卡刷 ### 2.8 源码的开发环境搭建 ### 2.9 gitlab配合repo管理源码 ### 2.10 小结 ## 第3章 认识系统组件 ### 3.1 源码结构介绍 ### 3.2 Android的启动流程 ### 3.3 内核启动 ### 3.4 init进程启动 ### 3.5 init.rc ### 3.6 Zygote启动 ### 3.7 应用启动 ### 3.8 认识services ### 3.9 认识framework ### 3.10 认识libcore ### 3.11 认识sepolicy ### 3.12 认识linker ## 第4章 系统美化 ### 4.1 系统美化简介 ### 4.2 常见的系统美化方式 ### 4.3 主题修改 ### 4.3.1 认识framework-res ### 4.3.2 编译framework-res ### 4.4 修改开机画面 ### 4.5 修改字体 ### 4.6 修改壁纸 ### 4.7 修改图标 ### 4.8 美化包使用 ## 第5章 系统内置功能 ### 5.1 什么是系统内置 ### 5.2 系统内置app ### 5.3 构建系统 ### 5.4 系统内置jar库 ### 5.5 系统内置so动态库 ### 5.5.1 so的编译与生成 ### 5.5.2 内置so ### 5.5.3 测试效果 ## 第6章 系统功能定制 ### 6.1 如何进行功能定制 ### 6.2 系统级别的插桩工具实现 ### 6.3 自定义系统服务 ### 6.4 从0开始添加一个app ### 6.4.1 如何编译 ### 6.4.2 系统app的生成 ### 6.4.3 测试效果 ### 6.5 扩展系统APP功能 ### 6.6 为系统加入进程注入器功能 ### 6.6.1 app启动流程跟踪 ### 6.6.2 注入时机的选择 ### 6.6.3 注入dex ### 6.6.4 注入so ### 6.7 修改app启动的默认权限 ### 6.7.1 系统读取权限的源码跟踪 ### 6.7.2 AOSP10下的默认权限修改 ### 6.7.3 AOSP12下的默认权限修改 ### 6.8 添加系统证书 ### 6.8.1 内置证书到系统 ### 6.8.2 系统获取系统证书的方式 ## 第7章 系统集成脱壳功能 ### 7.1 什么是壳,为什么要加壳 ### 7.2 常见壳的特征介绍 ### 7.2.1 初代壳 ### 7.2.2 二代壳 ### 7.2.3 三代壳 ### 7.3 脱壳的原理 ### 7.3.1 类的加载流程 ### 7.3.2 函数的调用流程 ### 7.3.3 简单的初代壳实现 ### 7.3.4 如何脱壳 ### 7.4 简单脱壳实现 ### 7.5 自动化脱壳功能 ### 7.6 认识art ### 7.7 加入脱壳功能 ### 7.8 测试效果 ## 第8章 系统集成Frida ### 8.1 什么是Frida ### 8.2 Frida基础用法 ### 8.3 集成Frida gadget ### 8.4 测试效果 ## 第9章 系统集成Xposed框架 ### 9.1 什么是Xposed ### 9.2 Xposed实现原理 ### 9.3 支持Xposed语法的Hook框架 ### 9.4 内置Hook框架 ### 9.5 实战加载Xposed模块 ## 第10章 系统集成开发eBPF ### 10.1 什么是eBPF ### 10.2 什么是bcc ### 10.3 安卓系统中使用bcc ### 10.3.1 为系统打上补丁 ### 10.3.2 测试eBPF便能 ### 10.4 使用eBPF实现安卓系统进程跟踪 ## 第11章 系统级调试与反调试 ### 11.1 正常测试机下的调试 ### 11.2 集成调试环境 ### 11.3 系统集成反调试 ### 11.4 android下的硬件调试 ## 第12章 基于定制系统的逆向实战 ### 12.1 案例1 ### 12.2 案例2 ### 12.3 小结