1.默认语音、地区、时区

device/rockchip/rk322x/rk322x_box/system.prop

persist.sys.language=zh #简体中文
persist.sys.country=CN #中国
persist.sys.timezone=Asia/Shanghai #GMT+8

2.版本号:

build/core/Makefile

# A human-readable string that descibes this build in detail.
# build_desc := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER) $(BUILD_VERSION_TAGS)
build_desc := V1.0.0 #可以直接去掉上面一大串引用,也可以在上面的基础上修改

3.默认输入法:

1)frameworks/base/core/java/com/android/internal/inputmethod/InputMethodUtils.java

        // At the initial boot, the settings for input methods are not set,// so we need to enable IME in that case.public void enableAllIMEsIfThereIsNoEnabledIME() {if (!TextUtils.isEmpty(getEnabledInputMethodsStr())) {//增加一个取反!StringBuilder sb = new StringBuilder();final int N = mMethodList.size();for (int i = 0; i < N; i++) {InputMethodInfo imi = mMethodList.get(i);Slog.i(TAG, "Adding: " + imi.getId());if (i > 0) sb.append(':');sb.append(imi.getId());}putEnabledInputMethodsStr(sb.toString());}}

2)frameworks/base/packages/SettingsProvider/res/values/defaults.xml

    <!-- Add by haming: add baidu input method --><string name="def_input_method" translatable="false">com.baidu.input_baidutv/.ImeService</string>

3)frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

private void loadSecureSettings(SQLiteDatabase db) {//此处省略好多行
loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,R.string.def_input_method ); //add by haming for baidu input method} finally {if (stmt != null) stmt.close();}
}

4.设备信息:

build/tools/buildinfo.sh

echo "ro.product.model=XXX"
echo "ro.product.brand=AiSing"
echo "ro.product.name=XXX"
echo "ro.product.device=ASBox"
echo "ro.product.board=Box"
echo "ro.product.manufacturer=company name"

5.分区大小修改:

如以下将boot分区增大了0x00004000,从原来的0x00006000变更到0x00010000, 其中@前面的十六进制数值表示分区的大小,单位:Kbit,@后面的十六进制数值表示分区的起始地址。

device/rockchip/rk322x/parameter.txt

CMDLINE:console=ttyFIQ0 androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00004000@0x00004000(trust),0x00002000@0x00008000(misc),0x00000800@0x0000A000(baseparamer),0x00007800@0x0000A800(resource),0x00006000@0x00012000(kernel),0x00010000@0x00018000(boot),0x00010000@0x00028000(recovery),0x00020000@0x00038000(backup),0x00040000@0x00058000(cache),0x00008000@0x00098000(metadata),0x00002000@0x00A0000(kpanic),0x00400000@0x000A2000(system),-@0x004A2000(userdata)

6.静态logo&开机视频:

1)静态logo修改

直接替换以下两个bmp文件

kernel/logo.bmp  kernel/logo_kernel.bmp

2)添加开机视频

函数声明:frameworks/base/cmds/bootanimation/BootAnimation.h

class BootAnimation : public Thread, public IBinder::DeathRecipient
{
public:…… //此处省略好多行void playMusic();bool playVideo(); //在这里声明一个播放视频的函数…… //此处省略好多行
}

函数实现及使用:frameworks/base/cmds/bootanimation/BootAnimation.cpp

namespace android {
……//此处省略好多行
#define USER_BOOTVIDEO_FILE "/data/local/boot.mp4"
#define SYSTEM_BOOTVIDEO_FILE "system/media/boot.mp4"
……//此处省略好多行
bool BootAnimation::threadLoop()
{bool r;……//此处省略好多行if (mZip == NULL) {//若bootanimation.zip文件是空文件,则播放android原生开机动画r = android();} else if ((0 == access(USER_BOOTVIDEO_FILE, F_OK)) || (0 == access(SYSTEM_BOOTVIDEO_FILE, F_OK))) { //系统指定路径存在视频文件则播放开机视频r = playVideo();} else { //否则播放开机帧动画r = movie();}……//此处省略好多行return r;
}bool BootAnimation::playVideo() //播放开机视频函数实体
{ALOGD("playVideo");const float MAX_FPS = 60.0f;const float CHECK_DELAY = ns2us(s2ns(1) / MAX_FPS);eglMakeCurrent(mDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);eglDestroySurface(mDisplay, mSurface);sp<MediaPlayer> mp = new MediaPlayer();//mp->reset();if((0 == access(USER_BOOTVIDEO_FILE, F_OK)) && mp != NULL){mp->setDataSource(NULL, USER_BOOTVIDEO_FILE, NULL);}else if((0 == access(SYSTEM_BOOTVIDEO_FILE, F_OK)) && mp != NULL){mp->setDataSource(NULL, SYSTEM_BOOTVIDEO_FILE, NULL);}mp->setLooping(false);mp->setVideoSurfaceTexture(mFlingerSurface->getIGraphicBufferProducer());mp->prepare();mp->start();// when boot complete, then exit animation
#if 1while(true) {if(exitPending())break;usleep(CHECK_DELAY);checkExit();}
#endifmp->stop();return false;
}
…...//此处省略好多行
};

开机视频文件拷贝:

首先将文件拷贝到以下目录

vendor/rockchip/common/apps/CopyCustomFile/boot.mp4

然后添加编译脚本

vendor/rockchip/common/apps/CopyCustomFile/Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_POST_PROCESS_COMMAND :=$(shell mkdir -p $(TARGET_OUT)/media/)LOCAL_POST_PROCESS_COMMAND :=$(shell cp -r $(LOCAL_PATH)/boot.mp4 $(TARGET_OUT)/media/)
include $(call all-makefiles-under,$(LOCAL_PATH))

RK3229平台Android6.0系统的一些定制性需求开发相关推荐

  1. RK3229平台Android6.0系统添加广升OTA升级功能

    添加脚本: build/core/FotaInfo.sh #!/bin/bash#********Do not modify this file. If you want modify this fi ...

  2. 零死角玩转Android6.0系统Healthd深入分析

    零死角玩转Android6.0系统Healthd深入分析 概述 Healthd是android4.4之后提出来的一种中介模型,该模型向下监听来自底层的电池事件,向上传递电池数据信息给Framework ...

  3. 在Eclipse中导入编译MTK平台Android6.0源码的原生Gallery2应用

    源码下载地址 由于工作的需要,需要在Eclipse中调试MTK平台Android6.0的原生Gallery2应用, 网上已经有很多类似的技术文章了,步骤都差不多, 但是MTK在google原生的Gal ...

  4. 461在全志r16平台tinav3.0系统下使用地磁计QMC5883L

    461在全志r16平台tinav3.0系统下使用地磁计QMC5883L 2018/9/7 14:08 版本:V1.0 开发板:SC3817R SDK:tina v3.0 (基本确认全志tina v3. ...

  5. Android6.0 ios,意超越iOS9!谷歌寄希望于Android6.0系统

    虽然在目前全球的移动操作系统上,谷歌的Android系统市场占有率傲视群雄,但在某些方面iOS系统还是更占优势.对此分析师Dan Gallagher认为谷歌和苹果.Android和iOS之间的战况将随 ...

  6. 双路E5平台PVE7.0系统GTX1060 显卡直通

    双路E5平台PVE7.0系统GTX1060 显卡直通 刚通,熟悉的错误消失了,有点失落,有点不知所措.直通成功了,开机能跑好几套系统(win10系统还能直通显卡玩游戏). 使用鲁大师对比物理机和虚机的 ...

  7. android+桌面歌词,Android6.0系统适配桌面歌词效果

    在360手机助手及各家的音乐播放器软件上,都使用了桌面浮动窗功能,桌面歌词都是在音乐客户端显示在前台时隐藏,在用户把软件切换到后台后显示出来,此效果在Android 6.0以前,大部分都是使用系统的A ...

  8. android6.0 系统时间不自动校准的问题

    软件平台:android6.0 硬件平台:MT6797 最近,发现我们产品中有一定概率的时间是不对的,我感到很诧异,我司的产品怎么可以这莫弱鸡,而且android本身的智能性,区区一个时间怎么可能也不 ...

  9. iTOP-i.MX6Q开发板支持安卓Android6.0系统

    迅为IMX6开发板: Android4.4/6.0系统  Linux + Qt5.7系统  Ubuntu12.04系统 部分案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 核心板兼容 ...

最新文章

  1. 互联网思维-标签思维(2)
  2. WPF的ProgressBar进度条
  3. Developer Express控件组合中的GridControl控件,如何自动显示每一行的序号
  4. 还在对Matplotlib繁琐的图层设置感到烦恼!?快来看看这个Python绘图工具包吧
  5. C++中的wchar_t(转)
  6. PHP处理图片导致内存溢出
  7. MySQL 传统复制与 GTID 复制原理及操作详解
  8. 学习linux装,一个初学者的Linux学习之旅之Linux安装篇
  9. VisualStudio2019 DLL生成并使用教程(C++)最详细Demo教程
  10. [置顶] SPL讲解(6)--Condition篇
  11. 容易被忽略的注解,你能了解多少?
  12. ijkplayer-旋转角度实现
  13. 响应式Web设计:HTML5和CSS3实战 笔记
  14. 【报告分享】2021年中国商业物联网行业研究报告-艾瑞咨询(附下载)
  15. SHFileOperation
  16. C++ 相关职位的要求
  17. Python-集合练习(协助学生做问卷调查)
  18. 高电平输入好还是rca输入好_汽车音响接高电平还是低电平是什么意思
  19. python红楼梦作者_用 Python 分析《红楼梦》,后四十回是曹雪芹所写吗?(开源)...
  20. 用程序来模拟Alt+PrtSc的键盘事件,实现截屏功能

热门文章

  1. (烧脑)奇怪数 - C语言 - 回溯
  2. 350个运动摄影lr调色预设(含lr预设导入教程)
  3. 区块链能保护隐私?别被忽悠了
  4. 2.PMAC硬件-一个运动控制系统的实例
  5. 韦东山老师的单片机核心课程学习笔记(三)
  6. 计算机二级有重复的题目吗,计算机二级能重复考吗
  7. 基于Springboot的幼儿园管理系统
  8. java计算机毕业设计基于安卓Android的城市公交查询app
  9. Win10下安装RabbitMQ[教程和安装包]
  10. 今日发现导出dbf类型为dBASE IV的文件,数据列不能超过40个,否则报错“字段将不能置于记录中”