AOSP:在rom中打入一个脚本

2024-09-07 16:04
文章标签 脚本 aosp rom 打入

本文主要是介绍AOSP:在rom中打入一个脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境

aosp: android-14.0.0_r1
真机:Pixel5

目标

测试:将一个shell脚本,打入到rom中,最终刷机,并能在手机中使用。

步骤

  1. 添加 PRODUCT_PACKAGES
# 路径:device/google/redfin/device-redfin.mk
PRODUCT_PACKAGES += mysh
  1. 创建mysh文件(无后缀)
    路径:device/google/redfin/prebuilt/mysh
#!/system/bin/shcurrent_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "gn--->time=: $current_time" >> /data/local/tmp/gn.log
  1. 新增Android.mk构建模板文件
    路径:device/google/redfin/prebuilt/Android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)
LOCAL_MODULE := mysh
LOCAL_SRC_FILES := mysh
LOCAL_MODULE_PATH := $(TARGET_OUT)/bin
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := EXECUTABLES
include $(BUILD_PREBUILT)
  1. 设置权限
    路径:system/sepolicy/prebuilts/api/34.0/private/file_contexts
    和system/sepolicy/private/file_contexts
    这两个路径都需要新增下面内容
/system/bin/mysh	u:object_r:system_file:s0
  1. 设置init.rc
    路径:system/core/rootdir/init.rc
on property:sys.boot_completed=1start myserverservice myserver /system/bin/myshclass mainseclabel u:r:system_file:s0user rootdisabledoneshot
  1. 禁用artifact_path_requirements检测
    路径:build/envsetup.sh
# disable artifact check
export DISABLE_ARTIFACT_PATH_REQUIREMENTS="true"

如果不禁用的话,make编译的时候,会遇到如下报错:

FAILED: 
build/make/core/artifact_path_requirements.mk:30: warning:  device/google/redfin
/aosp_redfin.mk produces files inside build/make/target/product/generic_system.m
ks artifact path requirement. 
Offending entries:
system/bin/mysh
In file included from build/make/core/main.mk:1373:
build/make/core/artifact_path_requirements.mk:30: error: Build failed.
19:26:07 ckati failed with: exit status 1#### failed to build some targets (01:39 (mm:ss)) ####

编译打包

最后编译打包,最好先清理掉所有的out,否则容易影响成包。
编译:

make clean
source build/envsetup.sh
lunch <我这里选择的是pixel5对应的userdebug版本>
make

编译成功后,可以在out中找到mysh,路径:out/target/product/redfin/system/bin/mysh
刷机:

adb reboot fastboot
fastboot devices
fastboot flashall -w

当然不要忘记设置ANDROID_PRODUCT_OUT

结果验证

最终在手机中,可以在/system/bin中找到mysh运行脚本。
shell进去,运行mysh,可以在/data/local/tmp中生成gn.log文件,里面是打印当前时间。则说明验证通过

这篇关于AOSP:在rom中打入一个脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145514

相关文章

通过Python脚本批量复制并规范命名视频文件

《通过Python脚本批量复制并规范命名视频文件》本文介绍了如何通过Python脚本批量复制并规范命名视频文件,实现自动补齐数字编号、保留原始文件、智能识别有效文件等功能,听过代码示例介绍的非常详细,... 目录一、问题场景:杂乱的视频文件名二、完整解决方案三、关键技术解析1. 智能路径处理2. 精准文件名

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

Python3脚本实现Excel与TXT的智能转换

《Python3脚本实现Excel与TXT的智能转换》在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以... 目录场景应用:为什么需要这种转换技术解析:代码实现详解核心代码展示改进点说明实战演练:从Excel到

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用