This commit is contained in:
feicong 2025-03-27 13:57:23 +08:00
parent 8a29874d6b
commit ef63b92ec1
5 changed files with 40 additions and 20 deletions

4
.gitignore vendored
View File

@ -1,3 +1,5 @@
/book/
.DS_Store
.pdf
.html
/pdf/

View File

@ -1,6 +1,11 @@
# 安卓系统定制:从入门到实践
# <p align="center">安卓系统定制:从入门到实践</p>
**大家在阅读过程中发现什么内容错误、格式错误、错别字等问题欢迎提交pr这样可以帮助到更多想要学习的朋友。**
<p align="center">非虫 missingkeys 著</p>
<div style="page-break-before:always">&nbsp;</div>
<p></p>
> 大家在阅读过程中发现什么内容错误、格式错误、错别字等问题欢迎提交pr这样可以帮助到更多想要学习的朋友。
本书开源,欢迎 Star & 贡献! 🚀
@ -20,19 +25,18 @@ GitHub 项目地址:[https://github.com/feicong/rom-course](https://github.com
- 安全研究员
## 目录
见[目录](TOC.md)
## 电子版图书
[点击下载最新版本PDF版本图书不定时更新](https://t.zsxq.com/mBLwU)
[点击下载最新版PDF电子书不定时更新](https://t.zsxq.com/mBLwU)
## 技术交流
欢迎加入系统定制技术交流微信群,分享安卓系统定制资源,交流系统定制技术。
微信添加**feicongcn**邀请入群。
> 微信添加**feicongcn**邀请入群。
## 微信公众号
<img width="454" alt="image" src="https://github.com/user-attachments/assets/e1bdaf8f-a372-4a60-b9de-b3a7d2ec68d0" />
## 免责申明
本书籍内容仅供学习和研究使用,所有资料均来源于公开的安全技术文献、开源项目及个人经验分享。对于任何由于本书内容产生的直接或间接损失,本书作者及发布方概不负责。请读者在实际操作中遵守法律法规,避免从事任何非法或不道德的行为。

View File

@ -4,6 +4,19 @@ language = "zh-CN"
multilingual = false
src = "."
title = "安卓系统定制:从入门到实践"
description = "这是一本开源的讲解安卓系统定制入门的电子书"
version = "1.0.0"
[output.html]
git-repository-url = "https://github.com/feicong/rom-course"
[output.pdf]
# 添加页眉页脚
display-header-footer= true
header-template = "<h3 style='font-size:10px; margin-left: 85px;width:200px;' class='date'></h3><h3 style='margin-left:80px;font-size:10px;'>https://github.com/feicong/rom-course</h3>"
footer-template = "<p style='font-size:10px; margin-left: 88%'><span class='pageNumber'></span> / <span class='totalPages'></span></p>"
prefer-css-page-size = true
[output.pdf-outline]
like-wkhtmltopdf = true

View File

@ -239,18 +239,17 @@ static int __ref kernel_init(void *unused)
{
int ret;
...
if (!try_to_run_init_process("/sbin/init") ||
!try_to_run_init_process("/etc/init") ||
!try_to_run_init_process("/bin/init") ||
!try_to_run_init_process("/bin/sh"))
return 0;
panic("No working init found. Try passing init= option to kernel. "
"See Linux Documentation/init.txt for guidance.");
if (ramdisk_execute_command) {
ret = run_init_process(ramdisk_execute_command);
if (!ret)
return 0;
pr_err("Failed to execute %s (error %d)\n",
ramdisk_execute_command, ret);
}
}
```
在这里,看到了原来`init`进程是用`try_to_run_init_process`启动的运行失败的情况下会依次执行上面的4个进程。继续看看这个函数是如何启动进程的
在这里,看到了原来`init`进程是用`run_init_process`启动的,`ramdisk_execute_command`被初始化为了"/init"
```c
static int try_to_run_init_process(const char *init_filename)

View File

@ -1807,3 +1807,5 @@ jnitrace |- char* : newdemo
本章完整介绍了系统代码插桩方式来实现`Jnitrace`功能。该功能用于动态跟踪分析程序执行时的JNI调用参数与栈详情信息。对比python版本的`Jnitrace`工具使用Frida代码编写的跟踪工具拥有着便捷与扩展性强等特点但缺点是这种方式需要处理大量调用对程序的并发处理能力要求极高在一些JNI调用频繁的程序上执行分析可能会出现并发崩溃的情况使用系统代码插桩的优点是在高并发调用下跟踪代码仍然能正常的输出分析内容具有较高的稳定性。
系统定制涉及到技术原理与代码解读的部分着实枯燥,很感谢读者朋友们能坚持看完本书。本书所有的内容到这里就要讲完了,然后,值得被扩展与定制的功能非常之多,限于篇幅限制,作者水平十分有限,很多功能没有在本书中涉及与讨论。有兴趣的朋友,可以关注微信公众号[软件安全与逆向分析]微信号feicong_sec。作者会在上面讨论一些系统定制修改与安全技术相关的话题。
<img width="454" alt="image" src="https://github.com/user-attachments/assets/e1bdaf8f-a372-4a60-b9de-b3a7d2ec68d0" />