前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >startActivity时序图

startActivity时序图

作者头像
曾大稳
发布2018-09-11 10:50:25
1K0
发布2018-09-11 10:50:25
举报
文章被收录于专栏:曾大稳的博客曾大稳的博客
startActivity时序图
startActivity时序图

lauchModle 检测: ActivityStarter.startActivityUnchecked()

绕过AndroidManifest检测:

  1. 瞒天过海:使用代理Activity替换原来的Activity 拿到ActivityManagerNative里面的IActivityManager对象动态代理拦截startActivity函数,获取原来的srcIntent,重新new一个代理ActivitynewIntent,newIntent.putExtra(EXTRA_ORIGIN_INTENT,originIntent),然后用newIntent替换原来的srcIntent
  2. 借尸还魂: 在Activity实例化之前(laucherActivity的时候),判断intent里面有没有EXTRA_ORIGIN_INTENT字段,如果有的话取出来替换即可 拿到ActivityThread对象里面的Handler对象mH,然后拿到new一个Handlercallback,然后适进去,在这个callback里面处理自己的回归需求。(设置callback的原因是因为我们只处理lauchActivy,不影响其他的操作)。 这里注意AppCompatActivity需要兼容,先拿到ActivityThread里面的IPackageManager,然后动态代理拦截getActivityInfo()函数的ComponentName替换为代理ActivityComponentName

startActivity解析

插件化绕过AndroidManifest检测

Zygote孵化应用进程

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档