背景:安卓系统添加自己的程序(模块),可以启动运行。
步骤:
1.参考链接https://blog.csdn.net/e_one/article/details/80736068 简单来说就是在安卓SDK里新建立一个模块文件夹,里边要放入生成模块的东东(比如我的模块的名字叫server,名字可以随各位客官自己定),文件夹里写好Android.mk,*.cpp等,到SDK顶层make server, 会在安卓SDK/out/target/product/Hi3798MV200/system/bin/目录下生成可执行文件server(你的目标模块),另外adb shell查看你的系统也能看到 /system/bin/server ==》此处省略一万字,网上一堆教程教你如何写Android.mk,如何生成可执行文件,然后adb push到文件系统中,再运行等等。当然咱们直接烧录镜像的,不用push,adb shell执行后,板子系统可以查看到/system/bin/server的存在;
2.but,我们目标是安卓系统运行的时候,就自动运行server。
方法:修改android sdk源码/device/hisilicon/Hi3798MV200/etc/init.Hi3798MV200.rc(注意:海思的安卓7.1sdk的init.rc不是android sdk源码/device/hisilicon/bigfish目录)
在init.Hi3798MV200.rc中添加(红色字体部分),编译生成镜像,全烧录即可;
#安卓的init脚本,on事件起动名叫server的服务
on property:sys.boot_completed=1
start server
和
#在脚本中添加服务,service server(名字) /system/bin/server(执行文件)
service server /system/bin/server
class main
user root
group root
烧录,重启后板子服务server运行如图红框所示:
3.如要了解具体安卓系统的init.rc,详参https://blog.csdn.net/qq_28899635/article/details/56289063 Android如何配置init.rc中的开机启动进程(service)
参考:https://blog.csdn.net/e_one/article/details/80736068 Android编译自己的程序到/system/bin
https://blog.csdn.net/u014316462/article/details/76438611 为Android添加开机启动脚本
https://blog.csdn.net/qq_28899635/article/details/56289063 Android如何配置init.rc中的开机启动进程(service)