zcm3579
V2EX  ›  Android

如何强行启动某应用的某个 Activity?

  •  
  •   zcm3579 · Sep 18, 2018 · 14951 views
    This topic created in 2971 days ago, the information mentioned may be changed or developed.
    例如我的 APP 有 MainActivity 和 AActivity BActivity CActivity 这几个页面
    在某些 cash 统计收集(例如 bugly 蒲公英)控制台中, 有时能看到应用在上传应用市场后, 被该市场自动化测试工具强行跳过了正常的流程,直接启动了后面的 Activity, 导致产生一些异常.

    请问这种启动方式是如何实现的? 是通过 ADB 还是其他工具?
    12 replies  •  2018-09-18 19:49:47 +08:00
    bertsir
    bertsir
    Sep 18, 2018
    1
    adb
    yukiww233
    yukiww233
    Sep 18, 2018
    2
    自己写过一个小工具用来做这个。。
    exported 的 activity 不要任何权限就可以启动
    sabermiao
    sabermiao
    Sep 18, 2018
    3
    drozer 一把梭
    Dori
    Dori
    Sep 18, 2018❤️1
    4
    adb shell am start -n com.android.settings/.Settings
    不知道包名和 activity 名字的话可以先 dumpsys 一下:
    adb shell dumpsys activity | grep mResumedActivity
    tenwx
    tenwx
    Sep 18, 2018❤️1
    5
    google play 上搜“ QuickShortcutMaker ”
    mzlogin
    mzlogin
    Sep 18, 2018❤️1
    6
    mzlogin
    mzlogin
    Sep 18, 2018
    7
    思路是可以先用脚本和工具将 AndroidManifest.xml 文件逆向出来,然后就能拿到 exported 的 Activity 列表了,再使用上述 adb 命令来调起。
    iwtbauh
    iwtbauh
    Sep 18, 2018 via Android
    8
    不用逆向那么麻烦,lineageos 的开发人员工具里就能列出 app 的 activity,Android 应该提供了 API 列出 app 的 activity
    zcm3579
    zcm3579
    OP
    Sep 18, 2018
    9
    感谢楼上各位回复

    不过尝试了上面的方法好像不能调起 exported=false 的 activity
    xuhaoyangx
    xuhaoyangx
    Sep 18, 2018
    10
    @zcm3579 #9 exported 得 xposed 一下
    kaedea
    kaedea
    Sep 18, 2018 via Android
    12
    adb am 工具
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1997 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 01:59 · PVG 09:59 · LAX 17:59 · JFK 20:59
    ♥ Do have faith in what you're doing.