ADB详解与fastboot以小米为例


前言

使用ADB命令可以禁用一些系统应用(免root)。
一般卸载系统软件以系统更新为例,可以通过两种方式:
1)ADB工具卸载禁用。
2)获取root权限,刷模块禁用升级。
本文介绍第一种方式。这种方式相比刷root更加安全可靠。
但是也需要谨慎使用,不能乱删导致变砖。


一、什么是ADB与fastboot?

ADB全称Android Debug Bridge,调试桥作用即调试的接口,一个客户端-服务器端(Android)程序,ADB是Android SDK 的工具,直接操作管理Android设备。

ADB连接物理方式:
adb支持两种连接Android系统的方式,USB方式及网络方式 . 一般android设备默认会设置为USB方式(直接插数据线的方式) . android系统底层运行着一个服务(adbd),在手机系统内部,管理在电脑端的adb命令连接,这个服务在启动时会根据手机的配置监听USB连接或网络

ADB命令如何连接手机
手机通过USB(先安装驱动)或者WiFi通电脑连接
手机开启调试模式:选项-点击8次版本号直到弹出开发者模式提示-开发者选项-调试模式
任务管理器关闭手机助手软件,避免端口冲突

adb devices 则默认连接到手机,默认端口为5037(USB)
adb connect/disconnect 手机IP地址(WiFi)

某些命令和文件夹执行需要ROOT权限
adb版本要和手机系统匹配

二、ADB安装

1.ADB下载

ADB下载地址1:https://adbshell.com/downloads
ADB下载地址2:https://developer.android.com/studio/releases/platform-tools.html
进入https://adbshell.com/downloads选择ADB Kit工具包下载,下载完成将其解压缩后,可以得到以下3个核心文件:
ADB

2.ADB驱动安装

一般直接插数据线自动安装。

3.ADB安装

方法一:
我的电脑-》右键属性-》高级系统设置-》环境变量path-》添加adb工具路径。
方法二:
将三个文件剪切到下面两个目录中
C:\Windows\System32
C:\Windows\SysWOW64
ADB

4.fastboot安装

Fastboot,意思是快速启动。Fastboot是一种电脑通过USB数据线对手机固件进行刷写、擦除/格式化、调试、传输各种指令的 固件通信协议 同时也是Google的Android SDK Platform Tools中的一个命令行工具。需要在电脑上安装适合手机的 USB 驱动程序。

在安卓手机中Fastboot是一种比recovery更底层的刷机模式(俗称快速引导模式)。
相对于某些系统卡刷来说,线刷更可靠,安全。Fastboot从字面上来看是快速启动的意思,也算是一个刷机界面,不过比recovery更加底层,这个底层是更加接近硬件层。

当手机不能进入recovery的时候,还能进Fastboot挽救。当不能进入Fastboot的时候,还有Qualcomm 9006/9008端口、MTK端口、QCN端口刷机能挽救。不过当电脑连这些手机刷机端口都不能连上的时候,那可就是砖了。

三、ADB使用

步骤
1)手机-》进入开发者选项-》打开USB调试
2)手机数据线连接电脑-》电脑cmd进入小黑框
3)使用adb命令,详见第四章
如查看系统中所有的包
卸载系统中的应用
卸载完后就可以拔掉数据线了

四、ADB常用命令

adb devices		//查看adb已连接的设备信息,出现序列号和device表示已正常连接设备
adb shell pm list packages		//查看所有已安装应用的包名
adb shell pm uninstall -k --user 0 包名		//卸载包名所对应的软件(卸载命令1)
adb uninstall 包名		//卸载包名所对应的软件(卸载命令2,与卸载命令1功能相同,2选1即可)

1、查看adb版本

C:\Users\30608>adb version
Android Debug Bridge version 1.0.29

也有另外的效果,应该是安装的路径有问题

E:\other>adb version
Android Debug Bridge version 1.0.41
Version 29.0.1-5644136
Installed as C:\Windows\system32\adb.exe

2、查看系统中所有包

adb shell pm list packages
在这里插入图片描述

3、卸载指定包名对应的软件

adb shell pm uninstall -k --user 0 包名

如何选对应的软件包
法1)在手机上通过第三方软件(如APK查看器等)查看卸载的软件包名,比如这里系统更新的包名就是com.android.updater
法2)打开系统设置——应用管理,右上角选择「显示系统服务」。点击下面的应用,再点击右上角 ⓘ 图标,就能够查看到应用包名。
提示Success就表示卸载成功。以卸载系统更新为例
在这里插入图片描述
更多的adb命令https://adbshell.com/

