16k kernel dev option changes ro.build.fingerprint

When someone uses the 16kb dev option, they switch
out the kernel, but the same build is used. Make
sure this is visible in the fingerprint to help
split up any analytics or reports.

Bug: 332406754
Test: no change on normal device, on 16k dev option device:

:) adb shell getprop ro.product.build.16k_page.enabled
true
:) adb shell getconf PAGE_SIZE
16384
:) adb shell getprop ro.build.fingerprint
generic/aosp_cf_x86_64_phone_pgagnostic_16kb/vsoc_x86_64_pgagnostic:VanillaIceCream/MAIN.b7aab5e4/eng.smorel.20240514.203625:userdebug/test-keys
                                       ^^^^^^
             ----------------------------/

cheers

Change-Id: I9632237cef4a3b077761022eda8cf42784a41753
This commit is contained in:
Steven Moreland 2024-05-15 20:03:53 +00:00
parent 9fbd7e1026
commit 188d59a919

View file

@ -974,6 +974,17 @@ static std::string ConstructBuildFingerprint(bool legacy) {
std::string build_fingerprint = GetProperty("ro.product.brand", UNKNOWN);
build_fingerprint += '/';
build_fingerprint += GetProperty("ro.product.name", UNKNOWN);
// should be set in /product/etc/build.prop
// when we have a dev option device, and we've switched the kernel to 16kb mode
// we use the same system image, but we've switched out the kernel, so make it
// visible at a high level
bool has16KbDevOption =
android::base::GetBoolProperty("ro.product.build.16k_page.enabled", false);
if (has16KbDevOption && getpagesize() == 16384) {
build_fingerprint += "_16kb";
}
build_fingerprint += '/';
build_fingerprint += GetProperty("ro.product.device", UNKNOWN);
build_fingerprint += ':';