adb push init.rc /

http://blog.csdn.net/jumper511/article/details/28856249

修改Android init.rc文件后,需要将修改后的文件上传到手机,但是发下如下问题

D:\test>adb push init.rc /

failed to copy ‘init.rc‘ to ‘//init.rc‘: Read-only file system

解决办法如下

D:\test>adb root

adbd is already running as root

D:\test>adb remount

remount succeeded

D:\test>adb shell

[email protected]:/ # mount -o remount rw /

mount -o remount rw /

[email protected]:/ # ^C

D:\test>adb push init.rc /

1507 KB/s (20059 bytes in 0.012s)

上传成功,不过不要高兴得太早,系统重新启动后,发现init.rc有恢复成原来的,修改没有生效,原因在于(下面的内容摘自论坛http://bbs.csdn.net/topics/390474471?page=1)

init.rc 是 rootfs 中的文件,Android 将 rootfs(initramfs) link 到 linux kernel image 中,生成正常启动的boot.img, recovery 模式的 recovery.img.
Android 每次 reboot 的时候 bootloader 都要将 boot.img 加载到ram 中,其中一部分是真正的 linux kernel image (zImage), 另外一部分就是 initramfs (包含 init, init.rc, etc).
之后,Linux kernel 初始化的时候会把 initramfs 以 rootfs 类型 mount 到 / .

为了android 在启动后linux内核自动启动某个应用或者脚本,可以修改下面的文件

device/qcom/msm8974/init.target.rc, 然后重新编译android系统, 下载boot.img

例如要在android启动后自动运行 powerOnOff linux程序,可以在init.target.rc添加如下代码

service powerOnOff /system/bin/powerOnOff

class main

group root

user root

原文地址:https://www.cnblogs.com/ancongliang/p/8881846.html

时间: 2024-10-09 23:02:46

adb push init.rc /的相关文章

Android init源代码分析(2)init.rc解析

本文描述init.rc脚本解析以及执行过程,读完本章后,读者应能 (1) 了解init.rc解析过程 (2) 定制init.rc init.rc介绍 init.rc是一个文本文件,可认为它是Android系统启动脚本.init.rc文件中定义了环境变量配置.系统进程启动,分区挂载,属性配置等诸多内容.init.rc具有特殊的语法.init源码目录下的readme.txt中详细的描述了init启动脚本的语法规则,是试图定制init.rc的开发者的必读资料. Android启动脚本包括一组文件,包括

Android初始化语言(init.rc语法)

本文为 ANDROID_SOURCE/system/core/init/readme.txt 的译文. 安卓初始化语言 安卓初始化语言包括四种类型的语句,它们是: 动作 Action 命令 Command 服务 Service 选项 Option 所有语句都是面向行的,以空格分割每行包含的若干token.C风格的反斜杠可以用于token中插入空格,双引号同样可以避免空格将文本分为多个token.反斜杠是一行的最后一个字符时,将用于续行(PS:下一行也属于该句). 以#开头的行(前面有空格也是允许

Android init.rc文件浅析

本文主要来自$ANDROID_SOURCE/system/init/readme.txt的翻译. 1 简述 Android init.rc文件由系统第一个启动的init程序解析.此文件由语句组成,主要包括了四种类型的语句:Action,Commands,Services,Options.在init.rc文件里一条语句一般是占领一行.单词之间是通过空格符来相隔的.假设须要在单词内使用空格,那么得使用转义字符"\",假设在一行的末尾有一个反斜杠,那么是换行折叠符号,应该和下一行合并成一起来

init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件

Android启动后,系统执行的第一个进程是一个名称为init 的可执行程序.提供了以下的功能:设备管理.解析启动脚本.执行基本的功能.启动各种服务.代码的路径:system/core/init,编译的结果是一个可执行文件:init.这个init 的可执行文件是系统运行的第一个用户空间的程序,它以守护进程的方式运行.启动脚本则就是下面要讲的Init.rc. ======================================================================

Android 初始化语言 --init.rc

p.p1 { margin: 0.0px 0.0px 12.9px 0.0px; line-height: 24.0px; font: 21.0px Helvetica; color: #000000; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 10.0px 0.0px; line-height: 16.0px; font: 14.0px "PingFang SC"; color: #000000; backgroun

Android使用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为显示,默认隐

Android中adb push和adb install的使用区别

Android中adb push和adb install的使用区别  转载 本篇文章由史迎春(@三俗小女子)投稿.转载请注明原文地址. 在Android实际开发中,经常会使用adb命令,安装应用程序可以使用adb push 或者adb install.下面就来讲讲这两种安装方式的区别. adb push 能够指定安装目录.比如执行”adb push xxx.apk system/app” 后,xxx.apk被安装到了system/app目录下,此目录下的软件为上文中提到的system appli

android学习笔记--android启动过程之init.rc文件浅析

1.  init.rc文件结构文件位置:init.c  : /system/core/initinit.rc  : /system/core/rootdir 首先init.rc文件是以模块为单位的,每个模块里的内容都是一起执行的,模块分为3种类型:on.service.import.我们可以看下init.rc文件是怎么写的:1.import import /init.usb.rc import /init.${ro.hardware}.rc import /init.trace.rc 上面的内容

android中init.rc文件的解析问题

init.rc中文件里会通过import /init.${ro.hardware}.rc文件,这个ro.hardware应该是某个详细的属性.而这个ro.hardware赋值应该是在Init进程中赋值的. 这个ro.hardware值设置是在/system/core/init.c中实现的,其通过hardware来赋值.hardware首先被/proc/cpuinfo赋值.然后会检測comandline. 假设comandline中有參数为androidboot.hardware,那这个參数在in