系统版本: Android4.2
一. 修改版本号
1. app文件路径 :/packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java
setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY); //这里显示版本号的地方
2 定位Build 类所在的位置
文件路径:frameworks/base/core/java/android/os/Build.java
public static final String DISPLAY = getString("ro.build.display.id") //DISPLAY 参数赋值的地方
3. getString 是根据 系统内部/system/build.prop 文件去获取信息的
此文件的参数是由所在的源码路径: /build/tools/buildinfo.sh所赋值
echo "ro.build.display.id=$BUILD_DISPLAY_ID"
4. 确定 BUILD_DISPLAY_ID 赋值的地方 : build/core/Makefile
BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER)
5.确定BUILD_NUMBER赋值的地方 :build/core/version_defaults.mk
BUILD_NUMBER := eng.$(USER).$(shell date +%Y%m%d.%H%M%S)
修改 build/core/Makefile BUILD_DISPLAY_ID 参数即可
想修改/system//build.prop 文件其他的内容 例如ro.build.user, ro.build.host 这两个参数 可以直接到/build/tools/buildinfo.sh 文件,再去定位对应参数的赋值情况然后去修改
二. 修改内核信息
内核信信息可以通过cat /proc/version 去查看
1 源码对应的路径 ./kernel/init/version.c
const char linux_banner[] =
"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
显示的格式是按照这个数值的信息来输出的 进一步定位 要修改的参数,例如用户信息LINUX_COMPILE_BY
2 以修改 LINUX_COMPILE_BY 为例
grep -nr "LINUX_COMPILE_BY" ./
发现有两个文件与他相关
文件:/kernel/include/generated/compile.h
#define LINUX_COMPILE_BY xxxx //其实这个宏的生成是依据下面这个文件的
文件 ./kernel/scripts/mkcompile_h
LINUX_COMPILE_BY=$(whoami | sed 's/\\/\\\\/') //真正修改的地方