mirror of
https://github.com/feicong/rom-course.git
synced 2025-05-05 10:06:53 +00:00
update.
This commit is contained in:
parent
8a29874d6b
commit
ef63b92ec1
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,3 +1,5 @@
|
||||
/book/
|
||||
.DS_Store
|
||||
|
||||
.pdf
|
||||
.html
|
||||
/pdf/
|
||||
|
24
README.md
24
README.md
@ -1,6 +1,11 @@
|
||||
# 安卓系统定制:从入门到实践
|
||||
# <p align="center">安卓系统定制:从入门到实践</p>
|
||||
|
||||
**大家在阅读过程中,发现什么内容错误、格式错误、错别字等问题,欢迎提交pr,这样可以帮助到更多想要学习的朋友。**
|
||||
<p align="center">非虫 missingkeys 著</p>
|
||||
|
||||
<div style="page-break-before:always"> </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" />
|
||||
|
||||
## 免责申明
|
||||
|
||||
本书籍内容仅供学习和研究使用,所有资料均来源于公开的安全技术文献、开源项目及个人经验分享。对于任何由于本书内容产生的直接或间接损失,本书作者及发布方概不负责。请读者在实际操作中遵守法律法规,避免从事任何非法或不道德的行为。
|
||||
|
13
book.toml
13
book.toml
@ -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
|
||||
|
@ -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"))
|
||||
if (ramdisk_execute_command) {
|
||||
ret = run_init_process(ramdisk_execute_command);
|
||||
if (!ret)
|
||||
return 0;
|
||||
|
||||
panic("No working init found. Try passing init= option to kernel. "
|
||||
"See Linux Documentation/init.txt for guidance.");
|
||||
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)
|
||||
|
@ -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" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user