转自:http://www.linuxidc.com/Linux/2011-04/35014.htm 通过property_set("ctl.start", service_xx); 来启动init.rc中的service是一个很方便方法来调用某个可执行程序或某个脚本程序 service service_xx  /system/bin/xx disabled oneshot 但在非AID_ROOT.AID_SYSTEM 用户的进程中调用ctl.start ctl.stop会碰到权限问题…
在init.rc中运行的服务,由于系统启动的时候将标准输出重定向到了/dev/null, 所以服务中的打印信息都不可见. 但调试时可能需要看到其中的打印信息,因此就有了logwrapper这个工具:logwrapper的使用很简单,直接使用logwrapper执行可执行文件,就能在logcat中看到对应的打印信息了,比如: logwrapper ps 在执行ps命令的时候,就能在logcat中看到打印的信息:logwrapper在/system/bin路径下,为可执行文件,其作用是将可执行文件的…
本文转载自:http://blog.csdn.net/qq_28899635/article/details/56289063 开篇:为什么写这篇文章 先说下我自己的情况,我是个普通的大四学生,之前在学校一直做Android应用开发,找实习的时候也一直想找相关的工作,来到现在这家公司以后,由于业务调整,被领导安排去做底层开发,本来我对底层的东西一无所知,加上其实并不感兴趣,其实一开始感觉还是很难的,不过刚刚工作,只有小孩子才在乎喜欢不喜欢,成年人只在乎是否有利.我本着技多不压身的心态,开始了底层…
Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径:system/core/init,编译的结果是一个可执行文件:init.这个init 的可执行文件是系统运行的第一个用户空间的程序,它以守护进程的方式运行.启动脚本则就是下面要讲的Init.rc. ======================================================================…
[实现逻辑] 通过在property_service.c中设置标志位,在设置中实现接口改变标志位, 使用init.rc中声明的服务来侦听标志位的变化,显式启动声明的服务,执行对应的脚本,把应用后缀从apk重命名为bak,从而实现隐藏(显示逻辑相反).[实现步骤]以隐藏Google Play Store(system/priv-app/Phonesky.apk)为例: 1.首先在system/core/init/property_service.c中声明并初始化标志位,0为隐藏,1为显示,默认隐藏…
转自:http://blog.csdn.net/yimiyangguang1314/article/details/6268177 init.rc由许多的Action和Service组成.每一个语句占据一行,并且各个关键字被空格分开. 由 # (前面允许有空格)开始的行都是注释行(comment) 一个actions 或 services 的开始隐含声明了一个新的段,所有commands 或 options 属于最近的声明.在第一个段之前的 commands 或 options 都会被忽略 每一…
本文转载自:http://blog.csdn.net/VOlsenBerg/article/details/71085610 我有一个需求就是在Android系统开机的时候把一个配置文件放到Android系统的data目录中. 我使用的方法就是在 init.rc 中添加一个服务,这个服务就是执行一个将文件拷贝到指定目录的脚本,下面是添加服务的方法. 首先,写一个脚本mveGTouchA.sh, 这个脚本的内容就是把一个配置文件放到data目录中: #! /system/bin/sh cp /sy…
本文转载自:https://blog.csdn.net/u013686019/article/details/47981249 一.文件简介 init.rc:Android在启动过程中读取的启动脚本文件,主要完成一些初级的初始化,在/system/core/init/init.c中解析. init.xx.rc:与具体CPU相关的启动脚本,比如对于飞思卡尔的CPU,名字为init.freescale.rc.在init.rc之后得到解析. 对于运行的设备,两个文件都位于根目录下:cat /init.…
Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service.Service 可以分为有无限生命和有限生命两种.特别需要注意的是Service跟Activities是不同的(简单来说可以理解为后台与前台的区别),例如,如果需要使用Service的话,需要调用startService(),从而利用startService()去调用Service中的OnCreate()和onStart()方法来启动一个后台的Service.      启动一个Service的过程如下:conte…
转自:http://www.linuxidc.com/Linux/2014-10/108438.htm 本文主要来自$Android_SOURCE/system/init/readme.txt的翻译. 1 简述 Android init.rc文件由系统第一个启动的init程序解析,此文件由语句组成,主要包含了四种类型的语句:Action,Commands,Services,Options.在init.rc文件中一条语句通常是占据一行.单词之间是通过空格符来相隔的.如果需要在单词内使用空格,那么得…