android 调试技术
lslxfhc
这个作者很懒,什么都没留下…
展开
-
android 无死角调试计划
多年前曾沐浴在windows的荣光下,体验着visual studio提供的完美开发体验,不知其他平台开发工具的险恶。怀揣美好的向往,投入到android的怀抱,才发现世事艰辛。对于调试而言,android平台是个残暴的世界。对于native程序,曾操起gdb,寻找windbg的身影,确发现等价命令臃肿的可怕,它看起来就不是给人用的,很像个二次开发的api,当我想专注于调试时,我确不得不先专注于这个复杂的接口,让他更好用一些。windbg把用户当上帝,gdb把用户当小弟。话说android studio调试原创 2020-05-18 13:52:39 · 279 阅读 · 0 评论 -
android 真机调试原始的init进程
init作为android用户态启动的第一个进程,是难以直接调试的,之前的文章讲了如何调试单独启动的init,也就是在系统启动完成之后再启动一个init,这时候系统环境完全变了,不是init执行的原始环境了,调试起来并不能了解init真正的执行过程。现在我介绍如何直接调试原始的init进程。虽然还是不能调试init的初始化,但其所接收命令的执行过程是可调试的,且是原汁原味的。先上个效果图:这是中断所有进程后,init进程正在等待下面是,发出stop zygote后,init进程接收到命令:.原创 2020-05-17 23:09:59 · 683 阅读 · 0 评论 -
magisk 模块如何替换init
用magisk模块替换system分区中的文件特别简单,下载个模板,解压后system文件夹中放入要替换的文件,重新压缩后用twrp刷入即可。甚至boot分区中也能有限的替换个别文件,patch一些rc文件,但是替换init文件是官方不支持的,笔者经研究发现了一个可行办法做到这一点,记录在此。办法就是修改magisk的安装脚本,magisk的逻辑很复杂,但是需要做的修改非常简洁。1.D:\Downloads\Magisk-v20.4\common 中加入你自己编译的init,取名myinit:..原创 2020-05-17 07:02:15 · 3323 阅读 · 0 评论 -
android linker 源码调试
上篇文章介绍了init进程的调试,现在介绍linker的调试。linker 作为动态加载器是android系统上动态链接可执行文件的依赖文件,并且是首先执行的模块,同时它也是独立可执行的文件,不过独立执行时并不执行有用的功能,但我们可以略微调整代码,来调试感兴趣的函数。调试效果图:调试设置很简单,请参照上篇文件中init进程的调试设置。...原创 2020-05-12 21:14:41 · 519 阅读 · 1 评论 -
android init 进程源码调试探索
android 系统native进程有很多,其中比较重要的有init,zygote,installd,dex2oat等,native进程的调试是困难的,尤其是调试其初始化过程,原因是没有集成化调试环境,虽然gdb是可能的,但是对用户不具有易用性。android studio 随能调试so,但对native可执行文件无能为力。作为对比,visual studio作为宇宙最强ide,调试windows可执行文件的能力可以说是甩开android studio几条街。笔者经过研究,找到了媲美windows上的无缝调原创 2020-05-12 16:59:50 · 753 阅读 · 0 评论