[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的权限问题

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

  1. Android init.rc启动shell脚本

    init.rc启动shell脚本 0. 前言 1. 编写脚本 test.sh 2. 修改 .mk 配置文件,将创建的 test.sh 编译到系统分区 3. 配置 SELinux 权限 3.1 创建 t ...

  2. Linux开机后自动执行命令或脚本

    文章目录 说明 应用场景 涉及文件 步骤 1.添加开机执行指令 2.编写脚本 3.测试效果 自动化编辑工具 脚本 效果 已存在的脚本 不存在的脚本 说明 应用场景 应用场景:开机后自动执行命令或脚本 ...

  3. 开机后自动执行bat文件中的python程序,自动登录软件进行功能配置

    文章目录 1.bat文件 2.使用pyautogui进行自动点击 1.bat文件 bat文件的作用是可以和cmd命令行一样自动执行,将其放置到开机自启动文件夹中,便可以实现开机后的自动执行. 开机自启 ...

  4. linux用户开机.bashrc,验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本...

    在本文中, 我们来一起验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本(注意是.bashrc而不是bashrc). 如果你的主目录下没有.bashrc, 那也不要担心,自己 ...

  5. 一个可以开机后自动和你打招呼的小程序(希望以后可以成为智能的系统)

    这是一个可以开机后自动和你打招呼的小程序,至于你的名字在配置文件中.这里主要是应用了微软的speech技术来播放声音.所以如果你有其他的需求可以自己扩展.这里我只是写了很少的一部分功能,以后有新的想法 ...

  6. 解决荣耀8 手机数据连接卡设置开机后自动还原问题。

    症状 卡2为主卡,卡1为上网数据连接专用卡,设置完毕之后重启发现数据连接被更改为卡2了. 有多严重? 造成我得卡2多次欠费,卡2 是3g卡,不能上网,但是是用来接电话的永久卡,如果把主卡设置为卡1,那 ...

  7. JS,两种在页面加载完成后自动执行的方法(ready,onload)

    JS,两种在页面加载完成后自动执行的方法 1.jQuery的ready事件,需要引入jQuery的包才能使用,表示文档结构已经加载完成(不包含图片等非文字媒体文件): ready可以多次调用,可以绑定 ...

  8. Win10休眠模式设置:开机后自动恢复工作界面,防止程序员虐待电脑

    Win10休眠模式设置:开机后自动恢复工作界面,防止程序员虐待电脑 这个功能叫做休眠,与睡眠不同,休眠会在电脑关机之后,将当前工作环境保存为文件,然后在开机之后自动恢复.这个功能对不爱关机的程序员非常 ...

  9. 电脑桌面计算机总是自动打开,电脑开机后自动打开很多软件怎么办

    1. 电脑一开机自动启动好多小程序,如何取消掉 电脑一开机自动启动好多小程序,取消方法如下: 1打开开始菜单,在搜索框输入msconfig ,按回车键, 2在启动栏把不需要启动的程序打勾去掉,点击确定 ...

最新文章

  1. Java的浅拷贝与深拷贝总结
  2. php解析html类库simple_html_dom
  3. 通过钉钉群聊机器人推送zabbix告警
  4. linux常用命令总结
  5. python填充_python 实现矩阵填充0的例子
  6. ios wifi 定位_iOS 中的三种定位方式
  7. 思维方式是看待事物的角度、方式和方法,它对人的言行起到决定性作用
  8. 股票历史数据-股票历史行情数据下载
  9. 【区块链开发入门】(四) Truffle详解篇1
  10. cashfiesta网上赚钱
  11. ISTQB认证考试攻略大全(2018版)
  12. 石头科技的“现实”和“远方”
  13. android 三级级联筛选列表,写给程序员的Flutter详细教程
  14. GIS应用技巧之缓冲区分析
  15. scrapy爬取豆瓣电影列表
  16. SpringBoot整合chatGPT
  17. 解决树莓4B motion 卡顿
  18. 全球及中国风力发电行业运维模式及十四五投资策略研究报告2021-2027年
  19. Secure CRT自动连接打印机打印乱码问题
  20. vueuse(函数库)的基本使用,宝藏神器,务必收藏

热门文章

  1. perl 哈希数组的哈希_使用哈希检查两个数组是否相似
  2. html导航栏点击不能跳转,无法单击导航栏中的链接CSS HTML
  3. crontab 日志_liunx 中定时清理过期日志文件
  4. 为什么wait和notify必须放在synchronized中?
  5. NTFS USN的Create和工具代码汇总
  6. python-视频分帧多帧合成视频
  7. 怎么修改RO服务器版本,谁知道build.prop的系统版本号怎么改
  8. 低秩矩阵分解 matlab,低秩分解的matlab代码看不懂,分解的两个矩阵在哪呀??...
  9. 在线服务器和客户端聊天,实验三、客户端和服务器能实现简单的聊天功能
  10. for循环c语言流水灯,巧用数组与for循环为流水灯程序瘦身