android开机后自动执行shell,init.rc启动 shell脚本

[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启动过程中去对系统做一些设置,如修改某些文件夹的属主和文件的权限,本文实现在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

1、在system/core/rootdir/etc/下添加脚本文件,命名为myshell.sh,脚本内容可如下

#! /system/bin/sh

增加语句

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

参考:

Android pppd_gprs脚本启动过程

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC 执行过程原理(请求映射原理、参数处理原理、返回值处理器)

Spring MVC 执行过程分析 文章目录Spring MVC 执行过程分析请求映射原理适配器Adapter执行目标方法参数处理器解析器HandlerMethodArgumentResolverRequestBody测试RequestParam测试RequestParamMethodArgumentResolver分析执行目标方法体返回值处理器解析器目标方法执行完成处…

推箱子android源代码,android自定义view实现推箱子小游戏

本文实例为大家分享了android推箱子游戏的具体实现代码,供大家参考,具体内容如下自定义view:package com.jisai.materialdesigndemo.tuixiangzhi;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bi…

android没有捂脸表情,微信新emoji表情安卓机怎么没有?微信新emoji表情安卓机没有怎么回事?...

在最新版ios版微信中不少用户在聊天时发现了新emoji表情哟,但是安卓机最新版即没有发现,那么微信新emoji表情安卓机怎么没有?微信新emoji表情安卓机没有怎么回事?下面小编就给大家具体介绍下。iOS版微信总共加入了9款新表情&#…

springboot源码分析: 请求方式+请求映射原理+获取参数原理

注解相关 AliasFor:.在同个注解中为同一个功能定义两个名称不一样的属性,那么这两个属性彼此互为别名 RequestMapping注解里面的代码 AliasFor("path")String[] value() default {};AliasFor("value")String[] path() default {};G…

android 或者vide的高度和宽度,关于Android中videoView.setVideoPath(“PATH”)的问题!!!急!!...

满意答案yfdsan31972015.06.03采纳率:52% 等级:9已帮助:364人path 是获取的路径,如果你把视频文件夹写在raw文件夹下 ,/*** raw文件夹下的文件处理工具类** */public class RawFileUtils {private RawFileUtils( ){…

Java使用minio的基本操作

Java使用minio的基本操作 导入jar包 <dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>7.0.2</version> </dependency>public static void main(String[] args) {try{MinioClient minioClie…

吃透Java IO:字节流、字符流、缓冲流

文章目录前言1 初识Java IO1.1 IO流分类1.2 案例实操2 IO流对象2.1 File类2.2 字节流2.3 字符流2.4 序列化3 IO流方法3.1 字节流方法3.2 字符流方法4 附加内容4.1 位、字节、字符4.2 IO流效率对比4.3 NIO前言 有人曾问fastjson的作者&#xff08;阿里技术专家高铁&#xff09;&…

android 侧滑删除功能,200行代码让你在Android中完美实现iOS版侧滑删除效果

使用几个月的IOS之后,发现IOS中侧滑删除俺就大家好&#xff0c;自己开始学习Android已经差不多半年了吧&#xff0c;前前后后看了不少的博客获益匪浅。渐渐的随着技术的提升&#xff0c;慢慢感觉网上其它的一些功能的实现又不是那么完美&#xff0c;今天就给大家带来一篇在Andr…

java IO体系的学习总结

1.Java Io流的概念&#xff0c;分类&#xff0c;类图。 1.1 Java Io流的概念 ? ? java的io是实现输入和输出的基础&#xff0c;可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源&#xff08;键盘&#xff0c;文件&#xff0c;网络连接等&#xff09;抽象表…

android 浏览器 多窗口显示,Android浏览器图形侧多窗口方案

Android平台浏览器当前多窗口方案为多个浏览器子窗口公用一个图形buffer&#xff0c;窗口的z序和显示控制由浏览器进程维护&#xff0c;图形侧只能看到一个窗口。该方案能基本实现浏览器多窗口的大部分需求。但无法实现linux机顶盒中存在的部分窗口交叉的业务场景&#xff0c;即…

response.reset() 与response.resetbuffer使用场景

getResponse的getWriter()方法 getResponse的getWriter()方法连续两次输出流到页面的时候&#xff0c;第二次的流会包括第一次的流&#xff0c;所以可以使用response.reset或者resetBuffer的方法。 reset(): Clears any data that exists in the buffer as well as the statu…

android listview asynctask,关于android:ListView + ArrayList + AsyncTask

本问题已经有最佳答案&#xff0c;请猛点这里访问。我的想法是使用AsynTask下载数据集并存储在arrayList中。 我已经检查并运行良好。在onPostExecute方法中&#xff0c;我调用一个函数来更新listView&#xff0c;然后加载存储在ArrayList中的数据。码&#xff1a;protected vo…

ServletResponse reset()方法慎用

reset()用于重置,但是在重置的时候也会清空相关数据,例如session存的信息。

android10获取imei,Android 10 root用户获取imei

IMEI(International Mobile Equipment Identity)是国际移动设备识别码的缩写&#xff0c;由15-17位数字组成&#xff0c;与手机是一一对应的关系。无论刷机还是恢复出厂设置&#xff0c;该设备标识码都不会改变&#xff0c;所以在广告和流量统计等方面特别好用&#xff0c;备受…

JAVA基础之HttpServletResponse响应

JAVA基础之HttpServletResponse响应 用户在客户端输入网址&#xff08;虚拟路径&#xff09;时&#xff0c;开始发送一个HTTP请求&#xff08;请求行、请求头、请求体&#xff09;至服务器。服务器内的Tomcat引擎会解析请求的地址&#xff0c;去找XML文件&#xff0c;然后根据…

android imageview 设置网络图片,ImageView加载网络图片

android网络加载图片框架Android-Universal-Image-Loader功能非常强大&#xff0c;其开源地址https://github.com/nostra13/Android-Universal-Image-Loader&#xff0c;讲解非常地详细&#xff0c;今天我要贴下工作中用到的利用这个框架加载网络图片并在ImageView控件中显示出…

Logger之Logger.getLogger(CLass)

之前一直在使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 在项目中使用Log4J并不是一件困难的事情,简单粗暴的方式就是在每个类A中声明一个Logger私有属性 pri…

订阅号助手android,微信订阅号助手app

微信订阅号助手app属于微信官方推出的软件&#xff0c;可以把我们的手机当做公众号的平台&#xff0c;让你直接用手机来实现公众号的各种工作、互动内容&#xff0c;微信订阅号助手app不用担心使用一些第三方软件被封号了&#xff0c;非常实用可靠。【应用介绍】订阅号助手是一…

使用LoggerFactory.getLogger(xxx.class)方法在控制台打印日志信息

使用System.out.println()来调试.但是用这种方式开发项目部署到生产环境,会因为众多的控制台输出降低应用的性能.这时候Log4J就成为可平衡开发和部署应用的利器了. 使用指定的类XXX初始化日志对象&#xff0c;方便在日志输出的时候&#xff0c;可以打印出日志信息所属的类。 …

signature=f0dd2033ed5bb3cdb94f9136381f7750,Lesson 8: Signature Assignment

摘要&#xff1a;This unit will focus on the Civil Rights Era in the 1960s. Students will learn what the Civil Rights Movement was and how it changed the United States. By learning about the pivotal leaders of the movement, students will build their underst…