rk3328 android10 默认中文

本文档记录了在Android build/make目录下的核心和产品文件变更,新增了针对系统语言和地区的设置,如`persist.sys.language`和`PRODUCT_LOCALES`。主要涉及了`main.mk`中locale选项的更新和`target/product`文件中的默认语言切换。

在build/make目录下

diff --git a/core/main.mk b/core/main.mk
index bf3e52d..93f02b3 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -381,6 +381,8 @@ ADDITIONAL_BUILD_PROPERTIES += net.bt.name=Android
 
 #add by haidern
 ADDITIONAL_BUILD_PROPERTIES += persist.sys.timezone=Asia/Shanghai
+ADDITIONAL_BUILD_PROPERTIES += persist.sys.language=zh
+ADDITIONAL_BUILD_PROPERTIES += persist.sys.country=CN
 # ------------------------------------------------------------
 # Define a function that, given a list of module tags, returns
 # non-empty if that module should be installed in /system.
diff --git a/target/product/full_base.mk b/target/product/full_base.mk
old mode 100644
new mode 100755
index 447576c..4afed05
--- a/target/product/full_base.mk
+++ b/target/product/full_base.mk
@@ -47,7 +47,7 @@ PRODUCT_PROPERTY_OVERRIDES := \
     ro.config.notification_sound=pixiedust.ogg
 
 # Put en_US first in the list, so make it default.
-PRODUCT_LOCALES := en_US
+PRODUCT_LOCALES := zh_CN en_US
 
 # Get some sounds
 $(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk)
diff --git a/target/product/languages_default.mk b/target/product/languages_default.mk
old mode 100644
new mode 100755
index a13a23c..44e87b0
--- a/target/product/languages_default.mk
+++ b/target/product/languages_default.mk
@@ -17,7 +17,8 @@
 # This is a build configuration that just contains a list of languages, with
 # en_US set as the default language.
 PRODUCT_LOCALES := \
-        en_US \
+        zh_CN \
+	en_US \
         af_ZA \
         am_ET \
         ar_EG \
@@ -99,7 +100,6 @@ PRODUCT_LOCALES := \
         ur_PK \
         uz_UZ \
         vi_VN \
-        zh_CN \
         zh_HK \
         zh_TW \
         zu_ZA \

<think>我们正在讨论如何在RK3566设备上更改Android 11的默认Launcher。根据引用[1]的内容,我们知道Rockchip的Android11源码中,默认的Launcher是Launcher3,位于`packages/apps/Launcher3`。现在需要替换为我们自己的Launcher。 引用[1]提供的方法如下: 1. 在源码目录`android/vendor/rockchip/common/apps/`下新建一个目录(例如`hybLauncher`)。 2. 将我们自己的Launcher的apk文件(例如`hybLauncher.apk`)拷贝到这个新建的目录中,并且要求文件夹名和apk文件名相同(不带扩展名)。 3. 在该目录下新建一个`Android.mk`文件,用于将我们的Launcher编译进系统。 但是,请注意,Android 11已经逐渐转向使用Soong构建系统(使用Android.bp),但Rockchip的源码中可能仍然支持Android.mk。因此,我们需要根据实际情况选择。 另外,我们还需要确保系统启动时默认使用我们的Launcher。这通常需要修改系统属性`ro.home.app`或者通过覆盖默认的Launcher配置来实现。然而,在Android 11中,默认Launcher的设置可能还需要在`packages/apps/Launcher3`的位置进行替换,或者通过修改系统配置文件来设置。 根据引用[1]的步骤,我们还需要注意,在编译系统后,我们的Launcher会被编译进系统,并且需要移除原来的Launcher3(或者通过配置让系统选择我们的Launcher作为默认)。 然而,引用[1]并没有提到如何设置默认启动器。因此,我们可能需要额外的步骤: 4. 修改系统属性或者配置文件,将我们的Launcher设置为默认的Home应用。 在Android中,默认的Launcher是通过在AndroidManifest.xml中声明特定的intent-filter来实现的。当有多个Launcher存在时,系统会在第一次启动时让用户选择。但我们要做的是预制系统,所以需要避免用户选择,直接设置我们的Launcher为默认。 通常,我们可以通过以下方法之一: - 在设备overlay中修改`config_defaultHomeApp`,指向我们的Launcher的组件名(包名/类名)。 - 在系统启动的初始化脚本中设置`ro.home.app`属性为我们的Launcher的包名。 具体步骤: 方法一:通过overlay修改默认Launcher 1. 在设备树目录(例如`device/rockchip/rk356x`)下,找到overlay目录,修改`config_defaultHomeApp`的值。这个值通常在`core/res/res/values/config.xml`中定义,我们可以通过设备overlay覆盖它。 2. 创建一个overlay文件,例如:`device/rockchip/rk356x/overlay/packages/apps/Launcher3/res/values/config.xml`(如果存在Launcher3的overlay)或者更常见的在`frameworks/base/core/res/res/values/config.xml`的overlay。 3. 在overlay文件中添加: ```xml <resources> <string name="config_defaultHomeApp" translatable="false">com.example.hybLauncher/.MainActivity</string> </resources> ``` 其中`com.example.hybLauncher/.MainActivity`是我们自己Launcher的主Activity。 方法二:通过设置系统属性(如果平台支持) 在`device/rockchip/rk356x/system.prop`中添加: ro.home.app=com.example.hybLauncher 但是,需要注意的是,Rockchip平台可能有自己的设置方式。根据引用[1]的步骤,他们只是将apk放入vendor目录并编译,然后系统会自动替换。这是因为在Rockchip的common.mk中可能会自动处理vendor/apps下的应用,并且在第一次启动时,如果只有一个Launcher,那么它就会成为默认。但如果有多个(比如系统自带的Launcher3和我们的Launcher同时存在),那么就需要设置默认。 因此,为了确保我们的Launcher成为默认,我们需要移除系统自带的Launcher3。我们可以通过在自己的device.mk文件中添加: PRODUCT_PACKAGES -= Launcher3 这样在编译系统时就不会包含Launcher3。 总结步骤: 1. 将我们的Launcher apk(例如:hybLauncher.apk)放入`vendor/rockchip/common/apps/hybLauncher/`目录下。 2. 在该目录下创建`Android.mk`文件,内容如下: ```makefile LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Module name should match apk name to be installed LOCAL_MODULE := hybLauncher LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(LOCAL_MODULE).apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_CERTIFICATE := PRESIGNED include $(BUILD_PREBUILT) ``` 3. 在设备对应的makefile(例如`device/rockchip/rk356x/device.mk`)中,添加: ```makefile PRODUCT_PACKAGES += hybLauncher PRODUCT_PACKAGES -= Launcher3 ``` 4. 为了确保设置默认Launcher,我们还需要通过overlay设置`config_defaultHomeApp`(推荐)或者设置系统属性(如果平台支持)。这里我们采用overlay方式: 在设备overlay目录(例如`device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/`)下创建`config.xml`,内容为: ```xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="config_defaultHomeApp" translatable="false">com.example.hybLauncher/.MainActivity</string> </resources> ``` 注意:如果该overlay目录已经存在`config.xml`,则只需在其中添加或修改该字符串。 5. 重新编译系统并烧写。 注意:以上步骤假设我们的Launcher的包名为`com.example.hybLauncher`,主Activity为`MainActivity`,请根据实际情况修改。 另外,如果我们的Launcher没有签名,我们可以使用`LOCAL_CERTIFICATE := platform`来使用平台签名,但前提是我们有Launcher的源码并放在源码树中编译。如果只是预置apk,且apk没有签名,则使用`PRESIGNED`表示使用apk原有的签名(如果apk没有签名,则不能使用,必须签名)。 因此,如果我们的apk没有签名,我们需要先签名,或者使用`LOCAL_CERTIFICATE := platform`来让系统在编译时用平台签名。但注意,使用平台签名需要将apk放在`vendor/rockchip/common/apps`下,并且使用`LOCAL_CERTIFICATE := platform`,则修改`Android.mk`: ```makefile ... LOCAL_CERTIFICATE := platform ... ``` 如果使用Android.bp,则创建`Android.bp`文件: ```bp android_app_import { name: "hybLauncher", apk: "hybLauncher.apk", privileged: true, presigned: true, // 如果是预签名,否则使用certificate // certificate: "platform", // 如果需要平台签名 overrides: [], dex_preopt: { enabled: false, }, } ``` 但是,Rockchip的common.mk可能会自动处理vendor/apps下的应用,所以也可能不需要Android.mk,但为了保险,我们按照引用[1]的步骤创建Android.mk。 由于我们移除了Launcher3,并设置了默认Launcher,这样系统启动后就会使用我们的Launcher。 最后,编译系统: source build/envsetup.sh lunch rk3566_s-userdebug make -j8 ./mkimage.sh 注意:具体的lunch目标可能因设备而异,请根据实际情况选择。 以上步骤是在源码环境下操作,如果你没有完整的编译环境,可能需要先搭建环境。 如果用户没有源码环境,那么可能需要通过修改系统镜像来实现,但这种方法比较复杂,通常需要解包system.img,修改后重新打包,并且需要重新签名。这里我们只讨论有源码的情况。 相关问题: 1. 如果我不想移除Launcher3,而是希望保留两个Launcher,但设置默认启动器为我自己的Launcher,应该怎么做? 2. 在Android 11中,除了修改`config_defaultHomeApp`,还有哪些设置默认Launcher的方法? 3. 在Rockchip平台上,是否有其他特定的配置方式? 4. 如果使用Android.bp文件来预置apk,应该如何写? 5. 如何验证默认Launcher已经设置成功?</think>### 在RK3566设备上更改Android 11默认Launcher的步骤 #### 1. **创建Launcher目录** 在Android源码目录下创建专属目录: ```bash cd android/vendor/rockchip/common/apps/ mkdir hybLauncher # 目录名需与APK文件名一致 ``` #### 2. **放置APK文件** 将自定义Launcher的APK文件放入目录并重命名: ```bash cp /path/to/your_launcher.apk hybLauncher/hybLauncher.apk ``` **要求**:APK文件名必须与目录名完全相同(不含扩展名)。 #### 3. **编写编译脚本** 在`hybLauncher/`目录下创建`Android.mk`文件: ```makefile LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hybLauncher # 必须与目录名相同 LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(LOCAL_MODULE).apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_CERTIFICATE := PRESIGNED # 使用APK原有签名 LOCAL_DEX_PREOPT := false # 禁用预优化 include $(BUILD_PREBUILT) ``` #### 4. **修改系统配置** 在设备配置文件中移除原Launcher并添加新Launcher(以`rk3566`设备为例): ```bash vim device/rockchip/rk356x/device.mk ``` 修改内容: ```makefile # 移除默认Launcher3 PRODUCT_PACKAGES := \ $(filter-out Launcher3, $(PRODUCT_PACKAGES)) # 添加自定义Launcher PRODUCT_PACKAGES += \ hybLauncher ``` #### 5. **设置默认Launcher** 在框架层覆盖配置(**关键步骤**): ```bash mkdir -p device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/ vim device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml ``` 添加内容: ```xml <?xml version="1.0" encoding="utf-8"?> <resources> <!-- 替换为你的Launcher包名和主Activity --> <string name="config_defaultHomeApp" translatable="false">com.example.hybLauncher/.MainActivity</string> </resources> ``` #### 6. **编译并烧写固件** ```bash source build/envsetup.sh lunch rk3566_s-userdebug # 选择对应目标 make -j$(nproc) # 编译 ./rkflash.sh # 使用Rockchip工具烧写 ``` #### 验证步骤 - 开后观察是否直接进入自定义Launcher - 执行以下命令检查默认Home应用: ```bash adb shell cmd package resolve-activity -a android.intent.action.MAIN -c android.intent.category.HOME ``` ### 常见问题解决 1. **编译时报错`LOCAL_CERTIFICATE`不匹配** - 若使用平台签名:改为`LOCAL_CERTIFICATE := platform` - 若需重新签名:在`Android.mk`中添加`LOCAL_CERTIFICATE := YOUR_SIGNATURE` 2. **开后出现Launcher选择弹窗** 检查`config_defaultHomeApp`是否配置正确,确保: - 包名和Activity路径完全匹配 - 已通过`PRODUCT_PACKAGES`移除原Launcher3 3. **APK未预装到系统中** 确认`PRODUCT_PACKAGES`中是否包含模块名,并检查`Android.mk`文件名拼写。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值