瑞芯微Rockchip开发者社区
直播中

陈伟

7年用户 1484经验值
私信 关注
[问答]

怎样去修改RK3229平台Android6.0系统的默认时区呢

怎样去修改RK3229平台Android6.0系统的默认时区呢?

怎么去修改RK3229平台Android6.0系统的分区大小呢?

回帖(1)

李晓欢

2022-3-9 11:55:28
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))
举报

更多回帖

发帖
×
20
完善资料,
赚取积分