首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android 安全】DEX 加密 ( Application 替换 | ActivityThread 中的 mAllApplications 集合添加 Application )

文章目录 一、 当前 Application 替换进度 二、 ActivityThread 中的 mAllApplications 集合添加 Application 一、 当前 Application...替换进度 ---- 上一篇博客 【Android 安全】DEX 加密 ( Application 替换 | 加密不侵入原则 | 替换 ActivityThread 的 mInitialApplication...集合中添加了 kim.hsl.multipledex.ProxyApplication 对象 ; 首先 , 获取 ActivityThread 对象 ; ActivityThread 之前已经获取过了..., 从 从 ContextImpl 对象中获取其 ActivityThread mMainThread 成员变量就是 ActivityThread , 参考 【Android 安全】DEX 加密 (...Application 替换 | 加密不侵入原则 | 替换 ActivityThread 的 mInitialApplication 成员 ) 博客 ; 然后 , 获取 ActivityThread

28530
您找到你想要的搜索结果了吗?
是的
没有找到

【Android 安全】DEX 加密 ( Application 替换 | 获取 ContextImpl、ActivityThread、LoadedApk 类型对象 )

获取对象类型分析 二、替换 Application 时机 一、获取对象类型分析 ---- 在 【Android 安全】DEX 加密 ( Application 替换 | 获取 ContextImpl、ActivityThread...、LoadedApk 类型对象 | 源码分析 ) 博客中分析了获取 ContextImpl , ActivityThread , LoadedApk 类型的对象的方法 , ContextImpl : 从...Application 的 attachBaseContext(Context base) 方法中获取 ContextImpl 对象 , ContextImpl 对象就是该方法的参数 ; ActivityThread...: 从 ContextImpl 对象中获取其 ActivityThread mMainThread 成员变量 ; LoadedApk : 从 ContextImpl 对象中获取其 LoadedApk...mPackageInfo 成员变量 ; 二、替换 Application 时机 ---- 替换 Application 操作 , 必须在 onCreate 方法中执行 ; 因为在 ActivityThread

22200

【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 源码分析 )

文章目录 一、ActivityThread 源码分析 二、ActivityThread 部分代码示例 dex 解密时 , 需要将 代理 Application 替换为 真实 Application ;...替换 Application 首先要理解系统如何注册应用的 Application 的 ; 一、ActivityThread 源码分析 ---- 参考源码 : /frameworks/base/core.../java/android/app/ActivityThread.java Zygote 进程孵化器 fork 出应用进程后 , 就会执行 ActivityThread 中的 main 函数 ; 在 main...thread = new ActivityThread() 创建了 ActivityThread 对象 , 并调用了该对象的 attach 函数 , thread.attach(false) ;...部分代码示例 ---- ActivityThread 部分代码示例 : public final class ActivityThread { final ApplicationThread

21400

【Android 启动过程】Activity 启动源码分析 ( ActivityThread -> Activity、主线程阶段 二 )

文章目录 前言 一、ActivityThread 类 handleLaunchActivity -> performLaunchActivity 方法 二、Instrumentation.newActivity...方法 三、AppComponentFactory.instantiateActivityCompat方法 四、ActivityThread.performLaunchActivity 方法后续细节 五...、Instrumentation.callActivityOnCreate 方法 总结 前言 上一篇博客 【Android 启动过程】Activity 启动源码分析 ( ActivityThread -...> Activity、主线程阶段 一 ) 分析了在 ActivityThread 主线程中将要调用 handleLaunchActivity 方法 , 启动新的 Activity ; 一、ActivityThread...类 handleLaunchActivity -> performLaunchActivity 方法 ---- 在 ActivityThread 的 handleLaunchActivity 中 ,

44040

【Android 安全】DEX 加密 ( Application 替换 | 获取 ContextImpl、ActivityThread、LoadedApk 类型对象 | 源码分析 )

文章目录 一、获取对象类型分析 二、获取 ContextImpl 类型对象 三、获取 ActivityThread、LoadedApk 类型对象 dex 解密时 , 需要将 代理 Application...源码参考 : 6.0.1_r16/xref/frameworks/base/core/java/android/app/ActivityThread.java LoadedApk 源码参考 : 6.0.1...、LoadedApk 类型对象 ---- 获取 ActivityThread、LoadedApk 类型对象 : 在 LoadedApk 中的 makeApplication 方法中 , ContextImpl...mainThread , 第三个参数是 LoadedApk packageInfo ; 在构造函数中 , mMainThread = mainThread , 构造函数中 ActivityThread...extends Context { // 应用的 ActivityThread final ActivityThread mMainThread; // 应用的 LoadedApk

25200

【Android 启动过程】Activity 启动源码分析 ( ActivityThread -> Activity、主线程阶段 一 )

文章目录 前言 一、ClientTransactionHandler.scheduleTransaction 二、ActivityThread.H 处理 EXECUTE_TRANSACTION 消息 三...、AMS 线程阶段 二 ) 分析到 , 在 AMS 进程通过 Binder 机制调用 ActivityThread 中的 ApplicationThread 内部类中 scheduleTransaction...方法 ; 在该方法中 , 发送了 ActivityThread.H.EXECUTE_TRANSACTION 159 消息 , 由 ActivityThread 中的内部类 H 处理该消息 ; 从..., 最终调用的是 ActivityThread 的 handleLaunchActivity 方法 ; /** * 请求启动 Activity 。..., 然后经过上述一系列调用 , 获取到了启动 Activity 的所有数据 , 又回到 ActivityThread 中执行 handleLaunchActivity 方法 ;

45210

【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 二 )

文章目录 前言 一、热启动与冷启动选择 二、AMS 进程中执行的相关操作 三、通过 Binder 机制转到 ActivityThread 中执行的操作 总结 前言 上一篇博客 【Android 启动过程...】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 ) 分析的分支是启动 Activity 时 , 没有 Activity 对应的进程 , 需要先调用 Zygote...// 在ActivityThread中的客户端上执行事务后,将回收用于本地调用的所有对象。...ActivityThread 主线程中 , 在该主线程中执行相关源码 ; /** * 它管理应用程序进程中主线程的执行、调度和执行活动、广播以及活动管理器请求的其他操作。...上述方法最终执行的是 ActivityThread.this.scheduleTransaction(transaction) , ActivityThread 继承了 ClientTransactionHandler

1K10

【Android 安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 后续分析 | Application 替换位置 )

文章目录 一、ActivityThread 后续分析 二、ActivityThread 相关源码 三、Application 替换位置 dex 解密时 , 需要将 代理 Application 替换为...真实 Application ; 替换 Application 首先要理解系统如何注册应用的 Application 的 ; 一、ActivityThread 后续分析 ---- 在 【Android...安全】DEX 加密 ( Application 替换 | Android 应用启动原理 | ActivityThread 源码分析 ) 基础上 , 继续分析 ActivityThread 的 handleBindApplication...相关源码 ---- public final class ActivityThread { Application mInitialApplication; final ArrayList<...thread = new ActivityThread(); thread.attach(false); Looper.loop(); } } 完整源码参考 :

34000
领券