安卓系统和ADB以及AT调试端口

Android是谷歌基于Linux内核开发的移动端操作系统,广泛应用于当前的智能手机,智能手机在硬件上实质是嵌入式系统,因为蜂窝通信涉及比较复杂的基带处理,所以除了主控芯片之外最为重要的控制核心就是基带芯片,ADBAndroid Debug Bridge的缩写,是安卓系统通过USB接口提供的调试端口,其驱动称为ADB驱动,安装ADB驱动后在系统设置中的开发者选项里勾选USB Debugging,控制本就可以通过驱动模拟出该调试端口。

安卓系统和ADB以及AT调试端口_第1张图片

AT端口则是基带模块为外部控制命令预留的接收端口,一般还会预留基带处理log的输出端口,AT输入以及log输出端口既可以由主控芯片即运行其上的系统访问也可以通过USB接口模拟进行外部输入输出,安装手机设备驱动后一般还需要进入工厂模式打开相应的端口开关,工厂模式进入方法以及端口开关不同厂商均有差异,如Oneplus手机需要在号码盘键入*#801#即可进入工厂模式。

P.S. *#*#4636#*#*用于查看小区信息

安卓系统和ADB以及AT调试端口_第2张图片

打开相应的端口开关控制本就可以通过驱动模拟出对应的AT端口和串口,配置对应的波特率即可使用串口通信协议进行消息交互。

安卓系统和ADB以及AT调试端口_第3张图片

因为智能手机的嵌入式系统本质,因此软件层面上也符合计算机系统的基本原理,上电启动后会先引导BootLoader,默认BootLoader会直接加载系统分区里的内核,也可以选择引导recovery镜像进入恢复模式,一般各智能手机厂商会通过电源键和上下音量键的不同组合来激发手机上电后进入的模式,更一般的可以通过adb命令进行控制。

ADB Driver Installer + Android SDK Platform Tools

ADB Driver Installer: http://adbdriver.com/
Android SDK Platform Tools:https://developer.android.google.cn/studio/releases/platform-tools

通过USB连接手机和控制本,安装ADB驱动后打开USB调试选项。

安卓系统和ADB以及AT调试端口_第4张图片

打开终端界面进入到SDK平台工具目录下,目前常用的就是adbfastboot工具,adb用于systemrecovery级别的调试,fastboot用于BootLoader级别的调试。

fastboot devices
fastboot oem unlock 

fastboot flash system system.img
fastboot flash persist persist.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img
fastboot flash boot boot.img
fastboot flash recovery recovery.img

fastboot boot twrp-3.2.1-0-enchilada.img
fastboot reboot
adb devices
adb -s  xx
adb reboot 
adb reboot bootloader 
adb reboot recovery
adb install -r apk_dir
adb pull /sdcard/screen.png hello.png
adb push iperf /sdcard/

adb shell settings put global airplane_mode_on 1
adb shell settings put global airplane_mode_on 0
adb shell settings get global airplane_mode_on
adb shell input keyevent 26
adb shell input keyevent 67
adb shell input tap 1000 550
adb shell input swipe 540 1900 540 1000
adb shell am start com.magicandroidapps.iperf/com.magicandroidapps.iperf.iperf
adb shell input text "iperf -u -c 10.163.200.98 -l 1370 -t 4900 -i 1 -p 9001 -b 200M"
adb shell am force-stop com.magicandroidapps.iperf
adb shell screencap -p /sdcard/screen.png
adb shell dumpsys window displays

实例:OnePlus Root + Iperf移植

1. OEM Unlock

进入手机设置界面在开发者选项中勾选OEM Unlocking,注意Oneplus手机的Developer Options需要在About Phone里连续敲击Build number才能激活显示,然后敲入adb reboot bootloader进入BootLoader模式,在该模式下使用fastboot敲入fastboot oem unlock进行BootLoaderunlock,这样就才可以进行接下来镜像的烧写操作,Unlock之后系统会重置,因此需要在系统中重新激活开发者选项以及打开USB调试。

2. TWRP Recovery Flash

TWRP: https://twrp.me/Devices/

下载TWRP对应手机型号的镜像,然后重新进入BootLoader模式,1+5手机使用命令fastboot flash recovery twrp-3.2.2-0-20180721-codeworkx-cheeseburger直接烧写Recovery镜像,然后在BootLoader界面内选择进入Recovery mode即可启动TWRP1+6手机不在使用单独的Recovery分区,因此使用命令fastboot boot twrp-3.2.3-0-enchilada.img直接引导进入TWRP

安卓系统和ADB以及AT调试端口_第5张图片

3. Push Magisk & Iperf

Magisk:https://forum.xda-developers.com/apps/magisk
Iperf C++ Source:https://iperf.fr/iperf-download.php

Magisk用于Android系统提权root,下载最新版本的zip包于本地,Iperf工具用于网络灌包排查速率问题,目前Android平台下只有APK没有命令行版本,因此需要使用源码进行平台移植编译,具体流程在此不在涉及。在Recovery模式下使用adb命令将MagiskIperf传送至sdcard内。

adb shell mkdir /sdcard/root
adb push Magisk-v16.7.zip /sdcard/root
adb push iperf /sdcard/root
adb shell ls -al /sdcard/root

4. TWRP Install Magisk

TWRP界面上使用Install安装Magisk镜像,完成后reboot进入系统后可以看到Magisk APP已经安装,使用adb shell进入命令行,敲击命令su进行提权在手机界面弹出的Magisk Shell Granted窗口点击Forever即成功,在命令行使用id命令可以看到当前的用户已经变成了root

安卓系统和ADB以及AT调试端口_第6张图片

5. system, root re-mount

因为系统中的分区默认都是只读挂载因此为了将iperf移植到/system/bin目录下并赋予可执行权限就必须进行分区的可读重挂载。

cat /proc/mounts | grep system
cat /proc/mounts | grep root

mount | grep root
mount | grep system

mount -o remount,rw rootfs /
mount -o remount,rw /dev/block/platform/soc/1da4000.ufshc/by-name/system /system
mount -o remount,rw /dev/block/sde21 /system

cp /sdcard/root/iperf /system/bin/
chmod 755 /system/bin/iperf

实例:AT口调试

安装有设备驱动的控制本上会模拟出AT端口,可以看到端口号以及波特率,通过这些信息就可以通过串口工具进行连接。

安卓系统和ADB以及AT调试端口_第7张图片

在窗口中敲入AT回车显示OK即表示交互正常,不同厂商AT命令有差异。

安卓系统和ADB以及AT调试端口_第8张图片

你可能感兴趣的:(Tool)