以下都是基于高通平台
一,Android.mk 中添加
新增自己的参考系统的device/qcom/xxxx/xxxx.mk
#target specific runtime prop for qspm
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.qspm.enable=true
二,脚本添加。
build/tools/buildinfo.sh 里面很多可以参考。
二,cmdline 中添加。
对于系统serials no 参考
Android sn 号修改_安卓sn序列号修改-CSDN博客
对于其他的比如说
static void ExportKernelBootProps() {constexpr const char* UNSET = "";struct {const char* src_prop;const char* dst_prop;const char* default_value;} prop_map[] = {// clang-format off{ "ro.boot.serialno", "ro.serialno", UNSET, },{ "ro.boot.xxxx", "ro.xxxx", UNSET, },{ "ro.boot.mode", "ro.bootmode", "unknown", },{ "ro.boot.baseband", "ro.baseband", "unknown", },{ "ro.boot.bootloader", "ro.bootloader", "unknown", },{ "ro.boot.hardware", "ro.hardware", "unknown", },{ "ro.boot.revision", "ro.revision", "0", },// clang-format on};for (const auto& prop : prop_map) {std::string value = GetProperty(prop.src_prop, prop.default_value);if (value != UNSET) InitPropertySet(prop.dst_prop, value);}
}
ro.revision 属性。我用上面两种方式方式修改,发现是不生效的,为什么呢,代码里面会把ro.boot.revision赋值给ro.revision.
那我参考上面方式,直接ro.boot.revision 这个可以吗,发现也不行,vendor 修改selinux 不通过。qssi 修改,直接不生效,莫名其妙。有知道的可以解答下。
最后我参考系统的方案。在cmdline 中添加。
device/qcom/xxxx/Boardconfig 中,加一个行。
BOARD_KERNEL_CMDLINE := androidboot.revision=EVT console=ttyMSM0,115200n8 androidboot.hardware=qcom androidboot.console=ttyMSM0 androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 service_locator.enable=1 androidboot.usbcontroller=a600000.dwc3 swiotlb=0 loop.max_part=7 cgroup.memory=nokmem,nosocket pcie_ports=compat loop.max_part=7 iptable_raw.raw_before_defrag=1 ip6table_raw.raw_before_defrag=1
注意是androidboot.revision=EVT ,因为上层会自动吧androidboot 替换成ro.boot.