标签: seandroid

我的自定义selinux策略似乎被android系统忽略了

我在基于AOSP的Android 7.1.2(更准确地说是基于sony开放设备树)上正确运行自定义selinux策略时遇到一些麻烦.

我的问题是审计日志不断告诉我我实际添加的文件访问规则丢失.我还将audit2allow创建的规则复制到我的策略文件中,但即使那些规则也没有正常工作.

那么,让我们深入了解细节:

我创建了一个名为vendor_app的自定义域.此域根据其签名分配给应用程序.我在mac_permissions.xml中添加了一个条目来分配seinfo字段供应商.在seapp_contexts中,我像这样分配vendor_app域:

user=_app seinfo=vendor domain=vendor_app type=app_data_file levelFrom=user
Run Code Online (Sandbox Code Playgroud)

我的应用程序在vendor_app上下文中正确启动:

# ps -Z | grep permissiontest
u:r:vendor_app:s0:c512,c768    u0_a109   4110  508   1620732 79584 SyS_epoll_ 0000000000 S com.vendor.android.permissiontest
Run Code Online (Sandbox Code Playgroud)

所以,现在对于根本不起作用的部分.在vendor_app上下文中运行的应用程序将获得/ persist/vendor中文件的读/写访问权限.为了创建nessesary规则,我将一个名为vendor.te的文件添加到设备目录中的sepolicy文件夹中,其中包含以下内容:

type vendor_app, domain;
type vendor_file, file_type, data_file_type;
# permissive vendor_app;

app_domain(vendor_app)
net_domain(vendor_app)
bluetooth_domain(vendor_app)

allow vendor_app persist_file:dir r_dir_perms;
allow vendor_app vendor_file:dir create_dir_perms;
allow vendor_app vendor_file:file create_file_perms;

allow vendor_app audioserver_service:service_manager find;
allow vendor_app cameraserver_service:service_manager find; …
Run Code Online (Sandbox Code Playgroud)

android selinux m4 seandroid

8
推荐指数
1
解决办法
2155
查看次数

init 警告:服务 myservice 需要定义一个 SELinux 域。请修复

我想在启动时在 Android 5.1 的目标板上执行一个可执行文件,所以我在 init.rc 中添加了这个:

on boot
    start myservice

service myservice /system/bin/myservice
    #class main
    user root
    group root
    #oneshot   
Run Code Online (Sandbox Code Playgroud)

我做了拆包和重新打包的工作。
但是,当进行更改时,屏幕会继续打印:

 init warning: Service myservice needs a SELinux domain defined. Please fix.
 type=1400 ... avc:denied ... scontext ... tcontext ... #some annoying warning messages like this
Run Code Online (Sandbox Code Playgroud)

SELinux 对我来说似乎是一个巨大的项目。我只是想避免这种情况。我尝试了两种方法:

1. setenv kernelargs 'console=ttyS0,115200n8 rootdelay=1 selinux=0' and saveenv
2. set enforce 0
Run Code Online (Sandbox Code Playgroud)

对于方法1,printenv给出结果:

kernelargs=console=ttyS0,115200n8 rootdelay=1 selinux=0
Run Code Online (Sandbox Code Playgroud)

所以你看,已经发生了变化。但是警告消息在重新启动后继续打印。
对于方法 2,它说:

Could not set enforce status. Permission denied.
Run Code Online (Sandbox Code Playgroud)

所以现在我陷入困境不知道去哪里。我的问题: …

service android selinux seandroid

6
推荐指数
1
解决办法
7408
查看次数

是否可以在非root用户手机上添加属性?

对于我的非root设备(我不允许root,所以我需要找到另一种方法),如果我这样做的话

adb shell setprop MY_PROP 1
Run Code Online (Sandbox Code Playgroud)

其次是

adb shell getprop MY_PROP
Run Code Online (Sandbox Code Playgroud)

我得到一个空白.

我该如何设置房产?

android adb seandroid

5
推荐指数
1
解决办法
1159
查看次数

标签 统计

android ×3

seandroid ×3

selinux ×2

adb ×1

m4 ×1

service ×1