记开启HDCP功能后无法恢复出厂设置
最近在RK3288 Android4.4.2平台上开启了HDCP功能后,如果不烧录Key,在恢复出厂设置(实质就是执行reboot recovery命令)时会出现卡死,无法重启,即未关机就卡死了,后来发现是Kernel里的CONFIG_FW_LOADER_USER_HELPER配置项导致。
工具/原料
RK3288板卡
Android4.4.2系统
方法/步骤
最近在RK3288 Android4.4.2平台上开启了HDCP功能后,如果不烧录Key,在恢复出厂设置(实质就是执行reboot recovery命令)时会出现卡死,无法重启,即未关机就卡死了。
后来发现是Kernel里的CONFIG_FW_LOADER_USER_HELPER配置项导致,将该选项默认关闭就可以解决该问题。
但会影响到system/displayd/Hdcp.cpp这个文件里的操作,目前测试不影响,也不清楚该服务有何作用。暂时先这样处理了。
卡死时的串口信息如下:
[ 288.874429] SysRq : Emergency Remount R/O
[ 288.880282] EXT4-fs (mmcblk0p8): re-mounted. Opts: (null)
[ 288.880790] EXT4-fs (mmcblk0p11): re-mounted. Opts: (null)
[ 288.904231] EXT4-fs (mmcblk0p12): re-mounted. Opts: (null)
[ 288.911990] Emergency Remount complete
[ 288.978715] cpufreq: reboot set core rate=1200000000, volt=1112500
[ 289.477580] EXT4-fs (mmcblk0p12): ext4_da_writepages: jbd2_start: 8192 pages, ino 489; err -30
[ 289.486096] EXT4-fs (mmcblk0p12): ext4_da_writepages: jbd2_start: 8192 pages, ino 489; err -30
[ 291.456866] EXT4-fs (mmcblk0p12): ext4_da_writepages: jbd2_start: 2048 pages, ino 489; err -30
……
[ 370.412868] SysRq : Show Blocked State
[ 370.416566] task PC stack pid father
[ 370.421698] init D c0784b5c 0 1 0 0x00000000
[ 370.427978] [] (__schedule+0x48c/0x554) from [] (__down_write_nested+0x78/0xc0)
[ 370.436871] [] (__down_write_nested+0x78/0xc0) from [] (__usermodehelper_disable+0x24/0x104)
[ 370.446872] [] (__usermodehelper_disable+0x24/0x104) from [] (kernel_restart_prepare+0x28/0x38)
[ 370.457128] [] (kernel_restart_prepare+0x28/0x38) from [] (kernel_restart+0xc/0x50)
[ 370.466359] [] (kernel_restart+0xc/0x50) from [] (SyS_reboot+0x150/0x1b0)
[ 370.474740] [] (SyS_reboot+0x150/0x1b0) from [] (ret_fast_syscall+0x0/0x30)
[ 370.483293] kworker/0:1 D c0784b5c 0 30 2 0x00000000
[ 370.489560] Workqueue: events request_firmware_work_func
好的,就CONFIG_FW_LOADER_USER_HELPER这配置影响到了,关了吧。