导航:首页 > 操作系统 > android启动脚本

android启动脚本

发布时间:2022-06-20 03:10:16

1. 如何让android 开机自动启动脚本

如果需要在Android开机时自动启动应用程序,可以通过响应android.intent.action.BOOT_COMPLETED广播消息来实现, Android系统启动结束时,会发出 android.intent.action.BOOT_COMPLETED 消息。 具体步骤如下:1. 定义一个Broadcast Receiver ,比如:BootupReceiver

[java]
public class BootupReceiver extends BroadcastReceiver{

@Override
public void onReceive(Context context, Intent intent) {

//better delay some time.
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent i = new Intent(context, BootupDemoActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

}

2. 怎么让Android系统或Android应用执行shell脚本

一、Android应用启动服务执行脚本
1 如何写服务和脚本
在android源码根目录下有/device/tegatech/tegav2/init.rc文件相信大家对这个文件都不陌生(如果不明白就仔细研读下android启动流程)。如果在该脚本文件中添加诸如以下服务:
service usblp_test /data/setip/init.usblpmod.sh
oneshot
disabled
注解:每个设备下都会有自己对应的init.rc,init.设备名.rc脚本文件。oneshot disabled向我们说明了在系统启动的时候这个服务是不会自动启动的。并且该服务的目的是执行/data/setip/init.usblpmod.sh脚本。脚本的内容你可以随便写,只要符合shell语法就可以了,比如脚本可以是简单的设置eth0:
# ! /system/bin/sh //脚本的开头必须这样写。
Ifconfig eth0 172.16.100.206 netmask 255.255.0.0 up//设置ip的命令
2、如何在应用中启动服务
1)首先了解下在服务启动的流程
1. 在你的应用中让init.rc中添加的服务启动起来。
首先了解下在服务启动的流程:
在设备目录下的init.c(切记并不是system/core/init/init.rc)
Main函数的for(;;)循环中有一个handle_property_set_fd(),函数:
for (i = 0; i < fd_count; i++) {
if (ufds[i].revents == POLLIN) {
if (ufds[i].fd == get_property_set_fd())
handle_property_set_fd();
else if (ufds[i].fd == get_keychord_fd())
handle_keychord();
else if (ufds[i].fd == get_signal_fd())
handle_signal();
}
}
这个函数的实现也在system/core/init目录下,该函数中的check_control_perms(msg.value, cr.uid, cr.gid)函数就是检查该uid是否有权限启动服务(msg.value就是你服务的名字),如果应用为root或system用户则直接返回1.之后就是调用handle_control_message((char*) msg.name + 4, (char*) msg.value),该函数的参数就是去掉1.ctl.后的start和2.你服务的名字。这个函数的详细内容:
void handle_control_message(const char *msg, const char *arg)
{
if (!strcmp(msg,"start")) {
msg_start(arg);
} else if (!strcmp(msg,"stop")) {
msg_stop(arg);
} else if (!strcmp(msg,"restart")) {
msg_stop(arg);
msg_start(arg);
} else {
ERROR("unknown control msg '%s'\n", msg);
}
}
匹配start后调用msg_start.服务就这样起来了,我们的解决方案就是在检查权限的地方“下点功夫”,因为我们不确定uid,所以就让check_control_perms这个函数不要检查我们的uid,直接检查我们服务的名字,看看这个函数:
static int check_control_perms(const char *name, unsigned int uid, unsigned int gid) {
int i;
if (uid == AID_SYSTEM || uid == AID_ROOT)
return 1;
/* Search the ACL */
for (i = 0; control_perms[i].service; i++) {
if (strcmp(control_perms[i].service, name) == 0) {
if ((uid && control_perms[i].uid == uid) ||
(gid && control_perms[i].gid == gid)) {
return 1;
}
}
}
return 0;
}
这个函数里面是必须要检查uid的,我们只要在for循环上写上。
if(strcmp(“usblp_test”,name)==0) //usblp_test就是我们服务的名字。
return 1;
这样做不会破坏android原本的结构,不会有什么副作用。
init.c和init.rc都改好了,现在就可以编译源码了,编译好了装到机子开发板上就可以了。

3. 安卓开机自动启动脚本,linux一般需要开机自启动的脚本放在什么地

很多地方都可以,一般是在/etc/目录下,可以将执行脚本的命令放到rc.local文件中,此文件在/etc目录中的具体位置跟文件系统有关,可以按名称搜索

4. 安卓手机怎么执行Linux脚本

一、Android应用启动服务执行脚本
1
如何写服务和脚本
在android源码根目录下有/device/tegatech/tegav2/init.rc文件相信大家对这个文件都不陌生(如果不明白就仔细研读下android启动流程)。如果在该脚本文件中添加诸如以下服务:
service
usblp_test
/data/setip/init.usblpmod.sh
oneshot
disabled
注解:每个设备下都会有自己对应的init.rc,init.设备名.rc脚本文件。oneshot
disabled向我们说明了在系统启动的时候这个服务是不会自动启动的。并且该服务的目的是执行/data/setip/init.usblpmod.sh脚本。脚本的内容你可以随便写,只要符合shell语法就可以了,比如脚本可以是简单的设置eth0:
#
!
/system/bin/sh
//脚本的开头必须这样写。
Ifconfig
eth0
172.16.100.206
netmask
255.255.0.0
up//设置ip的命令

5. android 中如何去执行js脚本

android要执行脚本,只有通过本地的webview打开脚本页面。
调用步骤

1、设置webview支持脚本
webSettings.setJavaScriptEnabled(true);

2、打开脚本页面

mWebView.loadUrl("file:///android_asset/demo.html");//这里打开该app的asset目录下的demo.html,里面含有wave函数脚本

3、调用脚本

mWebView.loadUrl("javascript:wave()");//调用打开页面中的wave函数

6. 求教,我在android的启动脚本init.rc增加了几行启动代码,但是没有su权限,执行不了、、求方法 谢谢。。。

init.rc并不是在root下的固定不变的文件,而是启动时从ramdisk(先假定是ramdisk吧)还是什么里头释放出来的,所以重启之后,你会发现之前做的修改又不见了。如果希望启动时运行,那么要把ramdisk解压出来编辑,然后打包,再刷回去~

7. 想让安桌手机开机执行/data/99SuperCharger.sh应该在init.rc怎么写service命令

1.init时设置设备权限
init可执行文件是Android系统运行的第一个用户空间的程序,它以守护进程的方式运行
2. init.rc中的内容
在Android中使用启动脚本init.rc,init启动脚本路径:system/core/rootdir/init.rc可以在系统的初始化过程中进行一些简单的初始化操作,init.rc脚本被直接安装到目标系统的根文件系统中,被init可执行程序解析
init.rc是在init启动后被执行的启动脚本,其语法主要包含了以下的内容:
commands:命令
actions:动作
triggers:触发条件
services:服务
options:选项
properties:属性
init脚本的关键字可以参考init进程的system/core/init/keyword.h文件
commands:命令是一些基本的操作
export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
mount yaffs2 mtd@system /system
mount yaffs2 mtd@system /system ro remount
mount yaffs2 mtd@userdata /data nosuid nodev
mount yaffs2 mtd@cache /cache nosuid nodev
这些命令在init可执行程序中被解析,然后调用相关的函数来实现

Actions:动作,表示一系列的命令,通常在triggers触发条件中调用,动作和触发条件的形式
on <trigger>
<command>

on init
export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

init表示一个触发条件初始化过程,在这个触发事件发生后,进行设置环境变量和建立目录的操作称为一个动作
Properties属性是系统中使用的一些值,可以进行设置和读取
在启动脚本中,属性的使用如下所示
setprop ro.FOREGROUND_APP_MEM 2048
setprop ro.VISIBLE_APP_MEM 3072
on property:ro.secure=0
start console
on property可以用于判断属性,这里的属性在整个Android系统运行中都是一致的。

Services服务,通常表示启动一个可执行程序,options选项是服务的附加内容,用于配合服务使用。
例如,启动电话的进程ril-daemon和开机动画的服务
service ril-daemon /system/bin/rild
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
user root
group radio cache inet misc audio sdcard_rw
service bootanim /system/bin/bootanimation
user graphics
group graphics
disabled
oneshot
ril-daemon和bootaim表示服务的名称,/system/bin/rild和system/bin/bootanimation表示服务所需要执行的可执行程序的路径。
oneshot选项表示该服务只启动一次,而如果没有oneshot选项,这个可执行程序会一直存在,如果可执行程序被杀死,则会重新启动,ril-daemon是一个守护进程,如果退出,需要重新启动,因此没有使用oneshot; bootaim开机动画,只执行一次,因此加上了oneshot.

8. 已经root的安卓android不支持install-recovery.sh如何添加启动脚本

一般是获取权限后删除了系统文件, 刷机试试

9. 如何让安卓手机开机自动执行某一脚本

出现该问题的原因是是后台已经有程序在运行了。 先在控制面板-卸载程序里面,找到smart gesture这个驱动; 然后右键卸载掉; 然后重启机器之后,再次进行安装,就可以安装。 【注】如果还是不能安装,需要重装系统,然后再进行安装。

10. 如何让android启动后自动运行一段脚本

1.修改启动脚本init.rc在最后添加
#===============================add my shellscript
service sysinit /system/xbin/busybox run-parts /system/etc/init.d
oneshot
上面busybox工具路径要根据自己的系统写
2.在system/etc下创建init.d目录,在此目录下添加写好的脚本去掉后缀.sh,添加可执行权限
3.重启ok

阅读全文

与android启动脚本相关的资料

热点内容
精通编程入门 浏览:14
99单片机原理 浏览:59
linuxssh互信 浏览:288
支持128加密的浏览器 浏览:292
程序员下载器 浏览:48
退出云服务器代码 浏览:900
军状如命令 浏览:263
如何安卓系统更新 浏览:74
linux命令在哪里输入 浏览:497
编程语言集合类怎么选 浏览:93
如何将pdf转化为word 浏览:11
迈克菲隔离区解压密码 浏览:785
怎么用伟福编译 浏览:867
计算机算法专家 浏览:501
什么app清理垃圾 浏览:643
android流媒体服务器 浏览:183
各种算法的时间复杂度是指 浏览:116
帮助高考生缓解压力 浏览:850
自媒体聚合APP需要什么资质 浏览:487
求标准体重的算法 浏览:740