From c57291081b0ecfb816cad5fa8b1710a3fee59a5b Mon Sep 17 00:00:00 2001 From: codeworkx Date: Wed, 3 Jan 2018 21:57:17 +0100 Subject: [PATCH] dumpling: update for oreo-mr1, support fbe decryption * use prebuilt kernel * include new blobs for crypto * use keymaster-3.0, synthetic pw, secdis Kernel sources: https://github.com/LineageOS/android_kernel_oneplus_msm8998/tree/lineage-15.1 Change-Id: Ie616b70ae07eb8476e217cbd0b9bb011767aba2d --- BoardConfig.mk | 4 +- README.md | 4 +- omni_dumpling.mk | 4 - recovery/root/init.recovery.qcom.rc | 76 ++- .../android.hardware.gatekeeper@1.0-service | Bin 0 -> 11024 bytes .../android.hardware.keymaster@3.0-service | Bin 0 -> 11024 bytes recovery/root/sbin/android.hidl.base@1.0.so | Bin 0 -> 6376 bytes recovery/root/sbin/prepdecrypt.sh | 62 ++ recovery/root/sbin/qseecomd | Bin 11560 -> 11560 bytes recovery/root/vendor/compatibility_matrix.xml | 61 ++ .../android.hardware.gatekeeper@1.0-impl.so | Bin 0 -> 19232 bytes .../hw/android.hardware.keymaster@3.0-impl.so | Bin 0 -> 40184 bytes .../vendor/lib64/libkeymasterdeviceutils.so | Bin 0 -> 14984 bytes .../vendor/lib64/libkeymasterprovision.so | Bin 0 -> 19112 bytes .../root/vendor/lib64/libkeymasterutils.so | Bin 0 -> 35632 bytes recovery/root/vendor/lib64/libtime_genoff.so | Bin ...vendor.qti.hardware.tui_comm@1.0_vendor.so | Bin 0 -> 207464 bytes recovery/root/vendor/manifest.xml | 615 ++++++++++++++++++ 18 files changed, 815 insertions(+), 11 deletions(-) create mode 100755 recovery/root/sbin/android.hardware.gatekeeper@1.0-service create mode 100755 recovery/root/sbin/android.hardware.keymaster@3.0-service create mode 100755 recovery/root/sbin/android.hidl.base@1.0.so create mode 100644 recovery/root/sbin/prepdecrypt.sh create mode 100644 recovery/root/vendor/compatibility_matrix.xml create mode 100755 recovery/root/vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so create mode 100755 recovery/root/vendor/lib64/hw/android.hardware.keymaster@3.0-impl.so create mode 100644 recovery/root/vendor/lib64/libkeymasterdeviceutils.so create mode 100644 recovery/root/vendor/lib64/libkeymasterprovision.so create mode 100644 recovery/root/vendor/lib64/libkeymasterutils.so mode change 100644 => 100755 recovery/root/vendor/lib64/libtime_genoff.so create mode 100644 recovery/root/vendor/lib64/vendor.qti.hardware.tui_comm@1.0_vendor.so create mode 100644 recovery/root/vendor/manifest.xml diff --git a/BoardConfig.mk b/BoardConfig.mk index 7ac53a3..b99cf08 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -94,9 +94,7 @@ TW_EXCLUDE_DEFAULT_USB_INIT := true TW_EXCLUDE_SUPERSU := true TW_EXTRA_LANGUAGES := true TW_INCLUDE_CRYPTO := true -TW_CRYPTO_USE_KEYMASTER_V1 := true -TW_INCLUDE_NTFS_3G := true +#TW_INCLUDE_NTFS_3G := true TW_INPUT_BLACKLIST := "hbtp_vm" TW_MAX_BRIGHTNESS := 255 -TW_NO_USB_STORAGE := true TW_THEME := portrait_hdpi diff --git a/README.md b/README.md index 6a9e256..43f036d 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,11 @@ https://github.com/lineageos/android_kernel_oneplus_msm8998/tree/lineage-15.1 ## To compile +export ALLOW_MISSING_DEPENDENCIES=true + . build/envsetup.sh && lunch omni_dumpling-eng -mka recoveryimage +mka adbd recoveryimage ## Device specifications diff --git a/omni_dumpling.mk b/omni_dumpling.mk index ef11fad..e9bc509 100644 --- a/omni_dumpling.mk +++ b/omni_dumpling.mk @@ -22,10 +22,6 @@ $(call inherit-product, build/target/product/embedded.mk) # Inherit from our custom product configuration $(call inherit-product, vendor/omni/config/common.mk) -# Time Zone data for recovery -PRODUCT_COPY_FILES += \ - bionic/libc/zoneinfo/tzdata:recovery/root/system/usr/share/zoneinfo/tzdata - ## Device identifier. This must come after all inclusions PRODUCT_DEVICE := dumpling PRODUCT_NAME := omni_dumpling diff --git a/recovery/root/init.recovery.qcom.rc b/recovery/root/init.recovery.qcom.rc index 9307903..c5c55c6 100644 --- a/recovery/root/init.recovery.qcom.rc +++ b/recovery/root/init.recovery.qcom.rc @@ -25,6 +25,9 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # +on early-init + mkdir /firmware 0771 system system + on fs wait /dev/block/platform/soc/1da4000.ufshc symlink /dev/block/platform/soc/1da4000.ufshc /dev/block/bootdevice @@ -34,19 +37,86 @@ on fs chown system system /dev/ion install_keyring + # Mount firmware + mount vfat /dev/block/bootdevice/by-name/modem /firmware ro shortname=lower uid=1000 gid=1000 dmask=227 fmask=337 + + # Only needed when we don't include all required blobs for crypto + #start prepdecrypt + setprop crypto.ready 1 + +service prepdecrypt /sbin/prepdecrypt.sh + oneshot + user root + group root + disabled + seclabel u:r:recovery:s0 + # Separate copy needed to use /sbin/linker64 instead of /system/bin/linker64 service sbinqseecomd /sbin/qseecomd + user root + group root disabled + seclabel u:r:recovery:s0 + +service hwservicemanager /sbin/hwservicemanager user root group root + disabled + onrestart setprop hwservicemanager.ready false seclabel u:r:recovery:s0 -on boot - start sbinqseecomd +service servicemanager /sbin/servicemanager + user root + group root readproc + disabled + seclabel u:r:recovery:s0 + +service keystore_auth /sbin/keystore_auth + oneshot + user system + group root + disabled + seclabel u:r:recovery:s0 + +service keystore /sbin/keystore /data/misc/keystore + user root + group root drmrpc readproc + disabled + seclabel u:r:recovery:s0 +service gatekeeper-1-0 /sbin/android.hardware.gatekeeper@1.0-service + user root + group root + disabled + seclabel u:r:recovery:s0 + +service keymaster-3-0 /sbin/android.hardware.keymaster@3.0-service + user root + group root + disabled + seclabel u:r:recovery:s0 + +on boot # Workaround for adb not coming up setprop sys.usb.config mtp,adb setprop sys.usb.config adb - + # Enable OTG write /sys/devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/usb/otg_switch 1 + +on property:crypto.ready=0 + stop sbinqseecomd + stop keymaster-3-0 + stop gatekeeper-1-0 + stop hwservicemanager + stop keystore + stop servicemanager + +on property:crypto.ready=1 + start sbinqseecomd + +on property:sys.listeners.registered=true + start hwservicemanager + start keymaster-3-0 + start gatekeeper-1-0 + start servicemanager diff --git a/recovery/root/sbin/android.hardware.gatekeeper@1.0-service b/recovery/root/sbin/android.hardware.gatekeeper@1.0-service new file mode 100755 index 0000000000000000000000000000000000000000..8cf08ff8b4aeddfc29310d5e615c1c1955b899ce GIT binary patch literal 11024 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 PN%s8`*HK}hV97rK&;CYj literal 0 HcmV?d00001 diff --git a/recovery/root/sbin/android.hardware.keymaster@3.0-service b/recovery/root/sbin/android.hardware.keymaster@3.0-service new file mode 100755 index 0000000000000000000000000000000000000000..d697540700f2e30e665227bcc1eeb13711b3b39e GIT binary patch literal 11024 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 literal 0 HcmV?d00001 diff --git a/recovery/root/sbin/prepdecrypt.sh b/recovery/root/sbin/prepdecrypt.sh new file mode 100644 index 0000000..6b84894 --- /dev/null +++ b/recovery/root/sbin/prepdecrypt.sh @@ -0,0 +1,62 @@ +#!/sbin/sh + +relink() +{ + fname=$(basename "$1") + target="/sbin/$fname" + sed 's|/system/bin/linker64|///////sbin/linker64|' "$1" > "$target" + chmod 755 $target +} + +mkdir /s +mount -t ext4 -o ro /dev/block/bootdevice/by-name/system /s + +if [ -f /s/build.prop ]; then + osver=$(grep -i 'ro.build.version.release' /s/build.prop | cut -f2 -d'=') + patchlevel=$(grep -i 'ro.build.version.security_patch' /s/build.prop | cut -f2 -d'=') + setprop ro.build.version.release "$osver" + setprop ro.build.version.security_patch "$patchlevel" +fi + +mkdir -p /vendor/lib64/hw/ + +relink /s/xbin/strace + +cp /s/lib64/android.hidl.base@1.0.so /sbin/ + +relink /s/vendor/bin/qseecomd + +cp /s/vendor/lib64/libdiag.so /vendor/lib64/ +cp /s/vendor/lib64/libdrmfs.so /vendor/lib64/ +cp /s/vendor/lib64/libdrmtime.so /vendor/lib64/ +cp /s/vendor/lib64/libGPreqcancel.so /vendor/lib64/ +cp /s/vendor/lib64/libGPreqcancel_svc.so /vendor/lib64/ +cp /s/vendor/lib64/libqisl.so /vendor/lib64/ +cp /s/vendor/lib64/libQSEEComAPI.so /vendor/lib64/ +cp /s/vendor/lib64/librpmb.so /vendor/lib64/ +cp /s/vendor/lib64/libsecureui.so /vendor/lib64/ +cp /s/vendor/lib64/libSecureUILib.so /vendor/lib64/ +cp /s/vendor/lib64/libsecureui_svcsock.so /vendor/lib64/ +cp /s/vendor/lib64/libspl.so /vendor/lib64/ +cp /s/vendor/lib64/libssd.so /vendor/lib64/ +cp /s/vendor/lib64/libStDrvInt.so /vendor/lib64/ +cp /s/vendor/lib64/libtime_genoff.so /vendor/lib64/ +cp /s/vendor/lib64/libkeymasterdeviceutils.so /vendor/lib64/ +cp /s/vendor/lib64/libkeymasterprovision.so /vendor/lib64/ +cp /s/vendor/lib64/libkeymasterutils.so /vendor/lib64/ +cp /s/vendor/lib64/vendor.qti.hardware.tui_comm@1.0_vendor.so /vendor/lib64/ +cp /s/vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so /vendor/lib64/hw/ +cp /s/vendor/lib64/hw/android.hardware.keymaster@3.0-impl.so /vendor/lib64/hw/ +cp /s/vendor/lib64/hw/gatekeeper.msm8998.so /vendor/lib64/hw/ +cp /s/vendor/lib64/hw/keystore.msm8998.so /vendor/lib64/hw/ + +cp /s/vendor/manifest.xml /vendor/ +cp /s/vendor/compatibility_matrix.xml /vendor/ + +relink /s/vendor/bin/hw/android.hardware.gatekeeper@1.0-service +relink /s/vendor/bin/hw/android.hardware.keymaster@3.0-service + +umount /s + +setprop crypto.ready 1 +exit 0 diff --git a/recovery/root/sbin/qseecomd b/recovery/root/sbin/qseecomd index 2473a734ceaaeebd1deb6029c5b26e6247c4615e..9c22507cf5ae07623e935e2274ac7e2333ad9693 100755 GIT binary patch delta 14 VcmZ1xwIXVRHxnbnW*??IS^z1(1quKF delta 14 VcmZ1xwIXVRHxnbvW*??IS^z261r7iJ diff --git a/recovery/root/vendor/compatibility_matrix.xml b/recovery/root/vendor/compatibility_matrix.xml new file mode 100644 index 0000000..9c33b1f --- /dev/null +++ b/recovery/root/vendor/compatibility_matrix.xml @@ -0,0 +1,61 @@ + + + android.frameworks.schedulerservice + 1.0 + + ISchedulingPolicyService + default + + + + android.frameworks.sensorservice + 1.0 + + ISensorManager + default + + + + android.hidl.allocator + 1.0 + + IAllocator + ashmem + + + + android.hidl.manager + 1.0 + + IServiceManager + default + + + + android.hidl.memory + 1.0 + + IMapper + ashmem + + + + android.hidl.token + 1.0 + + ITokenManager + default + + + + android.system.wifi.keystore + 1.0 + + IKeystore + default + + + + 0.0.0 + + diff --git a/recovery/root/vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so b/recovery/root/vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so new file mode 100755 index 0000000000000000000000000000000000000000..fedb441a01846a15dfbcf798b9b12f391138cda3 GIT binary patch literal 19232 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 literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/lib64/hw/android.hardware.keymaster@3.0-impl.so b/recovery/root/vendor/lib64/hw/android.hardware.keymaster@3.0-impl.so new file mode 100755 index 0000000000000000000000000000000000000000..b65668c67f4aad26bd60ec179f0aa6aac90cf8a9 GIT binary patch literal 40184 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 literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/lib64/libkeymasterdeviceutils.so b/recovery/root/vendor/lib64/libkeymasterdeviceutils.so new file mode 100644 index 0000000000000000000000000000000000000000..39e07cf4a17890a36972c70e859837e02af971f3 GIT binary patch literal 14984 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 literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/lib64/libkeymasterprovision.so b/recovery/root/vendor/lib64/libkeymasterprovision.so new file mode 100644 index 0000000000000000000000000000000000000000..7fd1904df18dcb4e775fb2a68bacd7ae0f0bf927 GIT binary patch literal 19112 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 literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/lib64/libtime_genoff.so b/recovery/root/vendor/lib64/libtime_genoff.so old mode 100644 new mode 100755 diff --git a/recovery/root/vendor/lib64/vendor.qti.hardware.tui_comm@1.0_vendor.so b/recovery/root/vendor/lib64/vendor.qti.hardware.tui_comm@1.0_vendor.so new file mode 100644 index 0000000000000000000000000000000000000000..303b0615b09ce5e750c02355e14fa88b39806bbb GIT binary patch literal 207464 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 literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/manifest.xml b/recovery/root/vendor/manifest.xml new file mode 100644 index 0000000..3993b26 --- /dev/null +++ b/recovery/root/vendor/manifest.xml @@ -0,0 +1,615 @@ + + + android.hardware.audio + hwbinder + 2.0 + + IDevicesFactory + msm8998 + + + + android.hardware.audio.effect + hwbinder + 2.0 + + IEffectsFactory + default + + + + android.hardware.biometrics.fingerprint + hwbinder + 2.1 + + IBiometricsFingerprint + default + + + + android.hardware.bluetooth + hwbinder + 1.0 + + IBluetoothHci + default + + + + android.hardware.broadcastradio + hwbinder + 1.0 + + IBroadcastRadioFactory + default + + + + android.hardware.camera.provider + passthrough + 2.4 + + ICameraProvider + legacy/0 + + + + android.hardware.cas + hwbinder + 1.0 + + IMediaCasService + default + + + + android.hardware.configstore + hwbinder + 1.0 + + ISurfaceFlingerConfigs + default + + + + android.hardware.drm + hwbinder + 1.0 + + ICryptoFactory + default + widevine + + + IDrmFactory + default + widevine + + + + android.hardware.gatekeeper + hwbinder + 1.0 + + IGatekeeper + msm8998 + + + + android.hardware.gnss + hwbinder + 1.0 + + IGnss + msm8998 + + + + android.hardware.graphics.allocator + hwbinder + 2.0 + + IAllocator + msm8998 + + + + android.hardware.graphics.composer + hwbinder + 2.1 + + IComposer + msm8998 + + + + android.hardware.graphics.mapper + passthrough + 2.0 + + IMapper + default + + + + android.hardware.keymaster + hwbinder + 3.0 + + IKeymasterDevice + msm8998 + + + + android.hardware.light + hwbinder + 2.0 + + ILight + msm8998 + + + + android.hardware.media.omx + hwbinder + 1.0 + + IOmx + default + + + IOmxStore + default + + + + android.hardware.memtrack + hwbinder + 1.0 + + IMemtrack + msm8998 + + + + android.hardware.nfc + hwbinder + 1.0 + + INfc + default + + + + android.hardware.power + hwbinder + 1.1 + + IPower + default + + + + android.hardware.radio + hwbinder + 1.0 + + IRadio + slot1 + slot2 + + + ISap + slot1 + slot2 + + + + android.hardware.radio.deprecated + hwbinder + 1.0 + + IOemHook + slot1 + slot2 + + + + android.hardware.renderscript + passthrough + 1.0 + + IDevice + default + + + + android.hardware.sensors + hwbinder + 1.0 + + ISensors + msm8998 + + + + android.hardware.tetheroffload.config + hwbinder + 1.0 + + IOffloadConfig + default + + + + android.hardware.tetheroffload.control + hwbinder + 1.0 + + IOffloadControl + default + + + + android.hardware.thermal + hwbinder + 1.0 + + IThermal + msm8998 + + + + android.hardware.usb + hwbinder + 1.0 + + IUsb + default + + + + android.hardware.vibrator + hwbinder + 1.0 + + IVibrator + default + + + + android.hardware.vr + hwbinder + 1.0 + + IVr + default + + + + android.hardware.wifi + hwbinder + 1.0 + + IWifi + default + + + + android.hardware.wifi.supplicant + hwbinder + 1.0 + + ISupplicant + default + + + + com.qualcomm.qti.dpm.api + hwbinder + 1.0 + + IdpmQmi + dpmQmiService + + + + com.qualcomm.qti.imscmservice + hwbinder + 1.0 + + IImsCmService + qti.ims.connectionmanagerservice + + + + com.qualcomm.qti.uceservice + hwbinder + 1.0 + + IUceService + com.qualcomm.qti.uceservice + + + + com.qualcomm.qti.wifidisplayhal + hwbinder + 1.0 + + IDSManager + wifidisplaydshal + + + IHDCPSession + wifidisplayhdcphal + + + + com.quicinc.cne.api + hwbinder + 1.0 + + IApiService + cnd + + + + com.quicinc.cne.server + hwbinder + 1.0 + + IServer + cnd + + + + com.quicinc.cne.server + hwbinder + 2.0 + + IServer + cnd + + + + vendor.display.color + hwbinder + 1.0 + + IDisplayColor + default + + + + vendor.display.config + hwbinder + 1.0 + + IDisplayConfig + default + + + + vendor.display.postproc + hwbinder + 1.0 + + IDisplayPostproc + default + + + + vendor.qti.esepowermanager + hwbinder + 1.0 + + IEsePowerManager + default + + + + vendor.qti.gnss + hwbinder + 1.0 + + ILocHidlGnss + gnss_vendor + + + + vendor.qti.hardware.alarm + hwbinder + 1.0 + + IAlarm + default + + + + vendor.qti.hardware.improvetouch.blobmanager + hwbinder + 1.0 + + IBlobManager + BlobManagerService + + + + vendor.qti.hardware.improvetouch.gesturemanager + hwbinder + 1.0 + + IGestureManager + GestureManagerService + + + + vendor.qti.hardware.improvetouch.touchcompanion + hwbinder + 1.0 + + ITouchCompanion + TouchCompanionService + + + + vendor.qti.hardware.perf + hwbinder + 1.0 + + IPerf + default + + + + vendor.qti.hardware.qdutils_disp + hwbinder + 1.0 + + IQdutilsDisp + default + + + + vendor.qti.hardware.qteeconnector + hwbinder + 1.0 + + IAppConnector + default + + + IGPAppConnector + default + + + + vendor.qti.hardware.radio.am + hwbinder + 1.0 + + IQcRilAudio + slot1 + slot2 + + + + vendor.qti.hardware.radio.atcmdfwd + hwbinder + 1.0 + + IAtCmdFwd + AtCmdFwdService + + + + vendor.qti.hardware.radio.config + hwbinder + 1.0 + + IConfig + radioconfig0 + radioconfig1 + + + + vendor.qti.hardware.radio.ims + hwbinder + 1.0 + + IImsRadio + imsradio0 + imsradio1 + + + + vendor.qti.hardware.radio.lpa + hwbinder + 1.0 + + IUimLpa + UimLpa0 + UimLpa1 + + + + vendor.qti.hardware.radio.qcrilhook + hwbinder + 1.0 + + IQtiOemHook + oemhook0 + oemhook1 + + + + vendor.qti.hardware.radio.qtiradio + hwbinder + 1.0 + + IQtiRadio + slot1 + slot2 + + + + vendor.qti.hardware.radio.uim + hwbinder + 1.0 + + IUim + Uim0 + Uim1 + + + + vendor.qti.hardware.radio.uim_remote_client + hwbinder + 1.0 + + IUimRemoteServiceClient + uimRemoteClient0 + uimRemoteClient1 + + + + vendor.qti.hardware.radio.uim_remote_server + hwbinder + 1.0 + + IUimRemoteServiceServer + uimRemoteServer0 + uimRemoteServer1 + + + + vendor.qti.hardware.tui_comm + hwbinder + 1.0 + + ITuiComm + default + + + + vendor.qti.imsrtpservice + hwbinder + 1.0 + + IRTPService + imsrtpservice + + + + vendor.qti.voiceprint + hwbinder + 1.0 + + IQtiVoicePrintService + default + + + + 27.0 + + -- 2.20.1