屏蔽传感器可以在软件上做到,但是第三方传感器还是会如实的根据 Framework
信息将被配置的(并不一定是支持的)传感器列出来, ** 从而造成一种支持该传感器,但传感器工作不正常的假象 ** 。
如何彻底屏蔽传感器,让第三方软件不能根据 Framework
信息列出所有被配置过,但并不支持的传感器呢?
下面以光线和近程传感器为例:
修改前,CPU-Z
检测到传感器存在,但读不到具体状态信息,而实际机器是没有配备传感器的。
修改后,CPU-Z
已经检测不到存在了,目的达到了。
步骤:
1、打开 \alps\device\xxxx\project_name\device.mk
文件,
2、搜索 proximity.xml
,或者 light.xml
,定位到如下脚本:
ifneq ($(strip $(CUSTOM_KERNEL_ALSPS)),)
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml
else
ifneq ($(strip $(CUSTOM_KERNEL_PS)),)
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml
endif
ifneq ($(strip $(CUSTOM_KERNEL_ALS)),)
PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml
endif
endif
这段脚本看不懂,只知道是个
if-else
,里面有3个宏开关:
CUSTOM_KERNEL_ALSPS
,控制光线,近程;
CUSTOM_KERNEL_PS
,控制近程;
CUSTOM_KERNEL_ALS
,控制光线。
(具体作用可以通过PRODUCT_COPY_FILES
后面的xml
文件看出)
3、这里要同时关闭光线和近程传感器,所以确定宏开关 Key = CUSTOM_KERNEL_ALSPS
,
4、打开 \alps\device\xxxx\project_name\ProjectConfig.mk
文件,
5、搜索上面找到的宏开关,定位如下脚本:
CUSTOM_KERNEL_ALSPS = yes
6、将 yes
修改为 no
。
编译......
(满心欢喜的等待......)
挂了......
python device/mediatek/build/build/tools/check_kernel_config.py -c device/eastaeon/aeon6580_we_m/ProjectConfig.mk -k kernel-3.18/arch/arm/configs/aeon6580_we_m_defconfig -p aeon6580_we_m
Kconfig Setting: y
ProjectConfig Setting: no
*** Boolean ERROR ***: CONFIG_CUSTOM_KERNEL_ALSPS not sync with CUSTOM_KERNEL_ALSPS in ProjectConfig.mk
7、编译报错,好在明确说明了是 CONFIG_CUSTOM_KERNEL_ALSPS
的值与 CUSTOM_KERNEL_ALSPS
的值不同步。
8、全局搜索 CONFIG_CUSTOM_KERNEL_ALSPS
字段,找到并打开文件:
\alps\kernel-3.18\arch\arm\configs\project_name_defconfig
和 \alps\kernel-3.18\arch\arm\configs\project_name_debug_defconfig
。
9、定位到并注释掉上面两个文件里面的 CONFIG_CUSTOM_KERNEL_ALSPS=y
。
10、再次编译验证,OK。
网友评论