【嵌入式Android各种调试命令】

控制台下

写mac跟sn

java 复制代码
#写mac
su
echo 1 > /sys/class/unifykeys/attach
echo mac > /sys/class/unifykeys/name
echo 00:22:6D:C6:9A:57 > /sys/class/unifykeys/write
cat /sys/class/unifykeys/read
 
#写sn
su
echo 1 > /sys/class/unifykeys/attach
echo usid > /sys/class/unifykeys/name
echo 2023011038 > /sys/class/unifykeys/write
cat /sys/class/unifykeys/read

pm系列

pm工具为包管理(package manager)的简称,可以使用pm工具来执行应用的安装和查询应用包的信息、系统权限、控制应用。pm工具是Android开发与测试过程中必不可少的工具。通常放置在System/bin下。

java 复制代码
# 列出所有已安装应用程序的包名信息
pm list packages

# 查询所有系统应用的包名
pm list packages -s

# 查询所有第三方应用的包名
pm list packages -3

# 获取指定应用程序包(PACKAGE)的详细信息,包括包名、版本号、权限等
pm dump PACKAGE

# 启用指定包名的应用程序
pm enable PACKAGE_NAME

# 禁用指定包名的应用程序
pm disable PACKAGE_NAME

# 授权给指定包名的应用程序指定权限
pm grant PACKAGE_NAME PERMISSION

# 撤销指定包名的应用程序指定权限
pm revoke PACKAGE_NAME PERMISSION

# 清除指定包名应用程序的数据及缓存
pm clear PACKAGE_NAME

# 强制停止指定包名的应用程序
am force-stop PACKAGE_NAME

am系列

java 复制代码
# 通过命令启动APK
am start -n APK包名/启动类名   

截屏录屏

java 复制代码
# 截屏
/system/bin/screencap -p /sdcard/screencap.png 

# 录屏10秒钟
screenrecord --time-limit 10 /sdcard/BlackScreen.mp4  

抓取log

java 复制代码
# 清除当前日志缓冲区的内容
logcat -c

# 捕获设备上的日志,使用 "threadtime" 格式显示,并将日志输出到 "/data/123.log" 文件
logcat -c && logcat -v threadtime > /data/123.log

# 捕获设备上的日志,使用 "time" 格式显示,并将日志输出到 "/data/123.log" 文件
logcat -c && logcat -v time > /data/123.log

# 使用adb pull命令将设备上的 "/data/123.log" 文件拉到本地目标路径
adb pull /data/123.log /本地目标路径/

控制gpio口

java 复制代码
# 创建 GPIO 控制口,将 GPIO 编号 488 导出到/sys/class/gpio/ 目录下
echo 488 > /sys/class/gpio/export

# 查看 GPIO 控制口的方向,输入还是输出
cat /sys/class/gpio/gpio488/direction

# 设置 GPIO 控制口的方向为输出
echo out > /sys/class/gpio/gpio488/direction

# 设置 GPIO 控制口的值为高电平(1),将 GPIO 置为高电平状态
echo 1 > /sys/class/gpio/gpio488/value

# 设置 GPIO 控制口的值为低电平(0),将 GPIO 置为低电平状态
echo 0 > /sys/class/gpio/gpio488/value

# 取消 GPIO 的导出,释放 GPIO 控制口
echo 488 > /sys/class/gpio/unexport

获取系统属性

java 复制代码
# 获取系统的属性
getprop
e.g :getprop persist.sys.timezone

# 设置系统的属性
setprop
e.g :setprop persist.sys.timezone Asia/Tokyo

uboot下

设置kernel log级别

java 复制代码
# 设置环境变量 loglevel 的值为 7
s4_ap222# env set loglevel 7

# 将当前环境变量保存到存储设备中
s4_ap222# env save

# 重新启动设备,应用新的环境变量设置
s4_ap222# reboot

控制gpio口

java 复制代码
# 查看所有 GPIO 口的状态
gpio status -a

# 拉高指定 GPIOX_8 口的电平
gpio set GPIOX_8

# 拉低指定 GPIOX_8 口的电平
gpio clear GPIOX_8

不过这个操作方式在reboot之后就失去作用了

SDK下

查看apk的包名和权限

java 复制代码
./sdk_name/prebuilts/sdk/tools/linux/bin/aapt dump badging /apk_path/apkName
#需要修改sdk_name\apk_path\apkName为自己对应的信息
example: ./prebuilts/sdk/tools/linux/bin/aapt dump badging ./xxx.apk

删除out下面的.dtb文件(修改dtsi文件时需要)

java 复制代码
#查找out目录下的所有dtb文件并执行删除
find out/ -name *.dtb | xargs rm -rf

查看一个apk的详细信息

java 复制代码
# 查看 APK 文件的基本信息,包括包名、版本等
aapt dump badging xxx.apk

# 使用 grep 过滤出 APK 文件的包名信息
aapt dump badging xxx.apk | grep package

# 使用 grep 过滤出 APK 文件的权限信息
aapt dump badging xxx.apk | grep permission

# 使用 grep 过滤出 APK 文件的活动(Activity)信息
aapt dump badging xxx.apk | grep activity

这个命令可以查看到apk的包名,版本信息,启动活动,SDK版本,权限信息,目标设备等

也可以在【consol】下使用

java 复制代码
dumpsys package 包名

这个命令不仅会显示apk的基本信息还会显示UID,进程信息等,比较多,建议使用的时候结合grep

相关推荐
Crossoads1 小时前
【汇编语言】端口 —— 「从端口到时间:一文了解CMOS RAM与汇编指令的交汇」
android·java·汇编·深度学习·网络协议·机器学习·汇编语言
li_liuliu2 小时前
Android4.4 在系统中添加自己的System Service
android
C4rpeDime4 小时前
自建MD5解密平台-续
android
鲤籽鲲6 小时前
C# Random 随机数 全面解析
android·java·c#
m0_548514779 小时前
2024.12.10——攻防世界Web_php_include
android·前端·php
凤邪摩羯10 小时前
Android-性能优化-03-启动优化-启动耗时
android
凤邪摩羯10 小时前
Android-性能优化-02-内存优化-LeakCanary原理解析
android
喀什酱豆腐10 小时前
Handle
android
m0_7482329212 小时前
Android Https和WebView
android·网络协议·https
m0_7482517212 小时前
Android webview 打开本地H5项目(Cocos游戏以及Unity游戏)
android·游戏·unity