安卓系统是基于linux的,所以也可以使用linux的shell脚本,所以用shell脚本的方法对键盘灯进行了强行的关闭。
原理:
通过查了一些资料得知安卓的键盘灯是由/sys/class/leds/button-backlight/brightness这个文件中的参数进行控制的,brightness这个文件中的值会动态随系统修改为0 or 255,也就是关和开,也就是说我们强制把这个文件内容修改并保持到0就可以一直关闭了,知道这些就好办了。
首先写了一个这样的sh文件(相当于windows下的bat批处理文件)
#!/system/bin/sh
#修改文件内容为0
echo 0 > /sys/class/leds/button-backlight/brightness
#取消系统修改brightness文件的权限
chmod 444 /sys/class/leds/button-backlight/brightness
原文件权限是644修改为444也就是取消了所有者的写入权限
测试运行,键盘灯正常关闭
但是重启系统后键盘等又亮了,再次查看brightness文件,原来权限又被系统改了回来,那么,为了方便起见,我认为应该做成开机自动运行的shell。
官方原版rom里不像cm等的rom有开机自动调用init.d文件夹下的shell的功能,但是安卓系统可以在开机时首先运行/system/etc/目录下的install-recovery.sh文件,原版rom里没有这个文件那么我其实把上面那段代码保存成install-recovery.sh改好权限存放到/system/etc/目录下就可以了,但是为了以后添加别的开机自动运行的脚本(比如加载EXT分区并APP2SD等)方便,还是把关闭键盘灯另存文件比较好,所以我保存为了init.CloseButtonLight.sh,然后新建install-recovery.sh文件内容如下:
#!/system/bin/sh
/system/etc/init.CloseButtonLight.sh&
其实就是运行了etc目录下的init.CloseButtonLight.sh脚本而已,以后有什么别的脚本的话可以在install-recovery.sh后直接继续添加。
将两个文件放入/system/etc/目录后测试成功,键盘灯怎么也不会开了