Android常用命令

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下

`sudo chmod 777 /sys/class/drm/card0-HDMI-A-1/status` 和 `echo off > /sys/class/drm/card0-HDMI-A-1/status` 这两条命令涉及到Linux系统中的文件权限设置和shell命令执行。 首先,`chmod 777` 命令用于改变指定文件的权限,使之成为对所有用户开放读、写和执行权限的状态。这里,`sudo` 前缀表示以超级用户(root)的权限执行该命令,这是因为普通用户可能没有权限修改 `/sys/class/drm/card0-HDMI-A-1/status` 文件的权限。 其次,`echo off > /sys/class/drm/card0-HDMI-A-1/status` 命令通过重定向操作符 `>` 将字符串 "off" 写入 `/sys/class/drm/card0-HDMI-A-1/status` 文件。这通常用于向内核模块或系统设备文件发送命令或配置信息。 要创建一个系统服务(通常指的是systemd服务),以便在桌面环境启动时执行这些命令,可以按照以下步骤进行: 1. 创建一个新的systemd服务文件,例如 `/etc/systemd/system/desktop-startup.service`。 2. 在该文件中定义服务的配置,包括需要执行的命令。 3. 重新加载systemd管理器配置,以便识别新服务。 4. 启用服务,使其在每次启动时自动运行。 5. 启动服务。 一个简单的服务文件例子如下: ```ini [Unit] Description=Run commands on desktop startup After=graphical.target [Service] Type=oneshot ExecStart=/bin/bash -c 'echo "Setting permissions" && sudo chmod 777 /sys/class/drm/card0-HDMI-A-1/status; echo "Sending off command" && echo off > /sys/class/drm/card0-HDMI-A-1/status' [Install] WantedBy=multi-user.target ``` 请注意,根据具体的系统配置和安全策略,直接以root权限运行脚本可能会有风险。通常不建议将文件权限设置为777,因为这可能会带来安全问题。确保你了解这些命令的含义和潜在影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值