Android 7.1 SElinux权限问题解决方案——编写APP,通过暗码读取TP fw版本

本文详细介绍了如何解决Android 7.1中由于SElinux权限限制,导致APP无法读取TP固件版本的问题。通过在底层创建节点并赋予权限、顶层添加暗码和调用函数,以及探讨两种权限解决方案:将APP变为系统应用或直接修改SElinux策略,最终成功读取TP固件版本。
摘要由CSDN通过智能技术生成

1.在底层,创建节点并给予访问节点的权限
2.在顶层添加暗码和调用的函数
3.编写app ReadHwid
4.编写app完后,发现通过电话拨号键 暗码*#850208# 显示:TP SW Version hello world!
5.权限解决方案
附加知识点

1、在底层,创建节点并给予访问节点的权限

kernel/msm-3.18/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c

	__ATTR(buildid, (S_IRUGO | S_IWUSR | S_IWGRP),
			synaptics_rmi4_f01_buildid_show,
			synaptics_rmi4_store_error),
static ssize_t synaptics_rmi4_f01_buildid_show(struct device *dev,struct device_attribute *attr, char *buf)
{
	struct synaptics_rmi4_data *rmi4_data = dev_get_drvdata(dev);
	return snprintf(buf, PAGE_SIZE, "firmware_id:%u\n",
			rmi4_data->firmware_id);
}
static inline ssize_t synaptics_rmi4_store_error(struct device *dev,struct device_attribute *attr, const char *buf, size_t count)
{
	dev_warn(dev, "%s Attempted to write to read-only attribute %s\n",
			__func__, attr->attr.name);
	return -EPERM;
}

解析:buildid // 为节点名
S_IRUGO | S_IWUSR | S_IWGRP //用户可读|用户可写|小组用户可读可写权限
synaptics_rmi4_f01_buildid_show //显示函数,cat该文件时,此函数被调用
synaptics_rmi4_store_error //写函数,echo内容到该文件时,此函数被调用

通过adb可以查看到节点和TP FW的版本号:
在这里插入图片描述

2、在顶层添加暗码和调用的函数 /Halo/packages/apps/Dialer/src/com/android/dialer/SpecialCharSequenceMgr.java

@@ -81,6 +81,7 @@public class SpecialCharSequenceMgr {
     private static final String PRL_VERSION_DISPLAY = "*#0000#";
 
     private static final int IMEI_14_DIGIT = 14;
+    private static final String HWVESION = "*#850208#";
@@ -159,7 +160,8 @@ public class SpecialCharSequenceMgr {
                 || handleQSensorTest(context,dialString)
                 || handleEngineerTest(context, dialString)
                 || handleDeadCode(context, dialS
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值