在 android adb shell 中更改 "getprop" 的输出
Change the output of "getprop" in android adb shell
我正在尝试在 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]
我在这里只列出了一些,但我们可以看到 none 这些属性发生了变化。这很奇怪。因为 init 在启动时应该从 build.prop 读取。有人告诉我重新编译整个系统而不是只编译 sdk。我刚刚编译了整个系统,但它又失败了。同样的问题在这里。我正在使用牛轧糖 7.1.2_r3。有帮助吗?
如果您在 aosp build
目录中搜索其中一些属性,您将看到它们是由 makefile 变量设置的。例如,在 build/make/tools/buildinfo.sh
中,您可以看到以下行:
echo "ro.product.model=$PRODUCT_MODEL"
它的工作原理有点复杂,但关键是您需要在 <device>.mk
文件中设置 PRODUCT_MODEL
,就像 Google 在其文档中建议的那样:https://source.android.com/setup/develop/new-device
我正在尝试在 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]
我在这里只列出了一些,但我们可以看到 none 这些属性发生了变化。这很奇怪。因为 init 在启动时应该从 build.prop 读取。有人告诉我重新编译整个系统而不是只编译 sdk。我刚刚编译了整个系统,但它又失败了。同样的问题在这里。我正在使用牛轧糖 7.1.2_r3。有帮助吗?
如果您在 aosp build
目录中搜索其中一些属性,您将看到它们是由 makefile 变量设置的。例如,在 build/make/tools/buildinfo.sh
中,您可以看到以下行:
echo "ro.product.model=$PRODUCT_MODEL"
它的工作原理有点复杂,但关键是您需要在 <device>.mk
文件中设置 PRODUCT_MODEL
,就像 Google 在其文档中建议的那样:https://source.android.com/setup/develop/new-device