软硬件环境
- OTT BOx with android 5.1.1
前言
之前的Android开机执行shell脚本介绍了如何在android
系统开机时执行特定的shell
脚本文件,不过在某些情况下不适合用shell
实现,又不好做成jni
动态库由app
调用,这时用C
语言程序来实现就有可能帮上你,本文就以创建文件夹为例,来实现android
开机启动C
可执行程序。
实现步骤
在Android源码中创建文件夹
cd android_src/external
mkdir djstava
创建C源文件及Android.mk
首先是写源码文件test.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int ret = mkdir("/system/djstava");//请确保你的用户有对相应目录的权限
if(ret == -1)
{
printf("mkdir failed!\n");
return -1;
}
return 0;
}
这里如果你的system
分区只读,可以换成/data/djstava
作为测试用
接下来就是Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE := djstava
LOCAL_SRC_FILES := $(call all-subdir-c-files)
include $(BUILD_EXECUTABLE)
修改Android开机脚本文件init.${platform}.rc文件,增加
service djstava_test /system/bin/djstava
class main
user root
group root
oneshot
重新编译源码并打包
cd android_src
make
刷机并测试
看看文件夹/system/djstava
(或者/data/djstava
)是否已经被创建好了。