Andrid 9.0 init.rc中增加启动自定义service

简介: Andrid 9.0 init.rc中增加启动自定义service

平台


RK3288 + Android 9


概述


本文是基于 Andrid 7.1 启动init.rc中自定义service 关于SELINUX部分的补充说明.


问题


全程参照bootanimation的实现


新增/修改文件列表


anson@server:~/codes/rk3288_pie$ git status system/sepolicy/
On branch master
Your branch is behind 'origin/master' by 6 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  modified:   system/sepolicy/prebuilts/api/28.0/private/compat/26.0/26.0.ignore.cil
  modified:   system/sepolicy/prebuilts/api/28.0/private/compat/27.0/27.0.ignore.cil
  modified:   system/sepolicy/prebuilts/api/28.0/private/file_contexts
  modified:   system/sepolicy/prebuilts/api/28.0/private/property_contexts
  modified:   system/sepolicy/prebuilts/api/28.0/private/system_server.te
  modified:   system/sepolicy/prebuilts/api/28.0/public/bootstat.te
  modified:   system/sepolicy/prebuilts/api/28.0/public/domain.te
  modified:   system/sepolicy/prebuilts/api/28.0/public/property.te
  modified:   system/sepolicy/private/compat/26.0/26.0.ignore.cil
  modified:   system/sepolicy/private/compat/27.0/27.0.ignore.cil
  modified:   system/sepolicy/private/file_contexts
  modified:   system/sepolicy/private/property_contexts
  modified:   system/sepolicy/private/system_server.te
  modified:   system/sepolicy/public/bootstat.te
  modified:   system/sepolicy/public/domain.te
  modified:   system/sepolicy/public/property.te
Untracked files:
  (use "git add <file>..." to include in what will be committed)
  system/sepolicy/prebuilts/api/28.0/private/infoservice.te
  system/sepolicy/prebuilts/api/28.0/public/infoservice.te
  system/sepolicy/private/infoservice.te
  system/sepolicy/public/infoservice.te


system/sepolicy/private/infoservice.te


typeattribute infoservice coredomain;
init_daemon_domain(infoservice)
# b/68864350
dontaudit infoservice unlabeled:dir search;


system/sepolicy/public/infoservice.te


# infoservice oneshot service
type infoservice, domain;
type infoservice_exec, exec_type, file_type;
#hal_client_domain(infoservice, hal_configstore)
#hal_client_domain(infoservice, hal_graphics_allocator)
#hal_client_domain(infoservice, hal_graphics_composer)
binder_use(infoservice)
#binder_call(infoservice, surfaceflinger)
#binder_call(infoservice, audioserver)
hwbinder_use(infoservice)
allow infoservice gpu_device:chr_file rw_file_perms;
# /oem access
allow infoservice oemfs:dir search;
allow infoservice oemfs:file r_file_perms;
allow infoservice audio_device:dir r_dir_perms;
allow infoservice audio_device:chr_file rw_file_perms;
allow infoservice audioserver_service:service_manager find;
allow infoservice surfaceflinger_service:service_manager find;
# Allow access to ion memory allocation device
allow infoservice ion_device:chr_file rw_file_perms;
allow infoservice hal_graphics_allocator:fd use;
# Fences
allow infoservice hal_graphics_composer:fd use;
# Read access to pseudo filesystems.
allow infoservice proc_meminfo:file r_file_perms;
# System file accesses.
allow infoservice system_file:dir r_dir_perms;
# Read ro.boot.bootreason b/30654343
get_prop(infoservice, bootloader_boot_reason_prop)


其他文件


git diff system/sepolicy/private/file_contexts system/sepolicy/private/property_contexts system/sepolicy/private/system_server.te system/sepolicy/public/bootstat.te system/sepolicy/public/domain.te system/sepolicy/public/property.te
diff --git a/system/sepolicy/private/file_contexts b/system/sepolicy/private/file_contexts
index 564e45c..0077d42 100644
--- a/system/sepolicy/private/file_contexts
+++ b/system/sepolicy/private/file_contexts
@@ -201,6 +201,7 @@
 /system/bin/sh         --      u:object_r:shell_exec:s0
 /system/bin/run-as     --      u:object_r:runas_exec:s0
 /system/bin/bootanimation u:object_r:bootanim_exec:s0
