《搞机工具箱》是我的开发的一款图形化adb工具箱,也是个人代表作。曾有不少用户反馈希望加上一个可以实时显示ADB代码的功能,在搞机之余还能学习其中的原理,做到举一反三。

adb关闭更新(免ROOT玩机也能如此强大)(1)

所以这篇图文,我将更新了有80次之多的《搞机工具箱》中的所有ADB代码列出并加以扩展,在相应的代码区域也配有相应的截图,帮助大家学习。开始前必读:1.个人认为学习新东西不论有没有兴趣,但不要让读者一上来就看到很难理解或普通情况下根本用不到的东西,结果往往会严重打消积极性。所以本篇只会介绍一些常用且实用命令,玩机完全够,不涉及难以理解的知识。所以不要说“这里不全啊”之类的话。感兴趣可自行百度或使用内置help命令学习更多代码。2.ADB命令理论所有机型可用,若没效果说明ROM阉割了,这种现象很正常。推荐使用类原生ROM测试3.本篇不涉及recovery和fastboot相关命令。一、介绍Android 调试桥 (adb) 是一种功能多样的命令行工具,可与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用)本文由晨钟酱原创,并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。对于玩机用户来说,ADB的权限处于$和#之间,因此可以在不ROOT的情况下对设备进行一些特殊操作,但必须借助电脑。如果不使用电脑,则需要使用SU来获取权限。二、下载与连接⒈下载官方SDK:

adb关闭更新(免ROOT玩机也能如此强大)(2)

⒉开启USB调试方法就略过了,注意部分机型限制严格,例如小米还需要打开那个安全设置。有些电脑会出现不识别手机的情况,特别是win7。在排除硬件问题的情况下可尝试安装驱动⒊将手机连接电脑,设备管理器会出现如下图所示设备,即代表ADB驱动正常

adb关闭更新(免ROOT玩机也能如此强大)(3)

⒋解压下载的SDK,会看到以下文件,但本文所介绍的命令仅需要以下三个文件即可执行

adb关闭更新(免ROOT玩机也能如此强大)(4)

⒌在SDK根目录的地址栏输入“cmd”三个字母,按回车键即可打开命令行,并定位到当前文件夹。

adb关闭更新(免ROOT玩机也能如此强大)(5)

在命令行输入“adb devices”即可检测当前设备,要注意首次连接需点击手机端的允许调试并打勾。也可以设置环境变量,实现全局目录的ADB,因篇幅有限在此不讨论,可自行搜索学习。最后输出了序列号,表示连接成功,一切准备工作到此完成!

adb关闭更新(免ROOT玩机也能如此强大)(6)

三、基础命令开始前,请先记住下文出现的<pkg>代表包名<act>代表app活动界面<url>代表网页连接路径<urlC>代表电脑端文件路径<urlP>代表手机端文件路径⒈服务与连接adb start-server启用ADB服务adb kill-server关闭ADB服务adb devices列出ADB设备adb -s使用指定ADB设备。s填写上一步列出的序列号adb tcpip 5555设置端口转发为5555,配合下面一条可开启网络调试adb connect xxx.xxx.xxx.xxx:55554个xxx代表手机局域网IP,在关于手机,状态信息,拉到最下面找到IPv4地址adb disconnect xxx.xxx.xxx.xxx:1234断开网络调试adb usb使用usb连接adb root使用root模式。前提是已经获取root,相当于在手机终端输入suadb reboot重启设备adb reboot recovery(fastboot)重启到rec模式(fb模式)⒉安装与卸载软件adb install "<urlC>"安装电脑端的apk(路径加引号是为了避免文件夹出现空格)adb install -r "<urlC>"覆盖安装(升级)adb install -s "<urlC>"安装到sd卡adb uninstall <pkg>卸载软件(仅第三方)adb uninstall -k <pkg>卸载软件但保留数据(例如给微信降级)⒊传输文件adb push "<urlC>" <urlP>推送电脑上的文件到手机(手机路径可手动填写,若文件夹不存在会自动创建)。重点说一下:若文件带有中文,需要在本教程由酷安晨钟酱原创,手机端最后再填写一下原文件名,例如 adb push D:\搞机.txt /sdcard/搞机.txt 否则后缀名会被吞掉(这是ANSI转UTF-8编码问题,感兴趣可以看 查看链接 )adb pull <urlP> "<urlC>"将存储目录的文件推送到手机,例如adb pull /sdcard/123.txt C:\Users\Administrator\Desktop⒋活动管理器adb shell am start <pkg>/<act>启动app并打开指定界面adb shell am force-stop <pkg>强制停止app(执行后app会直接闪退)adb shell am start -a android.intent.action.VIEW -d <url> -p <pkg>使用指定app打开某个网页链接⒌包管理器adb shell pm disable-user <pkg>禁用系统app,这条一定要背熟!对付洋LJ必备adb shell pm enable <pkg>启用系统app,和上一条配合使用adb shell pm install <urlP>安装手机内的apk文件。注意和不带shell pm的要区分开!路径前也可以跟随之前介绍的几个参数。adb shell pm uninstall <pkg>卸载软件。注意:如果带 "--user 0"参数,则可“卸载”系统软件,但并不是真正的卸载,相关介绍可以看 查看链接。adb shell pm clear <pkg>清除所有数据,恢复到初始安装后的状态adb shell pm list package -f列出apk的安装位置与对应包名adb shell pm list package -d列出禁用的包名,仅限系统应用adb shell pm list package -e列出启用的包名,仅限系统应用adb shell pm list package -s列出所有系统应用包名adb shell pm list package -3列出第三方应用包名adb shell pm list package -i列出软件对应的安装来源的包名adb shell pm list package -i列出本图文由酷安晨钟酱原创的包名adb shell pm list package -u列出被卸载过的软件的包名《搞机工具箱》的软件操作内,包含了以上2.3.4.5部分功能

