我为我的一个I2C设备创建了内核驱动程序作为可加载模块.驱动程序(/sys/devices/i2c/i2c-0/0-0008/)通过new_device文件实例化在I2C对应文件夹下创建少量sysfs 文件(/sys/devices/i2c/i2c-0/new_device).
Lollipop强制执行SELinux所以我需要为需要访问设备的sysfs文件的应用程序创建规则.主要是系统应用程序(它们属于Android SELinux中platform_app的定义).问题是不允许任何应用程序域中的应用程序写入sysfs文件:
neverallow { appdomain -bluetooth -nfc }
sysfs:dir_file_class_set write;
Run Code Online (Sandbox Code Playgroud)
所以我决定专门为我的设备创建文件上下文:
file_context:
/sys/devices/i2c-0/0-0008(/.*)? u:object_r:sysfs_mydeviceic:s0
Run Code Online (Sandbox Code Playgroud)
结果很有趣:默认驱动程序文件和文件夹(如name和uevent等)获取正确的上下文,但不是由I2C驱动程序的sysfs部分创建的文件:
root@android:/sys/devices/i2c-0/0-0008 # ls -Z
--w--w--w- root root u:object_r:sysfs:s0 data
lrwxrwxrwx root root u:object_r:sysfs_mydeviceic:s0 driver -> ../../../bus/i2c/drivers/mydevice
-rw-rw-rw- root root u:object_r:sysfs:s0 locked
-r--r--r-- root root u:object_r:sysfs_mydeviceic:s0 modalias
-r--r--r-- root root u:object_r:sysfs_mydeviceic:s0 name
drwxr-xr-x root root u:object_r:sysfs_mydeviceic:s0 power
-rw-rw-rw- root root u:object_r:sysfs:s0 protection
-rw-rw-rw- root root u:object_r:sysfs:s0 state
lrwxrwxrwx root root u:object_r:sysfs_mydeviceic:s0 subsystem -> ../../../bus/i2c
-rw-r--r-- root root u:object_r:sysfs_mydeviceic:s0 uevent
Run Code Online (Sandbox Code Playgroud)
我正在寻求帮助如何解决这个问题:如果我仍然希望将sysfs上下文转换为sysfs_mydeviceic以获取其余文件,那么如何做到这一点?或者是否有其他方法可以让应用程序写入sysfs文件?
任何人都可以告诉我validateProperties()和之间的区别是invalidateProperties()什么?
有没有办法将DD-MON-YY(例如:13-JAN-15)格式日期存储到变量中
我知道
datevar=$(date '+%d-%m-%y')
echo $datevar
Run Code Online (Sandbox Code Playgroud)
会显示 13-01-15
有没有办法显示 13-JAN-15
我试图使用$ _POST方法从HTML表单获取用户名和密码,但我得到一个未定义的索引错误与给定的输入.
我的索引文件的表单部分如下
<form class="form-signin" role="form"action="" method="post">
<h2 class="form-signin-heading">title<em class='current'>title</em></h2>
<input id="username" type="username" class="form-control" placeholder="Username" required autofocus>
<input id="password" type="password" class="form-control" placeholder="Password" required>
<input name ="submit" type="submit" value="sign in">
</form>
Run Code Online (Sandbox Code Playgroud)
我也有我的PHP脚本(称为auth.php)包含在我的索引文件的顶部.
这是我的auth.php脚本代码示例
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
echo "auth is called";
if(isset($_POST['submit'])){
echo "submit is pressed";
//this if statement enters when submit is pressed
if(empty($_POST['username']) || empty($_POST['password'])) {
echo "Username or Password is empty";
//this if statement enters too, even with input given
}
else{
echo "YAY";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
即使我在输入字段中输入用户名和密码,"用户名或密码为空"语句也会继续打印.问题是什么