+/system/xbin/infoservice u:object_r:infoservice_exec:s0
 /system/bin/bootstat           u:object_r:bootstat_exec:s0
 /system/bin/app_process32      u:object_r:zygote_exec:s0
 /system/bin/app_process64      u:object_r:zygote_exec:s0
diff --git a/system/sepolicy/private/property_contexts b/system/sepolicy/private/property_contexts
index 32be0b3..f73ecbc 100644
--- a/system/sepolicy/private/property_contexts
+++ b/system/sepolicy/private/property_contexts
@@ -95,6 +95,7 @@ ro.persistent_properties.ready  u:object_r:persistent_properties_ready_prop:s0
 # ctl properties
 ctl.bootanim            u:object_r:ctl_bootanim_prop:s0
+ctl.infoservice            u:object_r:ctl_infoservice_prop:s0
 ctl.android.hardware.dumpstate u:object_r:ctl_dumpstate_prop:s0
 ctl.dumpstate           u:object_r:ctl_dumpstate_prop:s0
 ctl.fuse_               u:object_r:ctl_fuse_prop:s0
diff --git a/system/sepolicy/private/system_server.te b/system/sepolicy/private/system_server.te
index b037fe4..b3f6307 100644
--- a/system/sepolicy/private/system_server.te
+++ b/system/sepolicy/private/system_server.te
@@ -110,6 +110,8 @@ allow system_server cameraserver:process { getsched setsched };
 allow system_server hal_camera:process { getsched setsched };
 allow system_server mediaserver:process { getsched setsched };
 allow system_server bootanim:process { getsched setsched };
+# AnsonCode
+allow system_server infoservice:process { getsched setsched };
 # Allow system_server to write to /proc/<pid>/timerslack_ns
 allow system_server appdomain:file w_file_perms;
