热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

init.rc启动shell脚本

[Android]在開機的時候,執行你想要的shellscript雖然init.rc很好用,但還是有其缺陷像是我要echo某些字串到檔案時,他就做不到了:(所以可以搭配一個.

[Android] 在開機的時候,執行你想要的 shell script

雖然 init.rc 很好用,但還是有其缺陷... 像是我要 echo 某些字串到檔案時,他就做不到了 :(


所以可以搭配一個 .sh 的檔案,讓他開機的時候去執行這個 .sh 即可。
建議修改方式:
[1] 在 AndroidBoard.mk 裡面將你的 .sh 包起去
file := $(TARGET_OUT)/etc/my.sh
ALL_PREBUILT += $(file)
$(file) : $(LOCAL_PATH)/ my.sh | $(ACP)
$(transform-prebuilt-to-target)
[2] 在你想要加進去的 init.rc 中加入下面這段:
on boot
    exec /system/bin/sh /system/etc/my.sh

這樣子就可以嚕 ^^  裡面用粗體紅字的就是要注意的地方囉



Android::开机自动执行shell脚本

在应用程序启动之前,往往需要在Android启动过程中去对系统做一些设置,如修改某些文件夹的属主和文件的权限,本文实现在init.rc中调用shell脚本,而所有对系统资源的修改和配置都在此shell脚本中实现。


1、在system/core/rootdir/etc/init.djstava.sh脚本文件,以开机获取IP地址为例,脚本内容可如下 #! /system/bin/sh ifconfig eth0 192.168.18.200 netmask 255.255.255.0 up route add default gw 192.168.18.1 dev eth0
2、修改system/core/rootdir/Android.mk文件,增加语句 copy_from += etc/init.djstava.sh
3、修改device/$(硬件平台)/init.rc文件,增加语句 mount yaffs2 mtd@system /system ro remount 改为 mount yassf2 mtd@system /system rw remount
chmod 755 /system/etc/init.djstava.sh chown root shell /system/etc/init.djstava.sh    service eth0_set /system/etc/init.djstava.sh oneshot
4、设置dns,修改system/core/rootdir/init.rc,在setprop net.tcp.buffersize.gprs命令后增加如下语句 setprop net.dns1 211.167.97.67 setprop net.dns2 202.96.209.133

[init.rc] android开机过程执行shell脚本

1、在system/core/rootdir/etc/下添加脚本文件,命名为myshell.sh,脚本内容可如下
        #! /system/bin/sh
2、修改system/core/rootdir/Android.mk文件,增加语句
        copy_from += etc/myshell.sh
3、修改相应的init.rc文件,增加语句
        将mount yaffs2 mtd@system /system ro remount 改为
        mount yassf2 mtd@system /system rw remount

        //以下的内容一定不要乱放,一定把它们放在跟它们类似的命令旁边,如service就放在最后。

        chmod 755 /system/etc/myshell.sh
        chown root shell /system/etc/myshell.sh

        service myshell /system/etc/myshell.sh
        oneshot

init脚本的关键字可以参考init进程的system/core/init/keyword.h文件。
init.rc的使用方法,可以参考说明文件system/core/init/readme.txt

详细的讲解就参考:http://blog.csdn.net/magicyu2/article/details/5392524
如果想要修改启动过程只需要修改init.c(system/core/init)或者init.rc里的内容即可.

参考:

http://www.eoeandroid.com/thread-165459-1-1.html

http://www.cnblogs.com/perseus/archive/2012/03/19/2405503.html

Android pppd_gprs脚本启动过程

http://blog.zol.com.cn/4473/article_4472516.html

Android: 启动init.rc 中service的权限问题





推荐阅读
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
author-avatar
少唇_200
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有