|
1 | 1 | #!/system/bin/sh |
2 | 2 |
|
| 3 | +fixSPL() { |
| 4 | + if [ "$(getprop ro.product.cpu.abi)" = "armeabi-v7a" ]; then |
| 5 | + setprop ro.keymaster.mod 'AOSP on ARM32' |
| 6 | + else |
| 7 | + setprop ro.keymaster.mod 'AOSP on ARM64' |
| 8 | + fi |
| 9 | + img="$(find /dev/disk -type l -name kernel"$(getprop ro.boot.slot_suffix)" | grep by-partlabel | head -n 1)" |
| 10 | + [ -z "$img" ] && img="$(find /dev/disk -type l -name boot"$(getprop ro.boot.slot_suffix)" | grep by-partlabel | head -n 1)" |
| 11 | + [ -z "$img" ] && img="$(find /dev/block -type l -name kernel"$(getprop ro.boot.slot_suffix)" | grep by-name | head -n 1)" |
| 12 | + [ -z "$img" ] && img="$(find /dev/block -type l -name boot"$(getprop ro.boot.slot_suffix)" | grep by-name | head -n 1)" |
| 13 | + if [ -n "$img" ]; then |
| 14 | + #Rewrite SPL/Android version if needed |
| 15 | + Arelease="$(getSPL "$img" android)" |
| 16 | + setprop ro.keymaster.xxx.release "$Arelease" |
| 17 | + setprop ro.keymaster.xxx.security_patch "$(getSPL "$img" spl)" |
| 18 | + |
| 19 | + getprop ro.vendor.build.fingerprint | grep -qiE '^samsung/' && return 0 |
| 20 | + for f in \ |
| 21 | + /vendor/lib64/hw/android.hardware.keymaster@3.0-impl-qti.so /vendor/lib/hw/android.hardware.keymaster@3.0-impl-qti.so \ |
| 22 | + /system/lib64/vndk-26/libsoftkeymasterdevice.so /vendor/bin/teed \ |
| 23 | + /system/lib64/vndk/libsoftkeymasterdevice.so /system/lib/vndk/libsoftkeymasterdevice.so \ |
| 24 | + /system/lib/vndk-26/libsoftkeymasterdevice.so \ |
| 25 | + /system/lib/vndk-27/libsoftkeymasterdevice.so /system/lib64/vndk-27/libsoftkeymasterdevice.so; do |
| 26 | + [ ! -f "$f" ] && continue |
| 27 | + b="$(echo "$f" | tr / _)" |
| 28 | + |
| 29 | + cp -a "$f" "/data/phh/$b" |
| 30 | + sed -i \ |
| 31 | + -e 's/ro.build.version.release/ro.keymaster.xxx.release/g' \ |
| 32 | + -e 's/ro.build.version.security_patch/ro.keymaster.xxx.security_patch/g' \ |
| 33 | + -e 's/ro.product.model/ro.keymaster.mod/g' \ |
| 34 | + "/data/phh/$b" |
| 35 | + mount -o bind "/data/phh/$b" "$f" |
| 36 | + done |
| 37 | + if [ "$(getprop init.svc.keymaster-3-0)" = "running" ]; then |
| 38 | + setprop ctl.restart keymaster-3-0 |
| 39 | + fi |
| 40 | + if [ "$(getprop init.svc.teed)" = "running" ]; then |
| 41 | + setprop ctl.restart teed |
| 42 | + fi |
| 43 | + fi |
| 44 | +} |
| 45 | + |
| 46 | +mkdir -p /data/phh/ |
| 47 | +mount -t tmpfs -o rw,nodev,relatime,mode=755,gid=0 none /data/phh || true |
| 48 | +mkdir /data/phh/empty_dir |
| 49 | +fixSPL |
| 50 | + |
3 | 51 | if grep -qF android.hardware.boot /vendor/manifest.xml || grep -qF android.hardware.boot /vendor/etc/vintf/manifest.xml ;then |
4 | 52 | bootctl mark-boot-successful |
5 | 53 | fi |
0 commit comments