Android应用层如何执行脚本文件
2011-12-31 11:52
399 查看
java层是用Runtime.getRuntime().exec(cmd) 来执行脚本的,注意root权限的使用。
增加GPIO口控制wifi模组电源,需要java层控制GPIO:
有两种方法:
1. 写一个字符设备的驱动,硬件抽象层,JNI层添加封装,Java层调用
2. 写一个脚本,脚本直接写寄存器,在java层用Runtime.getRuntime().exec(cmd)调用
实际上最后的解决方法:
1.kernel\drivers\amlogic\i2c\aml_i2c.c中更改支持脚本控制GPIO的I2C驱动(特定方案的更改)
2.kernel下i2c中设置(特定方案的更改)
请打开宏Device Drivers
->Amlogic Device Drivers
->Amlogic I2C CONFIG
->Amlogic i2c hardware bus support
->Amlogic I2C Driver
保证有/sys/class/i2c/cbus_reg文件
3.那两个脚本正确,各有三行,在开机后vi查看没有多余的字符,且在串口命令下执行这两个脚本打印3行提示寄存器设置正确
4.那两个脚本放在\device\amlogic\c03ref 下的,AndroidBoard.mk 下添加
file := $(TARGET_OUT_EXECUTABLES)/GPIO_B4_on.sh
ALL_PREBUILT += $(file)
$(file) : $(LOCAL_PATH)/GPIO_B4_on.sh | $(ACP)
$(transform-prebuilt-to-target)
file := $(TARGET_OUT_EXECUTABLES)/GPIO_B4_off.sh
ALL_PREBUILT += $(file)
$(file) : $(LOCAL_PATH)/GPIO_B4_off.sh | $(ACP)
$(transform-prebuilt-to-target)
5. init.rc添加:
chmod 0777 /sys/class/i2c/cbus_reg
service wifipwon /system/bin/logwrapper /system/bin/GPIO_B4_on.sh
disabled
oneshot
service wifipwoff /system/bin/logwrapper /system/bin/GPIO_B4_off.sh
disabled
oneshot
大约放在:(没强制要求)
service ueventd /sbin/ueventd
critical
之前
6.
应用层
frameworks\base\services\java\com\android\server\WifiService.java中添加:
import android.os.SystemProperties;
关wifi电源
SystemProperties.set("ctl.start", "wifipwoff");
开wifi电源
SystemProperties.set("ctl.start", "wifipwon");
7. make clean 全编译
增加GPIO口控制wifi模组电源,需要java层控制GPIO:
有两种方法:
1. 写一个字符设备的驱动,硬件抽象层,JNI层添加封装,Java层调用
2. 写一个脚本,脚本直接写寄存器,在java层用Runtime.getRuntime().exec(cmd)调用
实际上最后的解决方法:
1.kernel\drivers\amlogic\i2c\aml_i2c.c中更改支持脚本控制GPIO的I2C驱动(特定方案的更改)
2.kernel下i2c中设置(特定方案的更改)
请打开宏Device Drivers
->Amlogic Device Drivers
->Amlogic I2C CONFIG
->Amlogic i2c hardware bus support
->Amlogic I2C Driver
保证有/sys/class/i2c/cbus_reg文件
3.那两个脚本正确,各有三行,在开机后vi查看没有多余的字符,且在串口命令下执行这两个脚本打印3行提示寄存器设置正确
4.那两个脚本放在\device\amlogic\c03ref 下的,AndroidBoard.mk 下添加
file := $(TARGET_OUT_EXECUTABLES)/GPIO_B4_on.sh
ALL_PREBUILT += $(file)
$(file) : $(LOCAL_PATH)/GPIO_B4_on.sh | $(ACP)
$(transform-prebuilt-to-target)
file := $(TARGET_OUT_EXECUTABLES)/GPIO_B4_off.sh
ALL_PREBUILT += $(file)
$(file) : $(LOCAL_PATH)/GPIO_B4_off.sh | $(ACP)
$(transform-prebuilt-to-target)
5. init.rc添加:
chmod 0777 /sys/class/i2c/cbus_reg
service wifipwon /system/bin/logwrapper /system/bin/GPIO_B4_on.sh
disabled
oneshot
service wifipwoff /system/bin/logwrapper /system/bin/GPIO_B4_off.sh
disabled
oneshot
大约放在:(没强制要求)
service ueventd /sbin/ueventd
critical
之前
6.
应用层
frameworks\base\services\java\com\android\server\WifiService.java中添加:
import android.os.SystemProperties;
关wifi电源
SystemProperties.set("ctl.start", "wifipwoff");
开wifi电源
SystemProperties.set("ctl.start", "wifipwon");
7. make clean 全编译
相关文章推荐
- (转自http://www.eact.com.cn/blog/html/30/5230-64253.html)【软件应用】如何执行vbs脚本文件
- 【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
- 【Android 应用开发】Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
- IIS7 如何设置读取、脚本和可执行文件的执行权限
- sqlplus执行脚本文件时如何传参数
- 如何执行一个mysql的sql脚本文件
- Python脚本如何生成Windows可执行文件.exe
- 如何执行一个mysql的sql脚本文件
- android系统开发小知识-启动脚本文件内部的执行顺序
- 老男孩教育每日一题-第102天-如何找出/usr/local 下面所有shell脚本文件,并设置执行权限?
- IIS7 如何设置读取、脚本和可执行文件的执行权限
- 如何查看android应用签名文件的信息
- 【我的Android进阶之旅】Android 如何防止 so库文件被未知应用盗用?
- Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
- linux之如何在任意目录执行我常用的脚本文件
- 如何执行一个mysql的sql脚本文件
- Android init.rc如何启动service去执行sh脚本
- 如何执行一个mysql的sql脚本文件
- Android应用如何触发应用出现在打开文件方式的列表中
- Android--通过Monkey在手机上执行pc上的脚本文件