查看apk包名和Activity名

今天遇到一个bug,比较有意思。

情景:

  • 测试一个钻石提现功能,条件是账户里必须有价值等于或者超过50美元的钻石,才允许提现,否则无法进行下一步。

测试步骤:

  1. 提现页面输入一个小于50美元的提现金额,不点击下一步
  2. 进入手机shell,获取root权限,执行 am start -n com.cs.test/.activity.WithdrawCardListActivity,回车之后就能进入选择银行卡页面
  3. 输入银行卡卡号,下一步,提现了

    这个测试的意图就是,在不满足判断条件的情况下,越过app的验证,继续后面的操作。

    这里要学习的就是 am start -n com.cs.test/.activity.WithdrawCardListActivity 这个命令。

    前面的篇章有介绍过,am start -n <包名>/<包名>.<Activity名> 这条命令的作用就是启动程序或者直接启动某个Activity,就像这个测试中的跳转一样。

    那么问题来了,怎么获取这个app的包名和Activity名呢?

查看包名的方法有以下两种但不局限于这两种:

  • aapt dump badging <apk文件路径> ,aapt是SDK的一个小工具,在build-tools里面

          

  • 使用re文件管理器,查看/data/app

查看Activity名的方法

  • adb shell dumpsys activity | grep "Card"          -----Linux
  • adb shell dumpsys activity | findstr "Card"        -----Windows

          

    记得一定要进行过滤,因为一个app会有很多个Activity,不过滤会找得头都晕的。

    然后,问题又来了,aapt 这个命令又该怎么用呢?知道aapt可以用来查看包名、activity名、版本等很多信息,后面用到再逐个去了解,先知道有这么回事儿就行了。

     

原文地址:https://www.cnblogs.com/mgzc-1508873480/p/7066266.html