服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - 详解android系统的定制

详解android系统的定制

2022-03-06 20:33dongyi1988 Android

这篇内容给大家分享了关于android系统的定制的一些步骤和基本知识点,有兴趣的朋友参考学习下。

简单基础的定制android系统,使第一次开机就安装系统应用和预装应用,加载服务工具和其它文件,开机启动画面,设置默认输入法、屏幕亮度等等。

如何简单的定制android系统?这里有两种方法:

第一是使用蘑菇ROM助手,编辑系统ROM。使用方法请百度。

第二种是源码中添加编译规则。复制设备工程中的文件到编译生成的系统中。

 

这里介绍下第二种方法,使用的是全志T3的android4.4系统源码。

1.添加我们自己的编译项

修改编译文件/android/device/softwinner/t3-p1/t3_p1.mk,添加下面一句

$(call inherit-product-if-exists, device/softwinner/t3-p1/test/test.mk)

2.编辑device/softwinner/t3-p1/test/test.mk文件。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PRODUCT_COPY_FILES += \
    $(call find-copy-subdir-files,*,$(LOCAL_PATH)/apk,system/preinstall)    \
    $(call find-copy-subdir-files,*,$(LOCAL_PATH)/systemapk,system/app) \
    $(call find-copy-subdir-files,*,$(LOCAL_PATH)/music,data/test/music)    \
    $(call find-copy-subdir-files,*,$(LOCAL_PATH)/video,data/test/video)    \
    $(call find-copy-subdir-files,*,$(LOCAL_PATH)/pic,data/test/pic)
    
PRODUCT_COPY_FILES += \
 device/softwinner/t3-p1/test/test_init:system/bin/test_init    \
 device/softwinner/t3-p1/test/gocsdk:system/bin/gocsdk
 
#注意:1、第一次启动,复制文件与安装应用较慢,进入系统后需等待;
#   2、system文件夹用户不可写,故不能删除;
#   3、预装应用可卸载,卸载后不再出现;
#   4、如果需要再次安装,删除目标板的 /data/system.notfristrun文件,然后重启

一 安装系统应用和一般应用

PRODUCT_COPY_FILES是拷贝文件到系统,前面是存放路径,后面是目标路径,$(call find-copy-subdir-files,***)的写法能实现文件夹的拷贝。

在test文件夹下创建apk,systemapk,music,video,pic等文件夹。

system/preinstall是预装软件,放置APK文件,可卸载。

system/app是系统应用,放置APK文件,不可卸载。

因为在device/softwinner/t3-p1/fstab.sun8iw11p1中/dev/block/by-name/system /system ext4 ro wait表明/system的挂载方式是ro只读方式。ROOT就是重新挂载修改这个文件夹的读写权限。非ROOT情况下文件拷贝到里面就可实现文件不可删除。

注意,复制文件会检查是否是APK文件,需要在android/build/core/makefile里面注释掉这段检查。

?
1
2
3
4
#define check-product-copy-files
#$(if $(filter %.apk, $(1)),$(error \
# Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT instead!))
#endef

二 加载服务工具和其它文件

接着分析test.mk文件,下面三句是复制music、video、pic到目标android系统。也可以是其他文件。实现文件的定制。

再下面两句是添加的工具,其中一个设置默认值的shell指令,一个是蓝牙供应商给的工具。

三 设置默认输入法

设置默认输入法的一个方法是开机的时候创建服务控制台输入settings指令来设置默认输入法。然后/android\/device/softwinner/t3-p1/init.rc文件加载时运行一次该服务。

其中test_init里面添加设置默认输入法指令。

?
1
2
#!/system/bin/sh
settings put secure default_input_method com.google.android.inputmethod.pinyin/.PinyinIME

init.rc加入服务

?
1
2
3
4
5
service test_init /system/bin/sh /system/bin/test_init
    class core
    user root
    group root system
    oneshot

google拼音输入法app要放到预装软件或是系统应用文件夹中。

app也装上去了,这样还不行,因为权限不够,需要修改test_init权限,在init.rc文件中添加

?
1
chmod 777 /system/bin/test_init

注意:设置默认输入法的另一个方法是修改默认参数。修改/device/softwinner/t3-p1/overlay/frameworks/base/packages/SettingsProvider/res/values的defaults.xml文件,详细请百度。

现在settings指令支持的选项有限,虽然查看setting的数据库有很多选项,但并不好用。

重点是,修改test_init,可以在android系统起来前输入自己需要的shell指令。android系统添加启动服务会具体说明如何添加启动工具或服务。

四 开机启动画面与音乐

全志T3的android4.4系统源码开机画面、开机音乐放在android/device/softwinner/t3-p1/media

原文链接:https://blog.csdn.net/dongyi1988/article/details/55667160

延伸 · 阅读

精彩推荐
  • AndroidAndroid编程解析XML方法详解(SAX,DOM与PULL)

    Android编程解析XML方法详解(SAX,DOM与PULL)

    这篇文章主要介绍了Android编程解析XML方法,结合实例形式详细分析了Android解析XML文件的常用方法与相关实现技巧,需要的朋友可以参考下...

    liuhe68810052021-05-03
  • AndroidAndroid CardView+ViewPager实现ViewPager翻页动画的方法

    Android CardView+ViewPager实现ViewPager翻页动画的方法

    本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Abby代黎明9602022-03-02
  • AndroidAndroid界面效果UI开发资料汇总(附资料包)

    Android界面效果UI开发资料汇总(附资料包)

    android ui界面设计,友好的界面会提高用户体验度;同时也增强了android ui界面设计的难度,本文提供了一些常用开发资料(有下载哦)感兴趣的朋友可以了解下...

    Android开发网4672021-01-03
  • AndroidAndroid实现Service获取当前位置(GPS+基站)的方法

    Android实现Service获取当前位置(GPS+基站)的方法

    这篇文章主要介绍了Android实现Service获取当前位置(GPS+基站)的方法,较为详细的分析了Service基于GPS位置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Ruthless8342021-03-31
  • AndroidAndroid程序设计之AIDL实例详解

    Android程序设计之AIDL实例详解

    这篇文章主要介绍了Android程序设计的AIDL,以一个完整实例的形式较为详细的讲述了AIDL的原理及实现方法,需要的朋友可以参考下...

    Android开发网4642021-03-09
  • AndroidAndroid实现固定屏幕显示的方法

    Android实现固定屏幕显示的方法

    这篇文章主要介绍了Android实现固定屏幕显示的方法,实例分析了Android屏幕固定显示所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    鉴客6192021-03-27
  • Android汇总Android视频录制中常见问题

    汇总Android视频录制中常见问题

    这篇文章主要汇总了Android视频录制中常见问题,帮助大家更好地解决Android视频录制中常见的问题,需要的朋友可以参考下...

    yh_thu5192021-04-28
  • AndroidAndroid中AsyncTask详细介绍

    Android中AsyncTask详细介绍

    这篇文章主要介绍了Android中AsyncTask详细介绍,AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合,需要的朋友可以参考下...

    Android开发网7452021-03-11