adb关闭更新(免ROOT玩机也能如此强大)(7)

⒍窗口管理器adb shell wm density列出当前显示的DPI。注意,这并不是开发者选项中的dp!换算为"横向分辨率*160/DPI=dpadb shell wm density xxx设置DPI为xxx,xxx是正整数adb shell wm density reset恢复默认DPIadb shell wm size列出当前显示的分辨率。adb shell wm size axb设置分辨率,注意手机的格式为“横向x纵向”,且中间的“x”就是字母x,不是乘号,两边没有空格!adb shell wm size reset恢复默认分辨率adb shell wm overscan a,b,c,d设置、重置屏幕的显示区域。abcd四个参数为整数,分别是显示边缘距左、上、右、下的像素数,正里负外。听不懂没关系,记住它有一个很重要的用途就是永久隐藏导航栏,使用命令wm overscan 0,0,0,-d,其中d为导航栏的像素高度。关于wm命令多说一句:就算有root了也建议在电脑改以上信息,不会因为手残多输了一位数字让当前界面严重变形,想恢复却找不到输入框。特别是遇到MIUI这种默认有最高限制的,root强行改不好就会卡米!《搞机工具箱》的显示操作内,包含了以上6的全部功能

adb关闭更新(免ROOT玩机也能如此强大)(8)

⒎按键与触摸模拟adb shell input text “xxx”向设备输入xxx字符(不支持中文,同样是因为编码问题)adb shell input keyevent xx代表keycode。下图左边的红色数字就是keycode,这里只列举一些常用的,完整版的可以自己查。

adb关闭更新(免ROOT玩机也能如此强大)(9)

例如输入adb shell input keyevent 26 就相当于按了一下锁屏键adb shell input tap x y模拟点击屏幕x和y坐标,坐标可以打开开发者中的“指针位置”来确定adb shell input swipe x1 y1 x2 y2 d在d毫秒内,模拟滑动屏幕x1,y1坐标到x2,y2坐标。总结一下,input命令加上循环可用作按键脚本,连点器等等。可玩性非常高,真正做到解放双手。《搞机工具箱》的触摸模拟内,包含了以上7的部分功能

adb关闭更新(免ROOT玩机也能如此强大)(10)

adb关闭更新(免ROOT玩机也能如此强大)(11)

四、高级命令(部分机型可能没效果)⒈Settings设置表adb shell settings put global window_animation_scale 1.25 修改窗口动画速度为1.25adb shell settings put global transition_animation_scale 1.32修改过渡动画速度为 1.32adb shell settings put global animator_duration_scale 1.55修改程序动画速度为 1.55adb shell settings put system font_scale 1.02修改全局字体缩放为1.02,1为默认adb shell settings put global policy_control immersive.status=*隐藏状态栏,上滑可出adb shell settings put global policy_control immersive.navigation=*隐藏导航栏,上滑可出adb shell settings put secure icon_blacklist rotate,volume隐藏状态栏的旋转和音量图标。注意多个隐藏的图标只能用一条完整指令隐藏,不填就代表会显示!其他图标可以看这里 查看链接adb shell settings put secure sysui_qqs_count 8修改状态栏一级下拉图标数量为8个adb shell settings put secure sysui_rounded_content_padding 2修改状态栏两侧的置顶间距位2(仅限Pie及以上系统使用,非圆角屏建议调成0)adb shell settings put global captive_portal_https_url htt删p://connect.rom.miui.c删om/generate_204修改WIFI验证服务器为国内服务器,多用于去除wifi的x号更多settings指令可使用adb shell settings查看,充分利用help命令,包括打印系统自带的system, secure, global列表,学会了settings才算真正的掌握了ADB玩机的精髓。以上命令想恢复默认只需删掉最后的参数,本文由酷安晨钟酱原创,把put改成reset执行即可《搞机工具箱》的软件操作内,包含了以上1的全部功能

adb关闭更新(免ROOT玩机也能如此强大)(12)

⒉dumpsys系统状态adb shell dumpsys window windows | findstr "Current"显示当前界面的activity。可配合am start <pkg>/<act>; 让app打开并跳转到指定界面adb shell dumpsys battery列出电池状态adb shell dumpsys battery set level 150修改电池百分比为150adb shell dumpsys battery reset恢复真实百分比adb shell dumpsys meminfo列出内存状态adb shell dumpsys cpuinfo列出CPU状态adb shell dumpsys gfxinfo列出帧率状态adb shell dumpsys display列出显示屏状态上面的四个会打印出很多信息,感兴趣可以研究一下输出,多用于开发调试。目前比较常用的就是以上这些了。如有错误欢迎指出

adb关闭更新(免ROOT玩机也能如此强大)(13)

以上教程由酷安晨钟酱原创,感谢大佬的作品。

,