Android开机执行C程序

/

软硬件环境

  • OTT BOx with android 5.1.1

前言

之前的Android开机执行shell脚本介绍了如何在android系统开机时执行特定的shell脚本文件,不过在某些情况下不适合用shell实现,又不好做成jni动态库由app调用,这时用C语言程序来实现就有可能帮上你,本文就以创建文件夹为例,来实现android开机启动C可执行程序。

实现步骤

在Android源码中创建文件夹
  1. cd android_src/external
  2. mkdir djstava
创建C源文件及Android.mk

首先是写源码文件test.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. int ret = mkdir("/system/djstava");//请确保你的用户有对相应目录的权限
  6. if(ret == -1)
  7. {
  8. printf("mkdir failed!\n");
  9. return -1;
  10. }
  11. return 0;
  12. }

这里如果你的system分区只读,可以换成/data/djstava作为测试用

接下来就是Android.mk文件

  1. LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE_TAGS := eng
  4. LOCAL_MODULE := djstava
  5. LOCAL_SRC_FILES := $(call all-subdir-c-files)
  6. include $(BUILD_EXECUTABLE)
修改Android开机脚本文件init.${platform}.rc文件,增加
  1. service djstava_test /system/bin/djstava
  2. class main
  3. user root
  4. group root
  5. oneshot
重新编译源码并打包
  1. cd android_src
  2. make
刷机并测试

看看文件夹/system/djstava(或者/data/djstava)是否已经被创建好了。

关于作者

Website: http://www.xugaoxiang.com
Github: https://github.com/djstava
Email: djstava@gmail.com

转载请注明作者和出处,并添加本页链接。
原文链接: http://xugaoxiang.com/post/101

给我留言