用来连接设备
adb connect ip地址
断开设备
adb disconnect ip地址
终止adb服务/启动adb服务
adb kill-server/start-server
启动service
adb shell am startservervice
启动activity
adb shell am start -n 包名/类名
列出所有的选项说明及子命令
adb help

重启到recovery和fastboot
adb reboot recovery
adb reboot fastboot

安装APK:adb install [-lrtsdg] <path_to_apk>
卸载应用:adb uninstall [-k] <packagename>

清除应用数据和缓存:adb shell pm clear <packagename>
强制停止应用:adb shell am force-stop <packagename>

测试  得到1个小时,设置次数可能在百万以上
adb shell monkey -p com.xyy.vwill -s 100 10000--momkey

monkey日志分析:日志: app的日志(adb logcat :crash anr error等日志) monkey执行日志(执行过程,正常结束,异常结束,执行了哪些事件,执行时长)
关闭WiFi
adb shell svc wifi disable
开启WiFi
adb shell svc wifi enable
ping网络动态
ping -c 1 -w 1 119.29.29.29/ping 119.29.29.29

连接设备,传输文件从设备传到电脑
adb pull 文件路径 D:/file/20220421.txt(存放的文件路径和文件名)
从电脑传到设备端
adb push C:/users/desktop/gc2093_default_JX8006.json  vendor/etc/camera/rkisp2/gc2093_YT-RV1109-2-V2_40IR-2MP-F20.json

当传输文件提示没有权限,需要获得权限 adb root   adb  remount
adb shell screencap -p /sdcard/screenshots/01.png/adb pull /sdcard/screenshots D:/file--adb命令截图
消除屏幕图案:adb shell rm /data/system/gesture.key
截图:adb shell screencap <文件保存路径>
adb shell screencap /sdcard/screen.png--手机截图保存到SD卡
录像:adb shell screenrecord <文件保存路径>
注:Ctrl + C停止屏幕录制,或者到三分钟停止,且没有声音

adb shell
su
wm density--查看设备密度
wm density 120--改密度

卸载应用程序
adb uninstall com.imstlife.anaerobic
安装(可以直接拖到文件到cmd里,cmd自动识别路径)
adb install anaerobic.apk
adb shell pm list packages -3--显示第三方应用包名

设备压力测试
adb shell
su
am start -n com.cghs.stresstest/.StressTestActivity

权限
adb shell
su
chmod -R 777 vendor

查询手机cpu和内存信息
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
adb shell ps
adb shell kill pid

连接并进入设备:adb shell
发送广播:adb shell am broadcast -a 广播action
文件传输(复制):
传到板子:adb push <本地路径> <板子路径>
从板子传回:adb pull <板子路径> <本地路径>
adb push C:\a.txt /sdcard/
adb pull /sdcard/a.txt C:\

关机:cmd:adb shell reboot -p  serial:reboot -p
重启并进入烧录模式:cmd:adb shell reboot efex   serial:reboot efex

消除密码:adb shell rm /data/system/password.key

串口电量:echo 1 > /sys/class/axppower/axpdebug
查询当前充电电流:cat /sys/class/power_supply/battery/current_now

滑动解锁:adb shell input swipe x1 y1 x2 y2
注:1为起始坐标,2为终点坐标

点击操作:adb shell input tap x y
注:x,y为要点击的坐标

禁止休眠:echo testlock > /sys/power/wake_lock
恢复可休眠:echo testlock > /sys/power/wake_unlock

切换HMDI输出模式:echo 720p50hz > /sys/class/disp/disp/attr/hdmi_test_mode

查看SD卡是否被识别(定位驱动):ls /dev/block
查看各分区容量:df

查询当前策略:cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

切换策略:echo fantasys > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

获取log:
adb shell logcat -v time >>c:\1.5rc2#55-bug-logcat.log
adb shell dmesg >> c:\1.2-#01--BUG描述-dmesg.log
adb shell mount >> c:\1.2-#46-mount.log
logcat-- 查看日志
    adb logcat -v time *:W |grep pid > /data/data/log.txt
    adb pull /data/data/log.txt d:/log/
    adb shell "logcat -v time *:W |grep pid " > d:/log/log.txt
    adb logcat -c

