summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjhenrique09 <jhsv09@gmail.com>2022-03-19 19:40:40 +0000
committerJulian Veit <claymore1298@gmail.com>2023-04-15 08:00:08 +0200
commit4c06a040222ccdc76049427e0bb62f0718209f96 (patch)
tree264ee0060f9ea4a74b859da53438084903754efd
parentc975920af349cb00e6989b9d952dba218d5dec20 (diff)
core: Add more props for snet spoofing
Also reformat code Change-Id: I98aafcc2c1d8dae1448ecf3c18981fb7945599ba Former-commit-id: 72351d5aebdd5ed340429bb7228ec0ce5fc55318 Former-commit-id: acefb8c963d303ba91fbe861728860b51c7c5917 Change-Id: Ida0903a5be31542f2562a920141f0cf7da5ab729
-rw-r--r--init/property_service.cpp98
1 files changed, 57 insertions, 41 deletions
diff --git a/init/property_service.cpp b/init/property_service.cpp
index 87af200cab..60227354e2 100644
--- a/init/property_service.cpp
+++ b/init/property_service.cpp
@@ -799,45 +799,55 @@ static void load_override_properties() {
}
static const char *snet_prop_key[] = {
- "ro.boot.vbmeta.device_state",
- "ro.boot.verifiedbootstate",
- "ro.boot.flash.locked",
- "ro.boot.selinux",
- "ro.boot.veritymode",
- "ro.boot.warranty_bit",
- "ro.warranty_bit",
- "ro.debuggable",
- "ro.secure",
- "ro.build.type",
- "ro.build.keys",
- "ro.build.tags",
- "ro.system.build.tags",
- "ro.vendor.boot.warranty_bit",
- "ro.vendor.warranty_bit",
- "vendor.boot.vbmeta.device_state",
- "vendor.boot.verifiedbootstate",
- NULL
+ "ro.boot.vbmeta.device_state",
+ "ro.boot.verifiedbootstate",
+ "ro.boot.flash.locked",
+ "ro.boot.selinux",
+ "ro.boot.veritymode",
+ "ro.boot.warranty_bit",
+ "ro.warranty_bit",
+ "ro.debuggable",
+ "ro.secure",
+ "ro.build.type",
+ "ro.system.build.type",
+ "ro.system_ext.build.type",
+ "ro.vendor.build.type",
+ "ro.product.build.type",
+ "ro.odm.build.type",
+ "ro.build.keys",
+ "ro.build.tags",
+ "ro.system.build.tags",
+ "ro.vendor.boot.warranty_bit",
+ "ro.vendor.warranty_bit",
+ "vendor.boot.vbmeta.device_state",
+ "vendor.boot.verifiedbootstate",
+ NULL
};
static const char *snet_prop_value[] = {
- "locked", // ro.boot.vbmeta.device_state
- "green", // ro.boot.verifiedbootstate
- "1", // ro.boot.flash.locked
- "enforcing", // ro.boot.selinux
- "enforcing", // ro.boot.veritymode
- "0", // ro.boot.warranty_bit
- "0", // ro.warranty_bit
- "0", // ro.debuggable
- "1", // ro.secure
- "user", // ro.build.type
- "release-keys", // ro.build.keys
- "release-keys", // ro.build.tags
- "release-keys", // ro.system.build.tags
- "0", // ro.vendor.boot.warranty_bit
- "0", // ro.vendor.warranty_bit
- "locked", // vendor.boot.vbmeta.device_state
- "green", // vendor.boot.verifiedbootstate
- NULL
+ "locked", // ro.boot.vbmeta.device_state
+ "green", // ro.boot.verifiedbootstate
+ "1", // ro.boot.flash.locked
+ "enforcing", // ro.boot.selinux
+ "enforcing", // ro.boot.veritymode
+ "0", // ro.boot.warranty_bit
+ "0", // ro.warranty_bit
+ "0", // ro.debuggable
+ "1", // ro.secure
+ "user", // ro.build.type
+ "user", // ro.system.build.type
+ "user", // ro.system_ext.build.type
+ "user", // ro.vendor.build.type
+ "user", // ro.product.build.type
+ "user", // ro.odm.build.type
+ "release-keys", // ro.build.keys
+ "release-keys", // ro.build.tags
+ "release-keys", // ro.system.build.tags
+ "0", // ro.vendor.boot.warranty_bit
+ "0", // ro.vendor.warranty_bit
+ "locked", // vendor.boot.vbmeta.device_state
+ "green", // vendor.boot.verifiedbootstate
+ NULL
};
static void workaround_snet_properties() {
@@ -846,16 +856,22 @@ static void workaround_snet_properties() {
// Weaken property override security to set safetynet props
weaken_prop_override_security = true;
- std::string error;
+ std::string error;
- // Hide all sensitive props if not eng build
+ // Hide all sensitive props if not eng build
if (build_type != "eng") {
- LOG(INFO) << "snet: Hiding sensitive props";
- for (int i = 0; snet_prop_key[i]; ++i) {
+ LOG(INFO) << "snet: Hiding sensitive props";
+ for (int i = 0; snet_prop_key[i]; ++i) {
PropertySet(snet_prop_key[i], snet_prop_value[i], &error);
- }
+ }
}
+ // Extra pops
+ std::string build_flavor_key = "ro.build.flavor";
+ std::string build_flavor_value = android::base::GetProperty(build_flavor_key, "");
+ build_flavor_value = android::base::StringReplace(build_flavor_value, "userdebug", "user", false);
+ PropertySet(build_flavor_key, build_flavor_value, &error);
+
// Restore the normal property override security after safetynet props have been set
weaken_prop_override_security = false;
}