本文共 2751 字,大约阅读时间需要 9 分钟。
PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=8.1.0TARGET_PRODUCT=xxxTARGET_BUILD_VARIANT=userdebugTARGET_BUILD_TYPE=releaseTARGET_ARCH=armTARGET_ARCH_VARIANT=armv7-a-neonTARGET_CPU_VARIANT=cortex-a7HOST_ARCH=x86_64HOST_2ND_ARCH=x86HOST_OS=linuxHOST_OS_EXTRA=Linux-3.13.0-32-generic-x86_64-with-Ubuntu-12.04-preciseHOST_CROSS_OS=windowsHOST_CROSS_ARCH=x86HOST_CROSS_2ND_ARCH=x86_64HOST_BUILD_TYPE=releaseBUILD_ID=OPM1.171019.011
如何 自启动1. 服务的声明及定义2. 服务的启动3. 服务的权限
#data onservice data_on /system/bin/ext_data_on.sh -u // 可见, data_on 这个需要设置. user root oneshot#data offservice data_off /system/bin/ext_data_off.sh -d user root #for V620 M5 updateservice sky_M5_update /system/bin/sky_m5_update.sh class main user root group root # SensorHub (Location Hub)service xxx /system/bin/xxx class main user gps group system inet net_raw ioprio be 0 seclabel u:r:xxx:s0
方式1 我们可以通过 property_set("ctl.start", service_xx); 来启动。proprietories-source/phoneserver/ps_service.c:643: property_set("ctl.start", "data_on"); //启动服务配置网卡参数proprietories-source/phoneserver/ps_service.c:821: property_set("ctl.start", "data_off"); //启动清除网卡参数脚本方式2 setprop dev.skym5update.enable=1 去启动sky_M5_update service 来执行sky_m5_update.shsetprop dev.skym5update.enable=0 来停止 sky_M5_update serviceon property:dev.skym5update.enable=1 start sky_M5_updateon property:dev.skym5update.enable=0 stop sky_M5_updateon boot start sky_M5_update # 在 boot 时 ,就启动-------------------------------- 启动顺序on early-init ... start ueventd //ueventd是init启动的第一个进程 ...on init ... // 创建各种路径,并写入一些参数on late-init //trigger 会调用action_for_each_trigger("xxx", action_add_queue_tail); //从而将xxx section里的操作加入操作队列 // mount文件系统相关的操作 trigger early-fs trigger fs trigger post-fs trigger post-fs-data trigger load_all_props_action //加载属性 trigger firmware_mounts_complete trigger early-boot //将‘early-boot’中的操作加入执行队列 trigger boot //将‘boot’中的操作加入执行队列on early-boot ... // kernel trace相关on boot ... class_start core // 启动core类别的服务on nonencrypted class_start main class_start late_starton property:vold.decrypt=trigger_restart_min_framework class_start mainon property:vold.decrypt=trigger_restart_framework class_start main class_start late_start
1. te 文件的编写device/qcom/sepolicy/common/xxx.tetype xxx, domain;type xxx_exec, exec_type,vendor_file_type, file_type;# 在有se 问题的时候仍然可以运行,并将全部se 问题打出permissive lhd; #然后启用这个域init_daemon_domain(xxx)2. 除了se问题 服务权限的添加audit2allow -i selinux_lhd.log > policy.te ; cat policy.te3. se 编译问题 (Neverallow) system/sepolicy/public/domain.te https://blog.csdn.net/yxw0609131056/article/details/79784490