日志的指令
logcat -v time -n 10 -r 102400 -f /sdcard/logcat.txt(一直发送)
logcat -v time -n 10 -r 102400 -f /sdcard/logcat.txt &(发送一次)

整理一下可删除的应用(测试删除后能正常开机使用)
com.miui.systemAdSolution (小米系统广告解决方案,必删) com.miui.analytics (小米广告分析,必删) com.xiaomi.gamecenter.sdk.service (小米游戏中心服务) com.xiaomi.gamecenter (小米游戏中心) com.sohu.inputmethod.sogou.xiaomi (搜狗输入法) com.baidu.input_mi (百度输入法小米版)com.miui.player (小米音乐) com.miui.video (小米视频) com.miui.notes (小米便签) com.miui.translation.youdao (有道翻译) com.miui.translation.kingsoft (金山翻译) com.android.email (邮件) com.xiaomi.scanner (小米扫描) com.miui.hybrid (混合器) com.miui.bugreport (bug 反馈) com.milink.service (米连服务) com.android.browser (浏览器) com.miui.gallery (相册) com.miui.yellowpage (黄页) com.xiaomi.midrop (小米快传) com.miui.virtualsim (小米虚拟器) com.xiaomi.payment (小米支付) com.mipay.wallet (小米钱包) com.android.soundrecorder (录音机) com.miui.screenrecorder (屏幕录制) com.android.wallpaper (壁纸) com.miui.voiceassist (语音助手) com.miui.fm (收音机) com.miui.touchassistant (悬浮球) com.android.cellbroadcastreceiver (小米广播) com.xiaomi.mitunes (小米助手) com.xiaomi.pass (小米卡包) com.android.thememanager (个性主题管理) com.android.wallpaper (动态壁纸) com.android.wallpaper.livepicker (动态壁纸获取) com.miui.klo.bugreport (KLO bug 反馈)
国内版MIUI
com.miui.cloudservice (小米云服务)
com.xiaomi.account (小米账户)
com.android.updater (系统更新)
com.miui.cloudbackup (云备份)
com.xiaomi.market (应用市场)
com.xiaomi.finddevice (查找手机)
com.lbe.security.miui (权限管理服务)
com.miui.securitycenter (手机管家)
MIUI 国际版(欧版 miui.eu)应用包名(欧版可以随便删)
com.google.android.googlequicksearchbox (Google)
com.miui.miservice (服务与反馈)
com.mi.health (健康)
com.mi.globalbrowser (国际版浏览器)
com.miui.huanji (小米换机)
com.miui.newmidrive (小米云盘)
com.miui.bugreport (用户反馈)
com.miui.personalassistant (智能助理)
com.android.hotwordenrollment.xgoogle (谷歌助理1)
com.android.hotwordenrollment.okgoogle (谷歌助理2)
com.xiaomi.mirecycle (小米回收)
com.miui.videoplayer (小米视频国际版)
com.google.android.projection.gearhead (Google Auto/Google 汽车)
com.google.android.gms.location.history (Google 地理位置历史记录)
com.google.ar.lens (Google 智能(虚拟)摄像头)

五、fastboot常用命令

fastboot与手机的连接方式
手机关机进入bootloader模式,用USB数据线连接电脑

列出与电脑连接的设备
fastboot devices
解锁
fastboot oem unlock 解锁码
上锁
fastboot oem lock
刷入boot分区
fastboot flash boot boot.img 
刷入system分区
fastboot flash system system.img
 刷入recovery分区
fastboot flash recovery recovery.img
刷入引导+恢复+系统镜像文件
fastboot flashall
重启设备
fastboot reboot
重启到BootLoader 
fastboot reboot-bootloader
擦除系统分区
fastboot erase system
获取手机信息
fastboot getvar all

总结

工具下载
https://download.csdn.net/download/CHengYuP/87700055
谨慎删除。
引用链接
1)https://blog.csdn.net/weixin_69681418/article/details/125995030
2)https://blog.csdn.net/hhx123456798/article/details/121483826
3)https://blog.csdn.net/m0_60352504/article/details/120087498?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-120087498-blog-121483826.235%5Ev29%5Epc_relevant_default_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-120087498-blog-121483826.235%5Ev29%5Epc_relevant_default_base3&utm_relevant_index=2

猜你喜欢

转载自blog.csdn.net/CHengYuP/article/details/130200079