泛泰A910的led呼吸灯用了非标准代码,逼格甚高。
但也造成了标准的呼吸灯hal代码不可用,对于第三方适配者就苦逼了。
本文介绍泛泰A910的呼吸灯hal适配调试过程,最终目标是找到正确的LED调用方式。
hal代码在hardware/qcom/display/liblight,如何实现调用代码,这里就不提供了,请读者自行实现。
当然不局限于msm-aosp,其它第三方rom也是一样。
仅供参考思路和方法,其它机型不可照搬。
一、LED class路径
刷官方rom,安装root权限管理
连接数据线
开cmd,adb shell,su
cd /sys/class/leds
ls
lcd-backlight
led:flash_0
led:flash_1
led:flash_torch
led:rgb_blue
led:rgb_green
led:rgb_red
mmc0::
mmc1::
pan_tm_led
torch-light
其中lcd-backlight为液晶屏背光、pan_tm_led为按键灯
接下来可以用命令测试一下(从灭到暗到亮的赋值范围:0~255)
液晶屏背光亮度调至250:
echo 250 > /sys/class/leds/lcd-backlight/brightness
按键灯亮:
echo 255 > /sys/class/leds/lcd-backlight/brightness
剩下的看名称就能猜出是红绿蓝三色led呼吸灯
led:rgb_blue
led:rgb_green
led:rgb_red
但实际上,用常规的控制命令是无法让各色灯亮的
二、从官方lib从获取信息
用ultraedit打开官方的lights.msm8974.so
以ASCII方式搜索BUTTON_FILE
可以找到这如下个字符串
再搜索pan_tm_led,可以找到如下路径
总结一下:
BUTTON_FILE=/sys/class/leds/pan_tm_led/brightness
LCD_FILE=<