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/
|
/book/
|
||||||
.DS_Store
|
.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 & 贡献! 🚀
|
本书开源,欢迎 Star & 贡献! 🚀
|
||||||
|
|
||||||
@ -20,19 +25,18 @@ GitHub 项目地址:[https://github.com/feicong/rom-course](https://github.com
|
|||||||
|
|
||||||
- 安全研究员
|
- 安全研究员
|
||||||
|
|
||||||
## 目录
|
[点击下载最新版PDF电子书,不定时更新](https://t.zsxq.com/mBLwU)
|
||||||
|
|
||||||
见[目录](TOC.md)
|
|
||||||
|
|
||||||
## 电子版图书
|
|
||||||
|
|
||||||
[点击下载最新版本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
|
multilingual = false
|
||||||
src = "."
|
src = "."
|
||||||
title = "安卓系统定制:从入门到实践"
|
title = "安卓系统定制:从入门到实践"
|
||||||
|
description = "这是一本开源的讲解安卓系统定制入门的电子书"
|
||||||
|
version = "1.0.0"
|
||||||
|
|
||||||
[output.html]
|
[output.html]
|
||||||
|
git-repository-url = "https://github.com/feicong/rom-course"
|
||||||
|
|
||||||
[output.pdf]
|
[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;
|
int ret;
|
||||||
...
|
...
|
||||||
if (!try_to_run_init_process("/sbin/init") ||
|
if (ramdisk_execute_command) {
|
||||||
!try_to_run_init_process("/etc/init") ||
|
ret = run_init_process(ramdisk_execute_command);
|
||||||
!try_to_run_init_process("/bin/init") ||
|
if (!ret)
|
||||||
!try_to_run_init_process("/bin/sh"))
|
return 0;
|
||||||
return 0;
|
pr_err("Failed to execute %s (error %d)\n",
|
||||||
|
ramdisk_execute_command, ret);
|
||||||
panic("No working init found. Try passing init= option to kernel. "
|
}
|
||||||
"See Linux Documentation/init.txt for guidance.");
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
在这里,看到了原来`init`进程是用`try_to_run_init_process`启动的,运行失败的情况下会依次执行上面的4个进程。继续看看这个函数是如何启动进程的。
|
在这里,看到了原来`init`进程是用`run_init_process`启动的,`ramdisk_execute_command`被初始化为了"/init"。
|
||||||
|
|
||||||
```c
|
```c
|
||||||
static int try_to_run_init_process(const char *init_filename)
|
static int try_to_run_init_process(const char *init_filename)
|
||||||
|
@ -1807,3 +1807,5 @@ jnitrace |- char* : newdemo
|
|||||||
本章完整介绍了系统代码插桩方式来实现`Jnitrace`功能。该功能用于动态跟踪分析程序执行时的JNI调用参数与栈详情信息。对比python版本的`Jnitrace`工具,使用Frida代码编写的跟踪工具拥有着便捷与扩展性强等特点,但缺点是这种方式需要处理大量调用,对程序的并发处理能力要求极高,在一些JNI调用频繁的程序上执行分析,可能会出现并发崩溃的情况,使用系统代码插桩的优点是,在高并发调用下,跟踪代码仍然能正常的输出分析内容,具有较高的稳定性。
|
本章完整介绍了系统代码插桩方式来实现`Jnitrace`功能。该功能用于动态跟踪分析程序执行时的JNI调用参数与栈详情信息。对比python版本的`Jnitrace`工具,使用Frida代码编写的跟踪工具拥有着便捷与扩展性强等特点,但缺点是这种方式需要处理大量调用,对程序的并发处理能力要求极高,在一些JNI调用频繁的程序上执行分析,可能会出现并发崩溃的情况,使用系统代码插桩的优点是,在高并发调用下,跟踪代码仍然能正常的输出分析内容,具有较高的稳定性。
|
||||||
|
|
||||||
系统定制涉及到技术原理与代码解读的部分着实枯燥,很感谢读者朋友们能坚持看完本书。本书所有的内容到这里就要讲完了,然后,值得被扩展与定制的功能非常之多,限于篇幅限制,作者水平十分有限,很多功能没有在本书中涉及与讨论。有兴趣的朋友,可以关注微信公众号[软件安全与逆向分析],微信号:feicong_sec。作者会在上面讨论一些系统定制修改与安全技术相关的话题。
|
系统定制涉及到技术原理与代码解读的部分着实枯燥,很感谢读者朋友们能坚持看完本书。本书所有的内容到这里就要讲完了,然后,值得被扩展与定制的功能非常之多,限于篇幅限制,作者水平十分有限,很多功能没有在本书中涉及与讨论。有兴趣的朋友,可以关注微信公众号[软件安全与逆向分析],微信号: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