Property Hexpatch Engine & Partition Normalization
Absorbs techniques from sensitive-props-crontabs to cover detection vectors that resetprop alone can't handle.
Hexpatch scrubbing — propclean.sh uses magiskboot hexpatch to binary-patch property names in /dev/__properties__/ shared memory. Unlike resetprop --delete, this destroys the property name itself (replaced with random hex), making it invisible to any app enumerating properties. Targets 48 custom ROM/kernel/framework fingerprint strings (LineageOS, GrapheneOS, LSPosed, Franco, etc.).
Partition-wide normalization — Sets build.type=user, build.tags=release-keys across all 9 partition prefixes (system, vendor, product, odm, oem, bootimage, system_ext, vendor_dlkm, odm_dlkm). Strips aosp_, eng., test-keys, userdebug, dev-keys from build fingerprints and display props.
New props spoofed:
ro.is_ever_orange(OnePlus unlock history)ro.oem_unlock_supportedro.secureboot.devicelock- MIUI cross-region fix (
ro.boot.hwc/ro.boot.hwcountryCN → GLOBAL) - 3 additional recovery boot mode variants
init.svc.adbd→ stopped,init.svc.adb_roothexpatch-destroyed
PI-fix leftovers — Hexpatch-destroys props left behind by other Play Integrity modules (pihook, pixelprops, eliteprops, spoof.gms).
Daemon periodic cleanup — PropCleanTask re-runs propclean.sh hourly (configurable via propclean.interval), replacing the crontab approach. Gracefully skips if magiskboot unavailable.
Tested on Redmi pond_global (Android 15, KSU Next 33024).