修改文件:/device/mediatek/mt6580/init.mt6580.rc
chown system system /sys/class/leds/red/trigger
chown system system /sys/class/leds/green/trigger
chown system system /sys/class/leds/blue/trigger
+
+ chown system system sys/devices/platform/device_info/KEY_LCD
+ chmod 0666 sys/devices/platform/device_info/KEY_LCD
修改文件:/device/mediatek/sepolicy/basic/non_plat/system_server.te
allow system_server device:chr_file { write read open getattr };
+
+allow system_server sysfs:file rw_file_perms;
+allow system_server xc_device_info:file rw_file_perms;
修改文件:/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
private static final int MSG_BBL_TIMEOUT = 27;
+ private static final int STOP_KEYBOARDLIGHT = 42;
+ private final static String KEYBOARD_LIGHT_FILE_PATH="/sys/devices/platform/device_info/KEY_LCD";
+
+
private class PolicyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
@@ -810,6 +816,13 @@
setButtonLightEnabled(false);
break;
+
+
+ case STOP_KEYBOARDLIGHT:
+ write(KEYBOARD_LIGHT_FILE_PATH, 0);
+ break;
+
}
}
}
@@ -3808,6 +3821,21 @@
final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;
final boolean canceled = event.isCanceled();
final int keyCode = event.getKeyCode();
+
+ if (isScreenOn()){
+ write(KEYBOARD_LIGHT_FILE_PATH, 1);
+ if(mHandler!=null){
+ mHandler.removeMessages(STOP_KEYBOARDLIGHT);
+ mHandler.sendEmptyMessageDelayed(STOP_KEYBOARDLIGHT, 2000);//修改点
+
+ }
+ }
+
修改文件:/basic/non_plat/file_contexts
/sys/devices/platform/device_info/CHARGER_ENABLE u:object_r:xc_sysfs:s0
+/sys/devices/platform/device_info/KEY_LCD u:object_r:xc_device_info:s0