Android Framework 常见解决方案(07)Android开机启动 Native daemon 解决方案

198 篇文章 98 订阅

1 原理

主要 修改系统编译配置文件,rc文件,SELinux相关文件。

2 解决方案(Android O)

@1 创建工程和 rc配置文件

创建一个新的目录 frameworks/native/services/surfaceflinger/spaceXA(这里只是举例,实际上可以根据实际情况 进行调整),主要是建立一个新的工程并有自己的Android.mk文件。

在文件 frameworks/native/services/surfaceflinger/surfaceflinger.rc(这里只是举例,实际上可以根据实际情况 进行调整,不一定是这个rc文件)中做如下修改:

@@ -7,3 +7,7 @@ service surfaceflinger /system/bin/surfaceflinger
     socket pdx/system/vr/display/client     stream 0666 system graphics u:object_r:pdx_display_client_endpoint_socket:s0
     socket pdx/system/vr/display/manager    stream 0666 system graphics u:object_r:pdx_display_manager_endpoint_socket:s0
     socket pdx/system/vr/display/vsync      stream 0666 system graphics u:object_r:pdx_display_vsync_endpoint_socket:s0
+service spaceXA /system/bin/spaceXA
+    class main
+    seclabel u:r:spacem:s0
+    socket space stream 0666 system system

@2 系统编译配置文件

在文件 system/core/rootdir/Android.mk 中做如下修改:

@@ -89,6 +89,7 @@ SANITIZE_ASAN_OPTIONS_FOR := \
   servicemanager \
   slim_daemon \
   surfaceflinger \
+  spaceXA \
   thermal-engine \
   time_daemon \
   update_engine \

在文件 build/make/target/product/embedded.mk中做如下修改:

@@ -77,6 +77,7 @@ PRODUCT_PACKAGES += \
     shell_and_utilities \
     storaged \
     surfaceflinger \
+    spaceXA \
     thermalserviced \
     tombstoned \
     tzdatacheck \

@3 SELinux 相关配置文件修改

在文件 device/qcom/sepolicy/private/file_contexts中做如下修改:

@@ -51,6 +51,7 @@
 /system/bin/wfdservice                          u:object_r:wfdservice_exec:s0
 /system/bin/mmi                                 u:object_r:mmi_sys_exec:s0
 /system/bin/mmi_diag                            u:object_r:mmi_sys_exec:s0
+/system/bin/spaceXA                         u:object_r:spaceXA_exec:s0
 
 ####### data files ################
 /data/misc/seemp(/.*)?                          u:object_r:seemp_data_file:s0

在文件 device/qcom/sepolicy/private/spaceXA.te中做如下修改:

+type spaceXA, domain;
+type spaceXA_exec, exec_type, file_type;
+allow spaceXA self:udp_socket { connect getattr read recvfrom sendto write };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图王大胜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值