【问题标题】:Change the output of "getprop" in android adb shell在 android adb shell 中更改“getprop”的输出
【发布时间】:2018-05-26 05:35:23
【问题描述】:

当我们在 adb 中使用 getprop 时,我正在尝试更改输出。我知道 init 会从 /default.prop /system/build.prop /system/default.prop /data/local.prop 读取系统属性。就我而言,我只有 /default.prop 和 /system/build.prop。所以我所做的是获取 android 源代码并将其添加到 build/target/product/core.mk。

PRODUCT_PROPERTY_OVERRIDES :=\
ro.bootloader="PWN" \
ro.bootmode="PWN" \
ro.hardware="PWN" \
ro.kernel.qemu="PWN" \
ro.product.device="PWN" \
ro.product.model="PWN" \
ro.product.name="PWN" 

之后,我编译源代码。但结果很奇怪。我可以看到 system/build.prop 已经改变了。

# begin build properties
# autogenerated by buildinfo.sh   
ro.build.id=N2G47F
ro.build.display.id=aosp_arm-eng 7.1.2 N2G47F eng.sam.20180525.204329 
test-keys 
ro.build.version.incremental=eng.sam.20180525.204329
ro.build.version.sdk=25
ro.build.version.preview_sdk=0
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=7.1.2
ro.build.version.security_patch=2017-04-05
ro.build.version.base_os=
ro.build.date=Fri May 25 20:43:29 CST 2018
ro.build.date.utc=1527252209
ro.build.type=eng
ro.build.user=sam
ro.build.host=ubuntu
ro.build.tags=test-keys
ro.build.flavor=aosp_arm-eng
ro.product.model=AOSP on ARM Emulator
ro.product.brand=Android
ro.product.name=aosp_arm
ro.product.device=generic
ro.product.board=
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.cpu.abilist=armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=
ro.product.manufacturer=unknown
ro.product.locale=en-US
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=generic
# Do not try to parse description, fingerprint, or thumbprint
ro.build.description=aosp_arm-eng 7.1.2 N2G47F eng.sam.20180525.204329 
test-keys


ro.build.characteristics=emulator
# end build properties
#
# from build/target/board/generic/system.prop
#
#
# system.prop for generic sdk
#

rild.libpath=/system/lib/libreference-ril.so
rild.libargs=-d /dev/ttyS0

#
# ADDITIONAL_BUILD_PROPERTIES
#
keyguard.no_require_sim=true
ro.com.android.dataroaming=true
ro.config.ringtone=Ring_Synth_04.ogg
ro.config.notification_sound=pixiedust.ogg
ro.carrier=unknown
ro.bootloader=PWN
ro.bootmode=PWN
ro.hardware=PWN
ro.kernel.qemu=PWN
ro.product.device=PWN
ro.product.model=PWN
ro.product.name=PWN
ro.config.alarm_alert=Alarm_Classic.ogg
ro.ril.hsxpa=1
ro.ril.gprsclass=10
ro.adb.qemud=1
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.isa.arm.variant=generic
dalvik.vm.isa.arm.features=default
ro.kernel.android.checkjni=1
dalvik.vm.lockprof.threshold=500
dalvik.vm.image-dex2oat-filter=verify-at-runtime
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt

显然,我覆盖了属性。但是当我在 abd shell 中尝试 getprop 时,输出是这样的:

[ro.product.device]: [generic]
[ro.product.locale]: [en-US]
[ro.product.manufacturer]: [unknown]
[ro.product.model]: [AOSP on ARM Emulator]
[ro.product.name]: [aosp_arm]

[ro.bootloader]: [unknown]
[ro.bootmode]: [unknown]

我在这里只列出了一些,但我们可以看到这些属性都没有改变。这很奇怪。因为 init 应该在启动时从 build.prop 读取。有人告诉我重新编译整个系统而不是只编译sdk。我刚刚编译了整个系统,但它又失败了。这里同样的问题。我正在使用牛轧糖 7.1.2_r3。有什么帮助吗?

【问题讨论】:

    标签: android android-source android-kernel


    【解决方案1】:

    如果您在 aosp build 目录中搜索其中一些属性,您将看到它们是由 makefile 变量设置的。例如在build/make/tools/buildinfo.sh 你可以看到这一行:

    echo "ro.product.model=$PRODUCT_MODEL"
    

    它的工作原理有点复杂,但关键是你需要在你的<device>.mk 文件中设置PRODUCT_MODEL,就像谷歌在他们的文档中建议的那样:https://source.android.com/setup/develop/new-device

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 2014-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多