Android 8.1 相关修改
一些常用修改,做个记录,为了节约时间和防止踩坑。
一、修改默认中文
修改位置:
build\make\target\product\full_base.mk
修改内容:# Put en_US first in the list, so make it default.
PRODUCT_LOCALES := zh_CN
注意: 如果修改无效,请使用find ./ -name "*.mk" | xargs grep "PRODUCT_LOCALES"进行全局搜索,找一找是否有其它位置会覆盖修改内容
二、修改默认时区
修改位置:
device\rockchip\rk3326\device-common.mk
修改内容:persist.sys.timezone = Asia/Shanghai
注意: 如果修改无效,请使用find ./ -name "*.mk" | xargs grep "persist.sys.timezone"进行全局搜索,找一找是否有其它位置会覆盖修改内容
三、修改永不息屏
方法一(可能不生效):修改位置:
device\rockchip\rk3326\device-common.mk
修改内容 :ro.rk.screenoff_time=60000
方法二(可能不生效):修改位置:
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
修改内容:<integer name="def_screen_off_timeout">60000</integer>
方法三(我生效的位置):修改位置:
device\rockchip\rk3326\overlay\frameworks\base\packages\SettingsProvider\res\values\defaults.xml
修改内容:<integer name="def_screen_off_timeout">60000</integer>
网上查了很多办法,也调试了很多地方,方法三的修改最终生效,应该是数据覆盖的原因吧。
四、修改最大音量级别和默认音量级别
1、最大音量级别修改位置:
framework/base/services/core/java/com/android/server/audio/AudioService.java
最大音量级别修改内容:在AudioService.java文件中的MAX_STREAM_VOLUME中,将数值修改为100,分100级,每次调1级。/** Maximum volume index values for audio streams */
private static int[] MAX_STREAM_VOLUME = new int[] {
5, // STREAM_VOICE_CALL
7, // STREAM_SYSTEM
7, // STREAM_RING
15, // STREAM_MUSIC
7, // STREAM_ALARM
7, // STREAM_NOTIFICATION
15, // STREAM_BLUETOOTH_SCO
7, // STREAM_SYSTEM_ENFORCED
15, // STREAM_DTMF
15, // STREAM_TTS
15 // STREAM_ACCESSIBILITY
};
2、默认音量级别修改位置:
frameworks/base/media/java/android/media/AudioSystem.java
默认音量级别修改内容:在AudioSystem.java文件中的DEFAULT_STREAM_VOLUME中,修改数值,该数值即为默认音量public static int[] DEFAULT_STREAM_VOLUME = new int[] {
4, // STREAM_VOICE_CALL
7, // STREAM_SYSTEM
5, // STREAM_RING
5, // STREAM_MUSIC
6, // STREAM_ALARM
5, // STREAM_NOTIFICATION
7, // STREAM_BLUETOOTH_SCO
7, // STREAM_SYSTEM_ENFORCED
5, // STREAM_DTMF
5, // STREAM_TTS
5, // STREAM_ACCESSIBILITY
};
五、隐藏顶部状态栏电量图标
修改位置:
framework/base/SystemUI/src/com/android/systemui/BatteryMeterView.java
修改内容:
六、修改开机logo
修改位置:
kernel\logo.bmp
kernel\logo_kernel.bmp
修改内容:更换logo.bmp和logo_kernel.bmp这两张图即可,logo必须是bmp图,注意图片分辨率不要超出屏幕分辨率
七、修改开机动画
修改位置:
device/rockchip/common/BoardConfig.mk
device/rockchip/common/bootshutdown/bootshutdown.mk
device/rockchip/common/bootshutdown/bootanimation.zip
device/rockchip/common/bootshutdown/shutdownanimation.zip
修改内容:1、将 BoardConfig.mk 中的 BOOT_SHUTDOWN_ANIMATION_RINGING 置为 true
2、RK已经帮我们写好了bootshutdown.mk文件,其实就是文件拷贝,内容如下
CUR_PATH := device/rockchip/common/bootshutdown
HAVE_BOOT_ANIMATION := $(shell test -f $(CUR_PATH)/bootanimation.zip && echo yes)
HAVE_SHUTDOWN_ANIMATION := $(shell test -f $(CUR_PATH)/shutdownanimation.zip && echo yes)
ifeq ($(HAVE_BOOT_ANIMATION), yes)
PRODUCT_COPY_FILES += $(CUR_PATH)/bootanimation.zip:$(TARGET_COPY_OUT_OEM)/media/bootanimation.zip
endif
ifeq ($(HAVE_SHUTDOWN_ANIMATION), yes)
PRODUCT_COPY_FILES += $(CUR_PATH)/shutdownanimation.zip:$(TARGET_COPY_OUT_OEM)/media/shutdownanimation.zip
endif
3、我们只需把开机动画bootanimation.zip和关机动画shutdownanimation.zip放到device/rockchip/common/bootshutdown/路径下即可制作 bootanimation.zip:
1、bootanimation.zip包含part0文件夹和desc.txt,也可能包含part0、part1,我这里只用了一个,其目录如下
2、part0文件夹中放置动画图片,注意动画图片分辨率不要超过屏幕分辨率
3、desc.txt中第一行1024 600 9,其中1024 600代表像素,即1024*600,9代表每秒钟播9张图片;第二行p 0 0 part0,p固定开头,第一个0为重复播放次数,0代表无限播放,如果为3代表播放三次,第二个0代表的是前后两帧之间间隔时间/帧数;最后的part0代表动画图文件夹
4、同时选中part0和desc.txt,鼠标右击,选择"添加到压缩文件",压缩文件格式选择”ZIP“,压缩方式选择”存储“。压缩完成后打开看下,里面不要有bootanimation文件夹
注意:desc.txt内容写完,鼠标放到最后一行内容最后面,回车一下,然后在保存文件,否则设备无法解析,这是个巨坑!!!
八、user/userdebug版本下编译内容区分
目的:只需在userdebug版本下编译进某些应用,比如产测apk,user版本下不需要编译进去
修改位置:
build\target\product\core.mk
修改内容:ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += \
DeviceTest
endif
其中ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))代表DeviceTest这个应用在userdebug或者eng版本下才会编译进来,user版本下不会编译进来如果只在user版本下编译进来,则修改成ifneq (,$(filter user,$(TARGET_BUILD_VARIANT)))即可
九、修改固件包版本号
修改位置:
device\rockchip\rk3326\device-common.mk
修改内容:PRODUCT_PROPERTY_OVERRIDES += \
ro.product.version = 0.0.3 \
ro.product.ota.host = www.rockchip.com:2300
其中ro.product.version = 0.0.3就是版本号,可通过adb shell getprop查看
十、开机时间优化
1、配置32位系统和系统裁剪,请参考以下链接。精简版固件包只有800多M
Rockchip Android平台内存优化及系统裁剪_build_with_go_opt-CSDN博客
Rockchip PX30/RK3326 Android开机时间优化_android rk356x开机优化-CSDN博客
2、 BOOT TIMEOUT
按照第1步精简系统后,使用原生Launcher和SystemUI,系统开机时间只有15s。后来集成第三方Launcher+第三方SystemUI+其它应用,共计200多M,集成到系统中开机时间达到了46s,明显感觉不对。于是使用Logcat抓日志,果然有发现问题。
在日志中有发现BOOT TIMEOUT......超时了?百度了下,找到了解决办法:
修改位置:
frameworks\base\core\res\res\values\config.xml
修改内容:<!-- True if WallpaperService is enabled -->
<bool name="config_enableWallpaperService">false</bool>
修改后,开机时间由46s变成21s,解决问题。
————————————————
相关文章:
Android 8.1 相关修改
一些常用修改,做个记录,为了节约时间和防止踩坑。 一、修改默认中文 修改位置: build\make\target\product\full_base.mk 修改内容: # Put en_US first in the list, so make it default. PRODUCT_LOCALES : zh_…...

EG-2121CA (晶体振荡器 低抖动表面声波(SAW)振荡器)
在当今高度数字化的时代,稳定的信号传输显得尤为重要。若要实现信号的稳定传输,晶体振荡器必不可少。EG-2121CA,它是一款低抖动表面声波(SAW)振荡器设计的产品,凭借其出色的频率范围、稳定的电源电压和可靠…...

Django知识随笔
目录 1.如何再ajax中传输post数据? 2.在form表单中使用jquery序列化,input框过多。 1.如何再ajax中传输post数据? 在ajax传递的那个网址,会调用你路由的视图函数,在视图函数上面加一句 csrf_exempt 。写上之后会有提…...

Facebook 广告帐户:多账号运营如何防止封号?
Facebook目前是全球最受欢迎的社交媒体平台之一,拥有超过27亿活跃用户。因此,它已成为个人和企业向全球受众宣传其产品和服务的重要平台。 然而,Facebook 制定了广告商必须遵守的严格政策和准则,以确保其广告的质量和相关性&…...

酷开会员 | 用酷开系统点亮多彩休闲时刻
现代人的休闲方式多种多样,随着科技的发展和生活水平的提高,人们有了更多的选择。而电视,作为一个休闲娱乐的载体,在生活中扮演着重要的角色。 以前,电视是家家户户休闲娱乐的重要组成部分,现在࿰…...
分配土地(100%用例)C卷(JavaPythonC++Node.jsC语言)
从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种不同的数字。某天集体村民决定将覆盖相同数字的最小矩阵形的土地的分配给为村里做出巨大贡献的村民,请问,此次分配士地,做出贡献的村民中最大会分配多大面积? 输入描述: 第一行输入m和n,m代表村子的土…...

电源的纹波
【电源的“纹波”到底是什么?-哔哩哔哩】 https://b23.tv/28IIbtU 严谨的说,只有中间这种是纹波。 两类电源 线性电源通过自动调节内部电阻,修改输出电压,可以降低输入电压的波动。开关电源的原理,就会产生纹波。纹波…...

85.网游逆向分析与插件开发-物品使用-物品使用的逆向分析与C++代码的封装
内容参考于:易道云信息技术研究院VIP课 上一个内容:项目需求与需求拆解-CSDN博客 码云地址(ui显示角色数据 分支):https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号:453dd83d54140d2e1ee65c9…...

JVM系列——垃圾收集器
对象存活判断 引用计数法 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。 可达性分析算法 通过一系列称为“GC …...

那些年与指针的情仇(二)---二级指针指针与数组的那点事函数指针
关注小庄 顿顿解馋(。・∀・)ノ゙ 欢迎回到我们的大型纪录片《那些年与指针的爱恨情仇》,在本篇博客中我们将继续了解指针的小秘密:二级指针,指针与数组的关系以及函数指针。请放心食用&a…...
APPCRASH 文件管理器不停重启问题记录 (最后reinstall解决)以及重装后到底会怎样
问题诱因: 时间 2024年1月 (严重怀疑,但无法实锤) 是我不知道什么时候(应该是近期)安装了powertoy的预览版,系统不知道什么时候(也应该是这两天)安装了微软出品的PC man…...
导出excel功能,前端的解决方案
import { utils, writeFileXLSX } from xlsx // 导出excel async exportToExcel() {// 获取要导出的业务数据(这里的接口自己改成实际使用的接口)const res await getRuleListAPI(this.params)// 表头英文字段key(这里的数据改成接口返回的实…...

【lesson24】MySQL索引的理解
文章目录 建立测试表插入多条记录查看插入结果中断一下---为何IO交互要是 Page重谈page理解单个page理解多个page 页目录单页情况多页情况复盘一下InnoDB 在建立索引结构来管理数据的时候,其他数据结构为何不行?B vs B聚簇索引 VS 非聚簇索引 建立测试表…...

Oracle篇—分区索引的重建和管理(第三篇,总共五篇)
☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…...
前端大厂面试题探索编辑部——第一期
目录 简介 题目 单选题 题解 A选项的Content-Security-Policy http-equiv属性 content属性 B选项的CSRF 使用CSRF Token 验证Referer和Origin头 C选项的HTTP Only D选项的防止SQL注入 输入验证和转义 简介 这个是一个长系列,我会以题目为导向ÿ…...

图扑 HT UI 5.0 全新升级,开箱即用!
为顺应数字时代的不断发展,图扑 HT UI 5.0 在原有功能强大的界面组件库的基础上进行了全面升级,融入了更先进的技术、创新的设计理念以及更加智能的功能。HT UI 5.0 使用户体验更为直观、个性化,并在性能、稳定性和安全性等方面达到新的高度。…...

数据结构----链表介绍、模拟实现链表、链表的使用
文章目录 1. ArrayList存在的问题2. 链表定义2.1 链表的概念及结构2.2 链表的组合类型 3. 链表的实现3.1 单向、不带头、非循环链表的实现3.2 双向、不带头节点、非循环链表的实现 4.LinkedList的使用4.1 什么是LinkedList4.2 LinkedList的使用4.2.1. LinkedList的构造4.2.2. L…...
微信小程序如何控制元素的显示和隐藏
目录 方式一:display 方式二:wx:if 有时在微信小程序元素的显示需要通过特定的条件,比如组件的显示,通常需要在主界面有指定操作。可以通过以下两种方式控制元素的显示和隐藏。 方式一:display 在wxml或者wxss中设置display样式可以控制元素显示情况,元素默认显示,可…...
解决ssh: connect to host github.com port 22: Connection timed out
当连接 GitHub 时无法连接到 22 端口时,可以尝试将端口更换为 443 首先,尝试使用以下命令从 GitHub 克隆仓库: $ git clone gitgithub.com:xxxxx/xxxx.git my-awesome-proj如果出现以下错误信息: Cloning into my-awesome-proj…...

idea 创建 spring boot
1.创建步骤 2. 编码添加 2.1 这是自动生成的启动函数 package com.example.comxjctest4;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class Application {publi…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...