多系统通用adb操作命令,创建时间:2019-06-25 21:54,作者:sunst。
ps:adb命令中如
com.sunst.ff/com.sunst.ff.TestActivity
1.com.sunst.ff是程序的包名。
2.TestActivity是程序Activity类名。
小团子是我这一辈子最爱的人,希望有一天能再次跟她重逢winter is comming
本备忘录📕:记录android中adb多系统操作相关命令anLff[anLff]
本备忘录📕:同步github/qydq.github.io/:=adb_command.md
日志:
Log.d(“sunst888” + TAG, "into onConnectionSuspended : ");
Locale local = new Locale("zh", "CN");
new Locale("zh","TW");
new Locale("en");
new Locale("en","US");
new Locale("en","UK");
new Locale("ja", "JP");
new Locale("ar","SA");
getResources().getConfiguration().locale.getCountry().equals("TW")
正反斜杠:
在Windows系统中,正斜杠/表示除法,用来进行整除运算;反斜杠\用来表示目录。
在Unix系统中,正斜杠/表示目录;反斜杠\表示跳脱字符将特殊字符变成一般字符(如enter,$,空格等)
注:
不管是pull还是push对device来说,目录路径使用反斜杠\\\\
ps:
常用命令和后面总结的命令有重复是正常的
mac电脑操作技巧
commond+shift+G,跳出前往文件夹的窗口
window
msconfig修改系统引导
命令窗口快捷打开windows+R
说明:以下操作是一样的
adb shell rm -rf /data/app/com.huawei.recsys/base.apk
adb shell
rm -rf /data/app/com.huawei.recsys/base.apk
adb devices
adb remount
显示remount succeeded就代表命令执行成功;
adb shell
或者
adb -s ********* shell
pwd
pm list packages
pm list packages | grep tencent
pm list packages -f
pm list packages -f | grep tencent
adb shell pm list packages -f | grep tencent
adb push E:\sunst\folder /sdcard/xfolder
Tips:folder中的文件love.txt也放进去在xfolder目录
adb push E:\sunst\folder. /sdcard/sunst
adb push E:\sunst. /sdcard/sunst
adb push E:\sunst\test.txt sdcard/sunst/copytest.txt
adb pull sdcard/sunst/copytest.txt E:/sunst/
adb pull sdcard/sunst/copytest.txt E:\sunst\xixi.txt 并重命名
adb pull /data/app/com.tencent.tbs-1/base.apk ~ 直接把设备文件拷贝到根目录
adb pull sdcard\sunst\copytest.txt(错误写法)
备注:
不管是pull还是push对device来说,目录路径使用反斜杠
linux下:adb shell ps | grep [apk包名]
windows下:adb shell ps | findstr [apk包名]
执行命令后如果有显示你搜索的apk包名,那说明正在运行,否则就是没有运行
find . -name “*.java” | xargs grep -ir “should_srearch_name”
find . -name “sunst”
find . -name “un”#使用通配符
说明:
find命令用于查找文件,后面的“."代表当前目录,-name是find命令的参数,后面接要搜索的文件名。
adb shell dumpsys activity | grep “Run”
adb reboot bootloader
fastboot devices
fastboot continue
一次烧写boot,system,recovery分区,创建包含boot.img,system.img,recovery.img文件的zip包。
执行:fastboot update {*.zip}
**注:**华为手机解锁命令: fastboot oem unlock 解锁码
adb shell settings list [system][secure][global]
adb shell settings get [system][secure][global] [Name]
adb shell settings put [system][secure][global] [Name] [Value]
adb logcat -v time -s “ActivityManager”
(1).push某个文件到目标板时,可通过如下命令,将目标目录临时变更为可读写模式:
adb shell
mount -o remount -rw /system
adb root
adb remount
adb shell dumpsys
adb shell dumpsys package com.sunst.ff.packagename
adb shell dumpsys package > ./package.txt
adb shell dumpsys package {包名}
adb shell dumpsys window visible
adb shell dumpsys activity com.android.settings/com.android.settings.Settings
adb shell dumpsys activity service com.android.settings/.SettingsDumpService
adb shell dumpsys notification
adb shell dumpsys activity provider com.android.providers.settings/com.android.providers.settings.SettingsProvider
adb logcat -v time -s InputDispatcher
输出案例:
07-29 11:04:56.258 I/ViewRootImpl( 8295): finishMotionEvent: handled = true stage=10:
View Post IME stage,inputElapseTime=2 eventTime = 68608867
downTime = 68608867 title= com.android.launcher3/com.android.launcher3.Launcher
adb logcat -v time -s “ActivityManager”
输出案例:
07-29 11:29:48.520 I/ActivityManager( 6692): START u0 {act=android.intent.action.MAIN
cat=[android.intent.category.LAUNCHER] flg=0x10200000
mCallingUid=10012 cmp=com.android.settings/.Settings bnds=[1056,1804][1392,2222] (has extras)}
from uid 10012 on display 0
adb logcat -v time -s “ActivityManager” |grep Display
输出案例:
07-29 11:18:16.557 I/ActivityManager( 1579): Displayed com.android.settings/.SubSettings: +299ms
adb shell settings put global device_provisioned 1
adb shell settings put secure user_setup_complete 1
[adb shell dumpsys activity a] [adb shell dumpsys activity]
adb shell dumpsys activity -d list:
输出案例:
ENABLE_THERMAL = true
0 . DEBUG_ALL = false
1 . DEBUG_BACKUP = false
2 . DEBUG_BROADCAST = false
3 . DEBUG_BROADCAST_LIGHT = false
4 . DEBUG_BROADCAST_BACKGROUND = false
5 . DEBUG_CLEANUP = false
6 . DEBUG_CONFIGURATION = false
7 . DEBUG_FOCUS = false
8 . DEBUG_IMMERSIVE = false
9 . DEBUG_LOCKSCREEN = false
10. DEBUG_LRU = false
11. DEBUG_MU = false
13. DEBUG_OOM_ADJ = false
14. DEBUG_PAUSE = false
15. DEBUG_POWER = false
16. DEBUG_POWER_QUICK = false
17. DEBUG_PROCESSES = false
18. DEBUG_PROCESS_OBSERVERS = false
19. DEBUG_PROVIDER = false
20. DEBUG_RESULTS = false
21. DEBUG_SERVICE = false
22. DEBUG_SERVICE_EXECUTING = false
23. DEBUG_STACK = true
24. DEBUG_SWITCH = true
25. DEBUG_TASKS = true
26. DEBUG_THUMBNAILS = false
27. DEBUG_TRANSITION = false
28. DEBUG_URI_PERMISSION = false
29. DEBUG_USER_LEAVING = false
30. DEBUG_VISIBILITY = false
31. DEBUG_PSS = false
32. DEBUG_RECENTS = false
33. DEBUG_THERMAL = false
34. DEBUG_ADD_REMOVE = false
35. DEBUG_APP = false
36. DEBUG_CONTAINERS = false
37. DEBUG_IDLE = false
38. DEBUG_RELEASE = false
39. DEBUG_SAVED_STATE = false
40. DEBUG_SCREENSHOTS = false
41. DEBUG_STATES = false
42. DEBUG_VISIBLE_BEHIND = false
ps:
可以选择将如下三项打开:
adb logcat -v time -s “ActivityManager”
log备注:
01-02 05:47:11.624 12182 13492 I ActivityManager: START u0 {mCallingUid=1000 cmp=com.android.settings/.ChooseLockPattern (has extras)} from uid 1000 on display 0
01-02 05:47:11.624 12182 13492 I ActivityManager: sourceRecord = ActivityRecord{82c19d8 u0 com.android.settings/.ChooseLockGeneric$InternalActivity, isShadow:false t3}
01-02 05:47:11.624 12182 13492 D ActivityManager: startActivityLocked skipCheckAccessControl = true
01-02 05:47:11.634 12182 13492 I ActivityManager: startActivityUnchecked mReusedActivity=null r=ActivityRecord{a5b9d3b u0 com.android.settings/.ChooseLockPattern, isShadow:false t-1}
01-02 05:47:11.636 12182 13492 V ActivityManager: Starting new activity ActivityRecord{a5b9d3b u0 com.android.settings/.ChooseLockPattern, isShadow:false t3} in existing task TaskRecord{9629e54 #3 A=com.android.settings, isShadow:false U=0 StackId=1 sz=4} from source ActivityRecord{82c19d8 u0 com.android.settings/.ChooseLockGeneric$InternalActivity, isShadow:false t3}
ps:
SourceRecord=开头的字串
adb logcat -v threadtime -s ViewRootImpl
可以看到如下log:
04-25 01:57:21.441 11173 11173 I ViewRootImpl: finishKeyEvent: handled = true keycode = 4 name=KEYCODE_BACK stage=10: View Post IME stage,inputElapseTime=4 eventTime = 4616876 downTime = 4616876 title= com.android.settings/com.android.settings.Settings
04-25 01:57:21.840 2920 2920 I ViewRootImpl: updateImmersive mode: gain focus
adb shell monkey -p com.sunst.ff.pakagename -v 500
adb shell
pm grant com.provision.wearprovision.activity android.permission.CHANGE_CONFIGURATION
adb shell pm grant com.provision.wearprovision.activity android.permission.CHANGE_CONFIGURATION
pm工具为包管理(package manager)的简称,可以使用pm工具来执行应用的安装和查询应用包的信息、系统权限、控制应用
pm工具是Android开发与测试过程中必不可少的工具
pm [command]
pm list packages [options] [FILTER]
打印所有的已经安装的应用的包名,如果设置了文件过滤则值显示包含过滤文字的内容
参数 | 描述 |
---|---|
-f | '显示每个包的文件位置' |
-d | "使用过滤器,只显示禁用的应用的包名" |
-e | 使用过滤器,只显示可用的应用的包名 |
-s | 使用过滤器,只显示系统应用的包名 |
-3 | 使用过滤器,只显示第三方应用的包名 |
-i | 查看应用的安装者 |
<permission android:description="string resource"
android:icon="drable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal"|"dangerous"|"signature"|"signatureOrSystem"]/>
protectionLevel
说明
normal 表示权限是低风险的,不会对系统,用户或其他应用程序造成危害
dangerous 表示权限是高风险的,系统将可能要球用户输入相关信息,才会授予此权限
signature 表示只有当应用程序所用数字签名与声明引用权限的应用程序所用签名相同时,才能将权限授予给它
signatureOrSystem 需要签名或者系统级应用(放置在/system/app目录下)才能赋予权限
system 系统级应用(放置在/system/app目录下)才能赋予权限
自定义权限 应用自行定义的权限
pm list permission-groups
pm list permissions [options] [GROUP]
Tips:
参数可以组合使用例如:pm list permissions –g -d
参数 | 描述 |
---|---|
-g | 按组进行列出权限 |
-f | 打印所有信息 |
-s | 简短的摘要 |
-d | 只有危险的权限列表 |
-u | 只有权限的用户将看到列表用户自定义权限 |
pm grant android.permission.READ_CONTACTS
pm revoke android.permission.READ_CONTACTS
Tips:
所谓的授权是指你的apk里面已有的权限进行授权,相当于启用的概念
pm list instrumentation
pm path PACKAGE_NAME
pm list feature
*打印当前设备所支持的所有库
pm list libraries
pm dump PACKAGE
pm install [-lrtsfd] [-i PACKAGE] [PATH]
通过指定路径安装apk到手机中(与adb install不同的是adb install安装的.apk是在你的电脑上,而pm install安装的apk是存储在你的手机中)
首先将test.apk文件push到手机目录中比如/data/local/tmp
adb shell pm install /data/local/tmp/test.apk #安装
adb shell pm install –r /data/local/tmp/test.apk #重新安装
参数 | 描述 |
---|---|
-l | 锁定应用程序 |
-r | 重新安装应用,且保留应用数据 |
-t | 允许测试apk被安装 |
-i | 指定安装包的包名 |
-s | 安装到sd卡 |
-f | 安装到系统内置存储中(默认安装位置) |
-d | 允许降级安装(同一应用低级换高级) |
-g | 授予应用程序清单中列出的所有权限(只有6.0系统可用) |
pm uninstall [options]
参数-k 卸载应用且保留数据与缓存(如果不加-k则全部删除)
pm clear <PACKAGE_NAME>
pm enable <PACKAGE_OR_COMPONENT>可用
pm disenable <PACKAGE_OR_COMPONENT>不可用(直接就找不到应用了)
pm disenable-user [options] <PACKAGE_OR_COMPONENT>不可用(会显示已停用)
Tips:
被隐藏应用在应用管理中变得不可见,桌面图标也会消失
adb shell am start -n com.sunst.ff/com.sunst.ff.MainActivity
adb shell monkey -p com.sunst.ff -c android.intent.category.LAUNCHER 1
adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n com.sunst.ff.packagename/com.sunst.ff.packagename.TestActivity
adb shell am start -n com.sunst.ff/com.sunst.ff.TestActivity
adb shell am start -n com.sunst.ff/.TestActivity
adb shell am force-stop 包名
ota是空中下载技术,就是完成手机升级的术语,具体可参考我知乎,
在操作中,可以通过部分重启来节省时间。在cmd中执行如下命令:
abd shell//进入adb shell 模式
am restart //重启系统(非完全重启)
adb reboot bootloader
该命令会自动进入fastboot模式
fastboot devices
查看是否有设备 或者adb devices
fastboot erase system
fastboot erase cache
fastboot erase config
fastboot erase data
fastboot erase logs
fastboot erase factory
fastboot format data # 格式化 data 分区
fastboot flash boot boot.img # 刷入 boot 分区
fastboot flash system system.img # 刷入 system 分区
fastboot flash recovery recovery.img # 刷入 recovery 分区
fastboot flashall #烧写所有分区,注意:此命令会在当前目录中查找所有img文件,将这些img文件烧写到所有对应的分区中,并重新启动手机。
fastboot flashing lock # 设备上锁,刷机完毕
fastboot flashing unlock #6.0以上设备 设备必须解锁,开始刷机(这个不同的手机厂商不同)
fastboot reboot
fastboot continue
fastboot reboot-bootloader
也可以采用adb shell模式下的dd命令
来刷recovery.img
adb shell
su
dd if=/data/local/tmp/recovery.img of=/dev/block/platform/msm_sdcc.1/by-name/recovery
dd if=/data/local/tmp/recovery.img of=/dev/recovery
dd if=/data/local/tmp/recovery.img of=/dev/block/platform/sdhci-tegra.3/by-name/SOS
reboot recovery
Tips:
adb reboot recovery 也可以让手机开机进入
recovery模式
===================================================================================================