RK3399 Android7.1修改安兔兔等第三方软件读到的内核版本信息
内核版本信息可以通过adb进入shell查看:
cat /proc/version
其定义是在kernel/fs/proc/version.c和kernel/init/version.c两个文件中。
kernel/init/version.c中如下代码:
const char linux_proc_banner[] =
"%s version %s"
" (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ")"
" (" LINUX_COMPILER ") %s\n";
以上就是内核版本的组成格式,其中的宏定义可以从内核代码中找到。另外几个格式符(%s)的内容就是在kernel/fs/proc/version.c中的如下代码中合成:
static int version_proc_show(struct seq_file *m, void *v)
{
seq_printf(m, linux_proc_banner,
utsname()->sysname,
utsname()->release,
utsname()->version);
return 0;
}
3个%s分别对应“utsname()->sysname”,“ utsname()->release”,“utsname()->version)”三个变量信息。
如果想要修改内核版本信息,可以直接在以上两个代码段中修改为字符串即可。
如果改动较大,系统设置中的内核版本号可能会显示不出来,这时候需要在“frameworks\base\packages\SettingsLib\src\com\android\settingslib\DeviceInfoUtils.java”中配合修改代码,才能正常显示。如下部分代码:
public static String formatKernelVersion(String rawKernelVersion) {
// Example (see tests for more):
// Linux version 3.0.31-g6fb96c9 (android-build@xxx.xxx.xxx.xxx.com) \
// (gcc version 4.6.x-xxx 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT \
// Thu Jun 28 11:02:39 PDT 2012
final String PROC_VERSION_REGEX =
"Linux version (\\S+) " + /* group 1: "3.0.31-g6fb96c9" */
"\\((\\S+?)\\) " + /* group 2: "x@y.com" (kernel builder) */
"(?:\\(gcc.+? \\)) " + /* ignore: GCC version information */
"(#\\d+) " + /* group 3: "#1" */
"(?:.*?)?" + /* ignore: optional SMP, PREEMPT, and any CONFIG_FLAGS */
"((Sun|Mon|Tue|Wed|Thu|Fri|Sat).+)"; /* group 4: "Thu Jun 28 11:02:39 PDT 2012" */
Matcher m = Pattern.compile(PROC_VERSION_REGEX).matcher(rawKernelVersion);
if (!m.matches()) {
Log.e(TAG, "Regex did not match on /proc/version: " + rawKernelVersion);
return "Unavailable";
} else if (m.groupCount() < 4) {
Log.e(TAG, "Regex match on /proc/version only returned " + m.groupCount()
+ " groups");
return "Unavailable";
}
return m.group(1) + "\n" + // 3.0.31-g6fb96c9
m.group(2) + " " + m.group(3) + "\n" + // x@y.com #1
m.group(4); // Thu Jun 28 11:02:39 PDT 2012
}
以上代码中的版本号格式“PROC_VERSION_REGEX” 是与内核中的“linux_proc_banner”呼应的,如果对应不上,系统设置中就无法正确识别和显示了。
如果只修改系统设置中的内核版本号可以只修改这个DeviceInfoUtils.java文件即可(直接在return后面修改即可)。如果修改使所有app生效,就需要修改内核中的配置了。
RK3399 Android7.1修改安兔兔等第三方软件读到的内核版本信息相关推荐
- RK3399 Android7.1修改安兔兔等读到的cpu最大频率为1.992GHz
RK3399最大频率为1.8GHz,可修改安兔兔等第三方应用读到的cpu最大频率值为1.992GHz,不影响实际运行频率. diff --git a/kernel/drivers/cpufreq/cp ...
- [RK3399][Android7.1]修改系统配置同时输出Speaker和USB音频
参考链接:Android7.1 音频声音控制策略 参考文中给了两种方法,第一种没有成功,第二种成功了.第一种可能是参数给错了,例子给的是Speaker和耳机,我需要的是Speaker和USB音频. 第 ...
- rk3399 Android7.1 修改系统时区、修改默认输入法、修改系统默认语言
1.修改默认语言 进入源码目录,使用如下命令 root@ubuntu:/3399_backup/g3399-v7-1-2-20180529_backup# find . -name full_base ...
- RK3399 Android7.1修改系统默认USB功能
在device\rockchip\common\device.mk中修改persist.sys.usb.config的值,如下将USB功能默认设置为MTP(去掉ADB): ifeq ($(strip ...
- android7.1自带壁纸,RK3399 Android7.1 修改壁纸
1.自定义壁纸 默认壁纸是default_wallpaper,在/frameworks/base/core/res/res,找到drawable-sw720dp-nodpi .drawable-sw6 ...
- RK3399 Android7.1修改序列号从eMMC中读取
若使用RK提供的序列号烧写工具烧写的序列号,则需要修改系统从eMMC/flash中读取烧写的序列号.如下: diff --git a/system/core/drmservice/drmservice ...
- RK3399 Android7.1修改系统串口设备的权限
在device\rockchip\common\ueventd.rockchip.rc中添加代码修改对应串口设备的权限,例如: # for uart /dev/ttyS1 ...
- RK3399 Android7.1修改系统电池容量值
修改device\rockchip\common\overlay\frameworks\base\core\res\res\xml\power_profile.xml中"<item n ...
- RK3399 Android7.1修改系统默认壁纸
替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg 替换frameworks/base/core/res/res/d ...
最新文章
- b站看那个的python_用Python获取B站播放历史记录 !男友居然天天背着我看这些!...
- office web apps 只有64bit
- js断点和调试学习总结3
- 软件工程---第四章---形式化分析
- python使用欧氏距离knn_python运用sklearn实现KNN分类算法
- iframe高度自适应,终于解决了
- Hive问题汇总记录,持续更新
- java静态初始化块无法直接调用,关于JAVA静态初始化块,初始化块,构造器调用顺序的有关问题...
- linux上如何查看具体的命令属于哪个安装包
- Anaconda中使用图形化界面创建虚拟环境
- python tensorflow 智能家居_用GPU加速深度学习: Windows安装CUDA+TensorFlow教程
- quartus仿真34:74161构成长度为10的序列发生器
- 手机万能摄像头ip搜索工具_一款 APP,130 多种功能,让你的手机秒变万能工具箱...
- mysql进阶教程pdf_SQL进阶教程 (MICK著) 高清pdf完整版
- 笔记本护眼设置——全面攻略(保护视力)(笔者倾情奉献+强烈推荐)
- gen-cpp/.deps/ChildService.Plo: No such file or directory
- 1024程序员节日随笔
- 用Python做九宫格照片
- 如何阅读论文?读论文的三个层次
- 广东药科大学计算机专业分数线,2016广东药科大学录取分数线_省内分数线
热门文章
- Altium designer18系列教程一 建工程和封装介绍
- win7无线热点_智能手机变成台式电脑的无线网卡来使用并连接WIFI上网的方法
- matlab圆周运动仿真,Matlab软件在推导匀速圆周运动方程及绘制图像上的应用
- 枝枝叶梗高傲的顶着莲蓬像是
- SQL Server中已满事务日志原因的检测
- string数据库使用和实践第三部分数据处理 流程-参数--后续分析
- ALM系统介绍(三)
- xampp control-panel深深的坑
- 墨客FileStorm生态与四块科技生态联合发布会
- aseprite手机版_texture packs泰拉瑞亚