【嵌入式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

相关推荐
顾北川_野1 分钟前
Android 手机设备的OEM-unlock解锁 和 adb push文件
android·java
hairenjing11233 分钟前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
小黄人软件28 分钟前
android浏览器源码 可输入地址或关键词搜索 android studio 2024 可开发可改地址
android·ide·android studio
dj15402252031 小时前
group_concat配置影响程序出bug
android·bug
周全全1 小时前
MySQL报错解决:The user specified as a definer (‘root‘@‘%‘) does not exist
android·数据库·mysql
- 羊羊不超越 -2 小时前
App渠道来源追踪方案全面分析(iOS/Android/鸿蒙)
android·ios·harmonyos
wk灬丨2 小时前
Android Kotlin Flow 冷流 热流
android·kotlin·flow
千雅爸爸3 小时前
Android MVVM demo(使用DataBinding,LiveData,Fresco,RecyclerView,Room,ViewModel 完成)
android
晨曦_子画3 小时前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin