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 *** = 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) ***.append(':');
***.append(imi.getId());
}
putEnabledInputMethodsStr(***.toString());
}
}
2)frameworks/base/packages/SettingsProvider/res/values/defaults.xml
com.baidu.input_baidutv/.ImeService
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
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 1
while(true) {
if(exitPending())
break;
usleep(CHECK_DELAY);
checkExit();
}
#endif
mp->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))
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 *** = 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) ***.append(':');
***.append(imi.getId());
}
putEnabledInputMethodsStr(***.toString());
}
}
2)frameworks/base/packages/SettingsProvider/res/values/defaults.xml
com.baidu.input_baidutv/.ImeService
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 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 1
while(true) {
if(exitPending())
break;
usleep(CHECK_DELAY);
checkExit();
}
#endif
mp->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))
举报