adb启动APP-以微信举例

一、环境准备

环境准备及基础 http://t.csdnimg.cn/xQKzf

二、启动APP(以微信举例)

启动命令:adb shell am start “包名”/“开启活动名”

1、手机打开微信
2、cmd窗口输入

adb shell dumpsys window | findstr mCurrentFocus

显示如下信息:
返回包名
这里com.tencent.mm 就是微信的包名
3、获取打开活动(Activity)

adb shell dumpsys package com.tencent.mm 

get到了很多活动,太乱了
这个返回的太乱了,需要筛选一下:adb shell dumpsys package com.tencent.mm | findstr \/ |findstr filter

在这里插入图片描述

这个就是对应的包+活动名 com.tencent.mm/.plugin.account.ui.ContactsSyncUI

4、adb启动微信

adb shell am start com.tencent.mm/.plugin.account.ui.ContactsSyncUI

在这里插入图片描述
如果测试启动时间:增加-W参数 adb shell am start -W com.tencent.mm/.plugin.account.ui.ContactsSyncUI
在这里插入图片描述

三、其他方法

1、 cmp

#打开需要获取的应用(不需要知道包名,第一个cmp后面的值即为activity)
 
adb shell dumpsys activity activities | findstr "cmp="

2、top

#有些傻逼APP,它会隐藏很多Activity的权限,用它定义的MainActivity去启动app会得到权限不足的回答。
#这样的APP,必须找到它的启动Activity
#办法是当启动的时候,不停的用命令提示符使用adb命令

adb shell dumpsys activity top | findstr ACTIVITY

四、尝试打开和家亲

以上方法尝试获取和家亲的activity,
尝试过关闭在启动adb adb kill-serveradb start-server
查资料看说 AndroidManifest.xml 清单有关,在手机APP安装路径尝试找,没找到没找到。。。
以上方法获取的都报错,实在是让人头疼

java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.cmri.universalapp/.smarthome.control.view.CameraControlActivity } from null (pid=27931, uid=2000) not exported from uid 10393
        at com.android.server.wm.ActivityTaskSupervisor.checkStartAnyActivityPermission(ActivityTaskSupervisor.java:1242)
        at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1221)
        at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:867)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1465)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1416)
        at com.android.server.am.ActivityManagerService.startActivityAsUserWithFeature(ActivityManagerService.java:3397)
        at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:771)
        at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:253)
        at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
        at android.os.ShellCommand.exec(ShellCommand.java:38)
        at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:10242)
        at android.os.Binder.shellCommand(Binder.java:1075)
        at android.os.Binder.onTransact(Binder.java:895)
        at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:5776)
        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2852)
        at android.os.Binder.execTransactInternal(Binder.java:1351)
        at android.os.Binder.execTransact(Binder.java:1282)

直接暴力尝试,获取到所有带‘filter’的活动,准备拿出来在Excel中去重,然后一个一个去试下
在这里插入图片描述
与此同时看到了一个熟悉的身影,有个活动名称和查资料的时候一样
在这里插入图片描述
参考http://t.csdnimg.cn/N6Pl9
尝试下com.cmri.universalapp/.splash.activity.SplashActivity
果然可以,,,,如原博所说,傻逼 和家亲

五、参考文章

使用ADB启动手机APP http://t.csdnimg.cn/N6Pl9
使用adb命令启动app http://t.csdnimg.cn/QbEgc
最好的ADB教程,从下载安装到使用的详细说明,从小白到工作【win+ linux】http://t.csdnimg.cn/GokNx

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值