setprop ctl.start lcdparamservice
setprop ctl.stop lcdparamservice
getprop |grep cam.hal3.ver
adb shell pkill camera && adb shell pkilll provider
adb logcat|grep "E RkCamera"
adb shell setprop persist.vendor.camera.hal.debug 5
wm density //查看屏幕密度
wm density 240 //设置屏幕密度
wm size //查看屏幕分辨率
wm size 1920x1080 //设置屏幕分辨率
wm size reset
wm density reset
获取系统所有支持的features
adb shell pm list features
查询系统所有package
pm list packages
禁用(diable)或启用(enable)package
pm enable com.android.provision
settings list NAMESPACE(system,secure,global)
getevent
power按键
adb shell input keyevent 26
home按键
adb shell input keyevent 3
返回键
input keyevent 4
public static final int KEYCODE_HOME = 3;
public static final int KEYCODE_BACK = 4;
public static final int KEYCODE_CALL = 5;
public static final int KEYCODE_VOLUME_UP = 24;
public static final int KEYCODE_VOLUME_DOWN = 25;
public static final int KEYCODE_POWER = 26;
public static final int KEYCODE_CAMERA = 27;
public static final int KEYCODE_MENU = 82;
public static final int KEYCODE_APP_SWITCH = 187;
getevent /dev/input/eventX
输出格式 type code value
0001 0073 00000001 //按下
0000 0000 00000000 //SYNC
0001 0073 00000000 //抬起
0000 0000 00000000 //SYNC
sendevent /dev/input/eventX type code value
查看上次anr信息
adb shell dumpsys activity lastanr
查看上次anr traces信息
adb shell dumpsys activity lastanr-traces
抓取native进程traces
adb shell debuggerd -b pid
放开权限校验
adb shell setenforce 0
恢复权限校验
adb shell setenforce 1
编译该模块
make selinux_policy -j4
查看apk签名指纹信息
解压apk后获得META-INF/CERT.RSA文件
在linux环境下使用keytool工具查看apk的签名指纹信息
keytool -printcert -file test/CERT.RSA
或者通过签名证书文件获取
keytool -list -v -keystore $keystore_file [-storepass password]
1第一步生成私密文件platform.pem
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
2第二步生成p12密钥文件
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:123456 -name platform
3第三步生成platform.jks
keytool -importkeystore -deststorepass 123456 -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass 123456
2、把pkcs8格式的私钥转化成pkcs12格式:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
3、把x509.pem公钥转换成pkcs12格式:
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey 密码都是:123456
4、生成platform.keystore
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore platform.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass 123456 -alias androiddebugkey
dos2unix
$adb shell dmesg | grep avc > avc_log.txt
$audit2allow -i avc_log.txt -p out/target/product/xxxvendor/etc/selinux/precompiled_sepolicy
WITH_DEXPREOPT := false
ps -T -p pid
getconf LONG_BIT
cat /proc/4044/maps #查看4044进程的内存映射表
adb shell dumpsys meminfo packagename
查看gpio
cat /sys/kernel/debug/gpio
echo index > /sys/class/gpio/export
查看pin的复用
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
cat /d/dri/0/summary 或者cat /sys/kernel/debug/dri/0/summary
动态查看drm log
debug:Enable debug output, where each bit enables a debug category.
Bit 0 (0x01) will enable CORE messages (drm core code)
Bit 1 (0x02) will enable DRIVER messages (drm controller code)
Bit 2 (0x04) will enable KMS messages (modesetting code)
Bit 3 (0x08) will enable PRIME messages (prime code)
Bit 4 (0x10) will enable ATOMIC messages (atomic code)
Bit 5 (0x20) will enable VBL messages (vblank code) (int)
示例:
echo 0x0c > /sys/module/drm/parameters/debug 打开了 KMS, PRIME 这些的打印, kernel
驱动中使用 DRM_DEBUG_KMS 和 DRM_DEBUG_PRIME 打印的信息都可以打印出来。
cat /sys/kernel/debug/clk/clk_summary
enable prepare protect duty
clock count count count rate accuracy phase cycle
---------------------------------------------------------------------------------------------
有时候需要知道 VOP dclk 和 aclk 的值, 以及 pll 源, 可以通过下面的命令获取:
cat /sys/kernel/debug/clk/clk_summary
如果只要关注 vop 的时钟, 可以使用:
cat /sys/kernel/debug/clk/clk_summary | grep vop
强行开关显示设备
以 LVDS 为例:
关 LVDS: echo off > /sys/class/drm/card0-LVDS-1/status
开 LVDS: echo on > /sys/class/drm/card0-LVDS-1/status
查看 drm buffer 使用情况
cat /sys/kernel/debug/dri/0/mm_dump, 可以知道当前 drm 这边 buffer 的使用情况。
查看 EDID 信息
以 HDMI 为例: cat /sys/class/drm/card0-HDMI-A-1/edid > /data/edid.bin
查看 HDMI 的状态信息
cat /sys/kernel/debug/dw-hdmi/status
确认两个logo文件是否一样大小
file logo.bmp logo_kernel.bmp
Dump 当前显示的 buffer
(1) dump 一帧当前显示的 buffer:
echo dump > /sys/kernel/debug/dri/0/ff900000.vop/vop_dump/dump
(2) 连续 dump n 帧显示的 buffer
echo dumpn > /sys/kernel/debug/dri/0/ff900000.vop/vop_dump/dump
(3) dump 出来的文件保存在/data/vop_buf/, 可以使用 7yuv 软件查看。
查看CPU频率
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
或 cat /sys/kernel/debug/clk/clk_summary | grep arm
# 查看CPU可用频率
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
# 设置 CPU 频率,例如,设置 1.7GHz
echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo 1704000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed
查看DDR频率
cat /sys/class/devfreq/dmc/cur_freq
或
cat /sys/kernel/debug/clk/clk_summary | grep ddr
# 查看 DDR 可用频率
cat /sys/class/devfreq/dmc/available_frequencies
# 设置 DDR 频率,例如,设置 1560MHz
echo userspace > /sys/class/devfreq/dmc/governor
echo 1560000000 > /sys/class/devfreq/dmc/userspace/set_freq
cat /sys/kernel/debug/dri/0/mm_dump, 可以知道当前 drm 这边 buffer 的使用情况。
camera调试使用的media-ctl和v4l2-ctl 在代码目录的hardware/rockchip/camera/etc/tools下