diff --git a/system/sepolicy/public/bootstat.te b/system/sepolicy/public/bootstat.te
old mode 100644
new mode 100755
index 7ba0238..8453df8
--- a/system/sepolicy/public/bootstat.te
+++ b/system/sepolicy/public/bootstat.te
@@ -31,6 +31,7 @@ read_logd(bootstat)
 neverallow {
   domain
   -bootanim
+  -infoservice
   -bootstat
   -dumpstate
   -init
diff --git a/system/sepolicy/public/domain.te b/system/sepolicy/public/domain.te
old mode 100644
new mode 100755
index e9337b6..8237939
--- a/system/sepolicy/public/domain.te
+++ b/system/sepolicy/public/domain.te
@@ -448,6 +448,7 @@ neverallow {
     domain
     -appdomain # for oemfs
     -bootanim # for oemfs
+    -infoservice
     -recovery # for /tmp/update_binary in tmpfs
 } { fs_type -rootfs }:file execute;
@@ -1330,6 +1331,7 @@ full_treble_only(`
   neverallow {
     coredomain
     -appdomain
+    -infoservice
     -bootanim
     -crash_dump
     -init
diff --git a/system/sepolicy/public/property.te b/system/sepolicy/public/property.te
index 09200b8..4f2dfa4 100644
--- a/system/sepolicy/public/property.te
+++ b/system/sepolicy/public/property.te
@@ -6,6 +6,8 @@ type bootloader_boot_reason_prop, property_type;
 type config_prop, property_type, core_property_type;
 type cppreopt_prop, property_type, core_property_type;
 type ctl_bootanim_prop, property_type;
+# AnsonCode
+type ctl_infoservice_prop, property_type;
 type ctl_bugreport_prop, property_type;
 type ctl_console_prop, property_type;
 type ctl_default_prop, property_type;
@@ -142,6 +144,7 @@ neverallow {
 # in the audit log
 dontaudit domain {
   ctl_bootanim_prop
+  ctl_infoservice_prop
   ctl_bugreport_prop
   ctl_console_prop
   ctl_default_prop
@@ -326,6 +329,7 @@ compatible_property_only(`
     -config_prop
     -cppreopt_prop
     -ctl_bootanim_prop
+    -ctl_infoservice_prop
     -ctl_bugreport_prop
     -ctl_console_prop
     -ctl_default_prop


CIL文件


git diff system/sepolicy/private/compat/26.0/26.0.ignore.cil system/sepolicy/private/compat/27.0/27.0.ignore.cil
diff --git a/system/sepolicy/private/compat/26.0/26.0.ignore.cil b/system/sepolicy/private/compat/26.0/26.0.ignore.cil
old mode 100644
new mode 100755
index c8edf9f..cfdd79f
--- a/system/sepolicy/private/compat/26.0/26.0.ignore.cil
+++ b/system/sepolicy/private/compat/26.0/26.0.ignore.cil
@@ -10,6 +10,10 @@
     blank_screen
     blank_screen_exec
     blank_screen_tmpfs
+    infoservice
+    infoservice_exec
+    infoservice_tmpfs
+    ctl_infoservice_prop
     bluetooth_a2dp_offload_prop
     bpfloader
     bpfloader_exec
diff --git a/system/sepolicy/private/compat/27.0/27.0.ignore.cil b/system/sepolicy/private/compat/27.0/27.0.ignore.cil
old mode 100644
new mode 100755
index 6106748..5bab216
--- a/system/sepolicy/private/compat/27.0/27.0.ignore.cil
+++ b/system/sepolicy/private/compat/27.0/27.0.ignore.cil
@@ -8,6 +8,10 @@
     blank_screen
     blank_screen_exec
     blank_screen_tmpfs
+    infoservice
+    infoservice_exec
+    infoservice_tmpfs
+    ctl_infoservice_prop
     bootloader_boot_reason_prop
     bluetooth_a2dp_offload_prop
     bpfloader


剩下就是COPY操作

从system/sepolicy 拷贝到 system/sepolicy/prebuilts/api/28.0


编译错误及解决


LOG1


device/rockchip/rk3288/preinstall_del_forever/preinstall.mk was modified, regenerating...
device/rockchip/rk3288/preinstall_del/preinstall.mk was modified, regenerating...
system/sepolicy/Android.mk:79: warning: BOARD_SEPOLICY_VERS not specified, assuming current platform version
[ 50% 3/6] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0
FAILED: out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0 
/bin/bash -c "(out/host/linux-x86/bin/treble_sepolicy_tests -l    out/host/linux-x86/lib64/libsepolwrap.so  -f out/target/product/rk3288/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts  -f out/target/product/rk3288/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts    -b out/target/product/rk3288/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/26.0_mapping.combined.cil    -o out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy -p out/target/product/rk3288/obj/ETC/sepolicy_intermediates/sepolicy   --fake-treble ) && (touch out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0 )"
SELinux: The following types were found added to the policy without an entry into the compatibility mapping file(s) found in private/compat/26.0/26.0[.ignore].cil
ctl_infoservice_prop infoservice infoservice_exec infoservice_tmpfs
[ 66% 4/6] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0
FAILED: out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0 
/bin/bash -c "(out/host/linux-x86/bin/treble_sepolicy_tests -l    out/host/linux-x86/lib64/libsepolwrap.so  -f out/target/product/rk3288/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts  -f out/target/product/rk3288/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts    -b out/target/product/rk3288/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/27.0_mapping.combined.cil    -o out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy -p out/target/product/rk3288/obj/ETC/sepolicy_intermediates/sepolicy   --fake-treble ) && (touch out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0 )"
SELinux: The following types were found added to the policy without an entry into the compatibility mapping file(s) found in private/compat/27.0/27.0[.ignore].cil
ctl_infoservice_prop infoservice infoservice_exec infoservice_tmpfs
ninja: build stopped: subcommand failed.
10:18:16 ninja failed with: exit status 1
#### failed to build some targets (51 seconds) ####


LOG2


device/rockchip/rk3288/preinstall_del_forever/preinstall.mk was modified, regenerating...
device/rockchip/rk3288/preinstall_del/preinstall.mk was modified, regenerating...
system/sepolicy/Android.mk:79: warning: BOARD_SEPOLICY_VERS not specified, assuming current platform version
[ 50% 3/6] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0
FAILED: out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0 
/bin/bash -c "(out/host/linux-x86/bin/treble_sepolicy_tests -l    out/host/linux-x86/lib64/libsepolwrap.so  -f out/target/product/rk3288/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts  -f out/target/product/rk3288/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts    -b out/target/product/rk3288/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/26.0_mapping.combined.cil    -o out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy -p out/target/product/rk3288/obj/ETC/sepolicy_intermediates/sepolicy   --fake-treble ) && (touch out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/treble_sepolicy_tests_26.0 )"
SELinux: The following types were found added to the policy without an entry into the compatibility mapping file(s) found in private/compat/26.0/26.0[.ignore].cil
ctl_infoservice_prop
[ 66% 4/6] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0
FAILED: out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0 
/bin/bash -c "(out/host/linux-x86/bin/treble_sepolicy_tests -l    out/host/linux-x86/lib64/libsepolwrap.so  -f out/target/product/rk3288/obj/ETC/plat_file_contexts_intermediates/plat_file_contexts  -f out/target/product/rk3288/obj/ETC/vendor_file_contexts_intermediates/vendor_file_contexts    -b out/target/product/rk3288/obj/ETC/built_plat_sepolicy_intermediates/built_plat_sepolicy -m out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/27.0_mapping.combined.cil    -o out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy -p out/target/product/rk3288/obj/ETC/sepolicy_intermediates/sepolicy   --fake-treble ) && (touch out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/treble_sepolicy_tests_27.0 )"
SELinux: The following types were found added to the policy without an entry into the compatibility mapping file(s) found in private/compat/27.0/27.0[.ignore].cil
ctl_infoservice_prop
ninja: build stopped: subcommand failed.
11:11:31 ninja failed with: exit status 1
#### failed to build some targets (01:32 (mm:ss)) ####


往private/compat/26.0/26.0[.ignore].cil 和 private/compat/27.0/27.0[.ignore].cil 把对应的内容添加(如:ctl_infoservice_prop)到指定文件即可.


假如当前SDK是29, 则需要添加到 28, 27, 26的 *…ignore.cil里


system/sepolicy/Android.mk:79: warning: BOARD_SEPOLICY_VERS not specified, assuming current platform version
[ 12% 1/8] build out/target/product/rk3288/obj/ETC/sepolicy_freeze_test_intermediates/sepolicy_freeze_test
FAILED: out/target/product/rk3288/obj/ETC/sepolicy_freeze_test_intermediates/sepolicy_freeze_test 
/bin/bash -c "(diff -rq system/sepolicy/prebuilts/api/28.0/public system/sepolicy/public ) && (diff -rq system/sepolicy/prebuilts/api/28.0/private system/sepolicy/private ) && (touch out/target/product/rk3288/obj/ETC/sepolicy_freeze_test_intermediates/sepolicy_freeze_test )"
Only in system/sepolicy/public: infoservice.te
[ 25% 2/8] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy
out/host/linux-x86/bin/checkpolicy:  loading policy configuration from out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/26.0_plat_policy.conf
out/host/linux-x86/bin/checkpolicy:  policy configuration loaded
out/host/linux-x86/bin/checkpolicy:  writing CIL to out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy
[ 37% 3/8] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy
out/host/linux-x86/bin/checkpolicy:  loading policy configuration from out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/27.0_plat_policy.conf
out/host/linux-x86/bin/checkpolicy:  policy configuration loaded
out/host/linux-x86/bin/checkpolicy:  writing CIL to out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy
ninja: build stopped: subcommand failed.
10:09:25 ninja failed with: exit status 1
#### failed to build some targets (48 seconds) ####


cp system/sepolicy/public/infoservice.te system/sepolicy/prebuilts/api/28.0/public/infoservice.te


system/sepolicy/Android.mk:79: warning: BOARD_SEPOLICY_VERS not specified, assuming current platform version
[ 37% 3/8] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy
FAILED: out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy 
/bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -M -C -c    30 -o out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/26.0_plat_policy.conf ) && (cat   system/sepolicy/prebuilts/api/26.0/private/technical_debt.cil >> out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy ) && (out/host/linux-x86/bin/secilc -m -M true -G -c 30  out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy -o out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/built_26.0_plat_sepolicy -f /dev/null )"
system/sepolicy/prebuilts/api/26.0/public/domain.te:88:ERROR 'syntax error' at token 'not_compatible_property' on line 7908:
not_compatible_property(
# Device specific properties are not granted by default
checkpolicy:  error(s) encountered while parsing configuration
out/host/linux-x86/bin/checkpolicy:  loading policy configuration from out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/26.0_plat_policy.conf
[ 50% 4/8] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy
FAILED: out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy 
/bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -M -C -c    30 -o out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/27.0_plat_policy.conf ) && (cat   system/sepolicy/prebuilts/api/27.0/private/technical_debt.cil >> out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy ) && (out/host/linux-x86/bin/secilc -m -M true -G -c 30  out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy -o out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/built_27.0_plat_sepolicy -f /dev/null )"
system/sepolicy/prebuilts/api/27.0/public/domain.te:88:ERROR 'syntax error' at token 'not_compatible_property' on line 8075:
# Device specific properties are not granted by default
not_compatible_property(
checkpolicy:  error(s) encountered while parsing configuration
out/host/linux-x86/bin/checkpolicy:  loading policy configuration from out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_27.0_intermediates/27.0_plat_policy.conf
ninja: build stopped: subcommand failed.
10:05:06 ninja failed with: exit status 1
#### failed to build some targets (43 seconds) ####


刚开始, 把system/sepolicy 目录下新增加的文件拷贝到了 system/sepolicy/prebuilts/api/目录下所有SDK(26,27,28)编译后出的错误, 而实际只需要拷贝到28即可, 相应的26,27需要在.ignore.cli中增加相应的声明.


错误的文件列表


git status system/sepolicy/
On branch master
Your branch is behind 'origin/master' by 6 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
  modified:   system/sepolicy/prebuilts/api/26.0/private/file_contexts
  modified:   system/sepolicy/prebuilts/api/26.0/private/property_contexts
  modified:   system/sepolicy/prebuilts/api/26.0/private/system_server.te
  modified:   system/sepolicy/prebuilts/api/26.0/public/bootstat.te
  modified:   system/sepolicy/prebuilts/api/26.0/public/domain.te
  modified:   system/sepolicy/prebuilts/api/26.0/public/property.te
  modified:   system/sepolicy/prebuilts/api/27.0/private/file_contexts
  modified:   system/sepolicy/prebuilts/api/27.0/private/property_contexts
  modified:   system/sepolicy/prebuilts/api/27.0/private/system_server.te
  modified:   system/sepolicy/prebuilts/api/27.0/public/bootstat.te
  modified:   system/sepolicy/prebuilts/api/27.0/public/domain.te
  modified:   system/sepolicy/prebuilts/api/27.0/public/property.te
  modified:   system/sepolicy/prebuilts/api/28.0/private/file_contexts
  modified:   system/sepolicy/prebuilts/api/28.0/private/property_contexts
  modified:   system/sepolicy/prebuilts/api/28.0/private/system_server.te
  modified:   system/sepolicy/prebuilts/api/28.0/public/bootstat.te
  modified:   system/sepolicy/prebuilts/api/28.0/public/domain.te
  modified:   system/sepolicy/prebuilts/api/28.0/public/property.te
  modified:   system/sepolicy/private/file_contexts
  modified:   system/sepolicy/private/property_contexts
  modified:   system/sepolicy/private/system_server.te
  modified:   system/sepolicy/public/bootstat.te
  modified:   system/sepolicy/public/domain.te
  modified:   system/sepolicy/public/property.te
Untracked files:
  (use "git add <file>..." to include in what will be committed)
  system/sepolicy/prebuilts/api/26.0/private/infoservice.te
  system/sepolicy/prebuilts/api/26.0/public/infoservice.te
  system/sepolicy/prebuilts/api/27.0/private/infoservice.te
  system/sepolicy/prebuilts/api/27.0/public/infoservice.te
  system/sepolicy/prebuilts/api/28.0/private/infoservice.te
  system/sepolicy/prebuilts/api/28.0/public/infoservice.te
  system/sepolicy/private/infoservice.te
  system/sepolicy/public/infoservice.te


system/sepolicy/Android.mk:79: warning: BOARD_SEPOLICY_VERS not specified, assuming current platform version
[ 10% 1/10] build out/target/product/rk3288/obj/ETC/sepolicy_freeze_test_intermediates/sepolicy_freeze_test
FAILED: out/target/product/rk3288/obj/ETC/sepolicy_freeze_test_intermediates/sepolicy_freeze_test 
/bin/bash -c "(diff -rq system/sepolicy/prebuilts/api/28.0/public system/sepolicy/public ) && (diff -rq system/sepolicy/prebuilts/api/28.0/private system/sepolicy/private ) && (touch out/target/product/rk3288/obj/ETC/sepolicy_freeze_test_intermediates/sepolicy_freeze_test )"
Files system/sepolicy/prebuilts/api/28.0/public/bootstat.te and system/sepolicy/public/bootstat.te differ
Files system/sepolicy/prebuilts/api/28.0/public/domain.te and system/sepolicy/public/domain.te differ
Only in system/sepolicy/public: infoservice.te
Files system/sepolicy/prebuilts/api/28.0/public/property.te and system/sepolicy/public/property.te differ
[ 30% 3/10] build out/target/product/rk3288/obj/ETC/treble_sepolicy_tests_26.0_intermediates/26.0_plat_policy.conf
ninja: build stopped: subcommand failed.
10:07:45 ninja failed with: exit status 1
#### failed to build some targets (43 seconds) ####


Files system/sepolicy/prebuilts/api/28.0/public/bootstat.te and system/sepolicy/public/bootstat.te differ

文件不同, 直接拷贝覆盖, 需注意正确的文件是哪个, 以免覆盖错.


相关文章
|
5月前
关于systemd自定义,一个service 启动多个实例
关于systemd自定义,一个service 启动多个实例
87 2
|
6月前
|
Shell Android开发 开发者
Android系统 自定义动态修改init.custom.rc
Android系统 自定义动态修改init.custom.rc
370 0
Andrid 7.1 启动init.rc中自定义service
Andrid 7.1 启动init.rc中自定义service
169 0
|
Apache Windows
Apache service monitor下无服务可供启动
Apache service monitor下无服务可供启动
245 0
|
Android开发
Android源码分析--Service的启动和绑定
Android源码分析--Service的启动和绑定
314 0
Android源码分析--Service的启动和绑定
|
PHP
TP5.1自定义service命令行
TP5.1自定义service命令行
120 0
TP5.1自定义service命令行
Service的两种启动方式与区别
分享一下Service的启动知识
499 0
|
Android开发
2-AIII--Service服务的绑定
零、前言 1.在绑定时调用计时器,间隔打印时间 2.解绑时解除计时器 3.在Activity中调用Service的方法 绑定服务.gif 一、代码实现 1.
977 0