摘要:编译了一个 基于LLVM 7.0 的 Hikari,方便在windows 平台上使用, 已经继承到 NDK 18 中 使用方法: 1.先下载官方的 NDK 18.1.5063045 (可以从Android Studio 中下载,也可以从官网网页下载单独ZIP) 2.将 18.1.5063045.zi
阅读全文
摘要:通過 configura 配置完成后 然後用make 進行編譯 過程中報錯 報錯: *** This OS is not supported: Linux ubuntu 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC
阅读全文
摘要:当你面对浩瀚如海的源码时,你需要一些主要脉络、基础且重要的线索来帮你理清繁杂的头绪,犹如模糊不清的世界地图,它就像撬起地球的支点——虽然不是那根棒,但也比较有用。 java层相关 service = context组件 + binder IntentService = Service + Handl
阅读全文
摘要:1.java层对应到JNI层除了 基本类型,基本类型数组,string,throwable,class 之外,都是用jobject来代替 2.JNIEnv是native层,一个线程作用域的,调用虚拟机方法的对象一个线程只能用自己的JNIEnv对象(类似Threadlocal的作用于效果,和线程对象相
阅读全文
摘要:项目依赖关系 apktool:依赖smali/baksmali,XML部分 AXMLPrinter2 JEB:dx 工具依赖 AOSP , 反编译dex 依赖 apktool dex2jar:依赖 AOSP smali/baksmali(AOSP),但是修改并扩充了一些原先项目中不支持的格式(sup
阅读全文
摘要:Init属性服务 系统属性服务 属性梳理 来源和读取时机 来源:内核参数 ro.kernel.* 代表有qemu内核参数才会设置(在虚拟机中) ro.boot.* 1.内核设备树相关的设备属性,从 /proc/cmdline 的androidboot.* 中来 2.内部变量export_kernel
阅读全文
摘要:Android原生流程 Init进程 主要流程及分支梳理 ueventd_main()watchdogd_main()主要流程a) 公共部分 增加PATH 环境变量初始化内核日志,打开/dev/kmsg,此时logcat还未初始化,使用内核的log系统设置selinux b) First_stage
阅读全文
摘要:breakfast oneplus3 命令的主要作用是 1.执行 vendorsetup.sh 2. variant 默认设置为 userdebug 3. 根据机型判断 调用 lunch cm 或是 lineage breakfast () { target=$1; local variant=$2
阅读全文
摘要:Launcher 如何通过startActivity 传送一个 intent 到 zygote 如何 接收到它并且 fork出该app的进程的? 安装框架的时候会现有各种检查,比如当前系统版本等 下载对应的框架安装文件 安装文件是个zip文件 下载完成后会检查zip文件,通过下面的方法检查 Inst
阅读全文
摘要:函数返回值:arm64 规定了整数型返回值放在 x0 寄存器里 sp(栈空间)字节对齐:该临时变量占用 4字节空间;又因为 arm64 下对于使用 sp 作为地址基址寻址的时候,必须要 16byte-alignment(对齐),所以申请了 16字节空间作为临时变量使用。具体参见 这里。 指令模式 T
阅读全文
摘要:隐藏smali方法后 java源码: int b = fun2(); baksmali解释为: invoke-virtual {v1}, <int MainActivity.fun2() imp. @ _def_MainActivity_fun2@I> 查看字节码: 6E 10 4E 32 01 0
阅读全文
摘要:关于调试器看不到进程,无法attach的问题,网上也有很多教程,基本是修改ro.debugable =1 ,ro.secure = 0 让adbd有root权限 attach到其他进程,涉及到要修改boot.img并刷包,可以在网上其他地方找找看相关资料 1.手机上运行apk 2.电脑上用jeb打开
阅读全文