手机解锁 #
很多品牌的手机为了所谓的用户体验,出厂预装的系统都锁定了Bootloader,简称BL锁。
入手新的手机,如果想要按照自己的预期调教,则必须要解除Bootloader锁定,简称解锁。
部分手机品牌还有额外的限制,推荐购买手机的时候选择官方支持解锁的品牌,这样会大大方便后期的调教。
开启调试模式 #
正常开启
USB调试模式是 Android 提供的一个用于开发工作的功能,使用该功能可在计算机和 Android 设备之间复制数据、在移动设备上安装应用程序、读取日志数据等。
通用开启流程:连续点击“设置-关于手机-版本号”,直至手机提醒”您已启用开发者选项“,然后“设置-系统-开发者选项”进入,选择”Android调试“,如有特别的需求可以同时选择”Root身份的调试“。
”Android调试“被部分手机品牌单独拆分了安全设置或模拟点击,全部选择即可。
推荐”默认USB配置“选择”文件传输“,以备手机出现故障连接电脑恢复数据。
强制开启
系统无法正常使用时,进入recovery,部分手机支持调试。
当然最好直接修改boot.img,然后使用fastboot刷入。
说明
https://gist.github.com/gregor160300/068c06c0314c19855e999473708c7635
https://gist.github.com/varhub/7b9555cdd1e5ad785ffde2300fcfd0bd
/default.prop 每次开机自动从boot.img还原
ro.secure=0 允许Root身份的调试
security.perf_harden=1 可能需要同时修改才能Root身份调试
ro.allow.mock.location=1 允许模拟位置信息
ro.debuggable=1 允许全局调试,Root成功值为1
persist.sys.usb.config=adb 默认开启USB调试
ro.adb.secure=0 默认USB调试时不弹授权对话框
/system/build.prop 每次开机保持不变
/data/property/persistent_properties
persist.sys.usb.config=adb
/data/misc/adb/adb_keys USB调试授权文件,可以使用adb传入
setprop getprop watchprops
/system/build.prop会覆盖/default.prop中相同项的值。
命令修改默认配置。ro开头只读,其它加presist前缀可以保存修改。
adb shell adb进入命令行模式
su 切换至超级用户
magisk resetprop ro.adb.secure=0 设置ro.adb.secure
stop;start; 一定要通过该方式重启
https://github.com/liwugang/android_properties
https://github.com/wpvsyou/mprop
小米
setprop presist.fastboot.enable 1 USB调试(安全设置)
setprop presist.fastboot.enable 1 FASTBOOT刷机模式
setprop presist.security.adbinput 1 USB安装
绕过USB安装时的弹框
/data/data/com.miui.securitycenter/shared_prefs/remote_provider_preferences.xml
修改或者插入<boolean name=“permcenter_install_intercept_enabled” value=“false” /<(输入原因,括号反向)
通用调试驱动 #
Android系统的USB调试模式的驱动通用,然而Android sdk\extras\google\usb_driver目录下的Android驱动又提示无法安装,这是因为android_winusb.inf这个文件中没有你的设备的供应商识别码(VID)和产品识别码(PID),只要添加就可以为你的设备安装驱动。
添加方法:
- 查看你的设备的ID号:
设备管理器->右键单击[有问号的设备]->属性->详细信息->“属性”下拉列表框选择:硬件Id
右键单击选复制,拷贝类似USB\VID_18D1&PID_9001&MI_01的字符串 - 记事本打开Android sdk\extras\google\usb_driver\android_winusb.inf 文件,
在 [Google.NTx86] 或 [Google.NTamd64] 下面添加:
[Google.NTx86]
;shoujixinghao
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9001
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9001&MI_01
[Google.NTamd64]
;shoujixinghao
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9001
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9001&MI_01
注意USB_Install后面的内容稍有不同。 - 重新安装驱动,指定搜索驱动目录为你的Android sdk\extras\google\usb_driver,
如果有"无法验证该驱动的发布者"的提示,不管它直接安装。
配置调试环境 #
手机开启USB调试模式,ADB工具目录加入环境变量
命令提示符,输入adb,同一目录下的驱动会自动安装,可以愉快的调试啦。
ADB驱动:https://developer.android.google.cn/studio/run/win-usb?hl=zh-cn
ADB驱动:https://dl.google.com/android/repository/usb_driver_r13-windows.zip
ADB工具:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
ADB命令:https://mazhuang.org/awesome-adb
ADB授权文件路径C:\Users\用户名.android,没有会自动生成。
很多手机品牌官方发布的刷机工具,安装后连接手机会自动安装相应的驱动,比较方便。
大神玩家可以从本地磁盘手动添加android_winusb通用驱动,按照提示操作比较简单。
高通和联发科都有相应的刷机工具,只要手机硬件没有问题,就可以随便刷。
常用命令
adb reboot 手机正常重启
adb reboot recovery 手机重启到recovery卡刷模式
adb reboot bootloader 手机重启到fastboot线刷模式
adb reboot fastboot 手机重启到fastbootd线刷模式
adb reboot edl 手机重启到高通9008刷机模式
adb sideload xxx.zip 手机开启sideload模式接收电脑推送的刷机包
adb shell 进入手机shell
fastboot flash recovery twrp.img 刷入第三方recovery
fastboot reboot recovery 启动recovery
fastboot reboot 手机正常重启
fastboot reboot fastboot 手机重启进入用户空间fastbootd模式
system vendor odm system_ext product
fastboot boot twrp.img 使用电脑上的twrp.img启动recovery
fastboot oem device-info 查看bootloader状态
fastboot oem unlock 解锁bootloader,一般没用
fastboot flash boot_a boot.img V-A/B机型刷入boot到a分区
fastboot flash boot_b boot.img V-A/B机型刷入boot到b分区
fastboot flash boot_ab boot.img V-A/B机型刷到两个分区
fastboot erase system 擦除system分区
fastboot erase boot 擦除boot分区
fastboot erase cache 擦除cache分区
fastboot erase userdata 擦除userdata分区
fastboot erase system -w 擦除以上四个分区
语音助手 #
语音助手,智能手机的标准配置。推荐设置物理快捷键,关键时刻可以使用。
远程控制 #
Scrcpy:
https://github.com/Genymobile/scrcpy
AnyDesk
https://anydesk.com
droidVNC-NG
https://github.com/bk138/droidVNC-NG
安卓受控端权限必须允许的全面,尤其投影媒体。
安卓受控端修改名称为远程控制,方便语音唤醒。
刷入TWRP #
TWRP
https://twrp.me
按照官方说明刷入。如有疑问百度一下。
没有TWRP官方包,百度一下自己的手机型号是否可以刷入,若可以刷入,按照相应教程刷入即可。
payloaddumper payload.bin解包
https://github.com/vm03/payload_dumper
新手小白,可以尝试各种线刷工具,总有一款成功,然后进入恢复模式卡刷TWRP最新版本。
手机在满足自己需求的前提下,推荐购买主流品牌的主流型号,人多力量大嘛。
刷入Magisk #
Magisk,即面具,手机Root工具。
按照官方说明刷入。如有疑问百度一下。
刷机之前务必保留最新版官方ROM,以备还原。
安装前务必确保完全理解Magisk的安装说明。
安装完毕可以进入设置,隐藏Magisk应用,使用自定义包名重新安装,以便隐藏Magisk。
Magisk.apk改成magisk.zip,可以使用TWRP刷入,改成uninstall.zip,可以使用TWRP卸载。
https://github.com/topjohnwu/Magisk
https://magiskcn.com
MagiskDelta
https://github.com/HuskyDG/magisk-files
MagiskOnEmulator
https://github.com/HuskyDG/MagiskOnEmu
KernelSU
https://github.com/tiann/KernelSU
隐藏Root #
通常情况下,金融、游戏等应用会以安全的名义检测手机是否Root,检测到Root则拒绝安装或强制闪退,这时我们就需要悄悄的告诉它们,我们的手机没有Root,以便它们正常运行。
Shamiko 隐藏Root的Magisk模块
https://lsposed.org
https://github.com/LSPosed/LSPosed.github.io/releases
使用Magisk从本地安装,重启生效,进入Magisk设置,取消遵守排除列表。
进入Magisk设置,配置排除列表,排除列表选中需要对其隐藏Root的应用即可。
可以修改工作模式为白名单模式,就不需要配置排除列表了,但兼容性不是很好。
LSPosed 手机Root后安装的框架,可以做很多有意思的事情。
https://github.com/LSPosed/LSPosed
LSPosed模块
https://repo.xposed.info
很多检测Root的应用不按套路出牌,无所不用其极的检测手机是否Root,所以还需要好好的教育一下。
HideMyApplist 隐藏应用列表
https://github.com/Dr-TSNG/Hide-My-Applist
安装后根据提示选择激活,重启生效,默认黑名单模式。
进入设置,模板管理,创建黑名单模板(选择需要隐藏的应用,记得保存),选择生效应用(选择对其隐藏Root的应用,启用隐藏,启用所有隐藏方式,启用模板,记得保存)。
经过上述一番操作,隐藏Root大功告成。
ApplistDetector 应用列表检测
https://github.com/Dr-TSNG/ApplistDetector
安装后直接运行,各项列表全绿即可。
综上所述,现在可以愉快的玩耍了。
修复SafetyNet #
简单来说,如果你的设备没有通过谷歌CTS测试,也就意味它没有进行SafetyNet验证,直接导致的问题就是无法出厂预装GMS;后期,即使用户后期自己手动安装了GMS,但是仍然无法下载一些应用。它们会告诉你,您的设备与此版本不兼容。
这些情况下,你的设备将无法通过SafetyNet验证检查:
你的手机在出厂时并未通过谷歌的CTS验证,你的手机通过了谷歌CTS验证,但是你解除了BootLoader锁,开启了root,刷入了非官方ROM,其他一些情况。
SafetyNet Fix SafetyNet修复
https://github.com/kdrag0n/safetynet-fix
MagiskHidePropsConfig 通过CTS测试,可以修改default.prop默认配置
https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf
谷歌服务 #
套件 开源实现的谷歌服务
https://wiki.lineageos.org/gapps
https://github.com/MindTheGapps
https://sourceforge.net/projects/nikgapps
https://cyanogenmods.org/android-14-gapps
https://github.com/BiTGApps
https://opengapps.org
兼容 开源实现的谷歌API
https://microg.org
https://github.com/nift4/microg_installer_revived
https://github.com/Nanolx/NanoDroid
兼容性可以,安装比套件方便
相机
https://www.xda-developers.com/google-camera-port-hub
账户 科学上网,设备语言English(United States),实事求是
安卓
https://xdaforums.com
应用列表 #
Shizuku
https://github.com/RikkaApps/Shizuku
AppOps
https://github.com/RikkaApps/App-Ops-issue-tracker/releases/tag/files
存储空间隔离
https://rikka.app
XDA
https://www.xda-developers.com
BUSYBOX
https://busybox.net
Termux
https://termux.com
Lindroid
https://github.com/linux-on-droid
RemoteCam
https://github.com/Ruddle/RemoteCam
IP摄像头,网络摄像头,手机变成摄像头
电脑安装 IP Camera Bridge 或 IP Camera Adapter
https://github.com/shenyaocn/IP-Camera-Bridge
电脑可以添加支持ONVIF协议的网络摄像头
SpaceDesk
https://www.spacedesk.net
手机作为电脑的扩展屏幕使用,电脑可以触摸操作
WOMic
https://wolicheng.com/womic
AudioRelay
https://audiorelay.net
手机作为电脑的麦克风和音箱,方便台式机
AuroraStore F-Droid 豌豆荚
X定位保护 LibChecker MiXplorer
科学计算器GraphingCalculatorMath 打印PrinterShare
扫描全能王CamScanner Office WPS ES文件管理器
工作空间island MT管理器 ApktoolM LuckyPatcher
夸克 Edge X浏览器 KiwiBrowser greasyfork.org
MXPlayer VLC FDM 迅雷 度盘 虚拟摄像头
没有做不到,只有想不到
维修手册 #
ADB命令 #
基础
1、adb devices 查看手机设备
2、adb install packsge 安装包
3、adb install -r packages 保留数据及缓存文件安装新包
4、adb uninstall package 卸载包
5、adb kill-server 关闭adb服务
6、adb start-server 启动adb服务
7、adb shell pm list packages 查看手机里面所有包名
8、adb shell pm list packages -3 查看手机里面所有第三方包名
9、adb shell /system/bin/screencap -p /sdcard/xx.png 截频并保存文件在手机上为xx.Png
10、adb pull /sdcard/xx.png D:/xx.png 将手机xx.png文件保存到D盘文件下
11、adb push D:/xx.txt /adcard/xx.txt 将电脑文件导入手机
12、adb shell pm clear com.ablesky.ui.activity 清除缓存数据
13、adb shell am start -n com.ablesky.ui.activity/com.ablesky.activity.SplashActivity 启动程序
14、adb shell am force-stop com.ablesky.simpleness.activity 强制停止运行程序
15、adb logcat 查看日志
16、adb logcat > D:\log.txt 将日志打印到电脑上
17、netstat -aon|findstr “5037” 查看被占用端口对应的PID
18、tasklist /fi “PID eq PID号” 查看端口号对应的进程
19、taskkill /pid 2027 /f 杀掉某进程
20、adb shell monkey -p 包名 100 指定APP产生随机事件100次
21、adb shell monkey -p 包名 -v -v 100 指定APP产生随机事件100次并发送详细的activity信息
进阶
1、获取手机系统信息( CPU,厂商名称等)
adb shell “cat /system/build.prop | grep “product””
2、获取手机系统版本
adb shell getprop ro.build.version.release
3、获取手机系统api版本
adb shell getprop ro.build.version.sdk
4、获取手机设备型号
adb -d shell getprop ro.product.model
5、获取手机厂商名称
adb -d shell getprop ro.product.brand
6、获取手机的序列号
有两种方式
1.adb get-serialno
2.adb shell getprop ro.serialno
7、获取手机的IMEI
有三种方式,由于手机和系统的限制,不一定获取到
1.adb shell dumpsys iphonesubinfo 其中Device ID即为IMEI号
2.adb shell getprop gsm.baseband.imei
3.service call iphonesubinfo 1
此种方式,需要自己处理获取的信息得到
8、获取手机mac地址
adb shell cat /sys/class/net/wlan0/address
9、获取手机内存信息
adb shell cat /proc/meminfo
10、获取手机存储信息
adb shell df
获取手机内部存储信息:
adb shell df /data
获取sdcard存储信息:
adb shell df /storage/sdcard
11、获取手机分辨率
adb shell “dumpsys window | grep mUnrestrictedScreen”
12、获取手机物理密度
adb shell wm density
13、获取手机包名
1.查看指定apk的包名:aapt dump badging +包的全路径
2.查看所有apk包名:adb shell pm list package -f