smallpp420 4 лет назад
Сommit
208a715208
46 измененных файлов с 660 добавлено и 0 удалено
  1. 5 0
      Android.mk
  2. 20 0
      AndroidProducts.mk
  3. 138 0
      BoardConfig.mk
  4. BIN
      prebuilt/Image.gz
  5. BIN
      prebuilt/dtb
  6. 86 0
      recovery/root/first_stage_ramdisk/fstab.mt6761
  7. 100 0
      recovery/root/init.recovery.mt6761.rc
  8. 64 0
      recovery/root/init.recovery.trustonic.rc
  9. 96 0
      recovery/root/init.recovery.usb.rc
  10. BIN
      recovery/root/system/bin/hw/android.hardware.gatekeeper@1.0-service
  11. BIN
      recovery/root/system/bin/mtk_plpath_utils
  12. 5 0
      recovery/root/system/etc/recovery.fstab
  13. 26 0
      recovery/root/system/etc/twrp.flags
  14. BIN
      recovery/root/system/lib64/hw/android.hardware.boot@1.0-impl-1.1-mtkimpl.so
  15. BIN
      recovery/root/system/lib64/libhwbinder.so
  16. 69 0
      recovery/root/ueventd.rc
  17. BIN
      recovery/root/vendor/app/mcRegistry/020f0000000000000000000000000000.drbin
  18. BIN
      recovery/root/vendor/app/mcRegistry/020f0000000000000000000000000000.tlbin
  19. BIN
      recovery/root/vendor/app/mcRegistry/030b0000000000000000000000000000.drbin
  20. BIN
      recovery/root/vendor/app/mcRegistry/030b0000000000000000000000000000.tlbin
  21. BIN
      recovery/root/vendor/app/mcRegistry/05120000000000000000000000000000.drbin
  22. BIN
      recovery/root/vendor/app/mcRegistry/05120000000000000000000000000000.tlbin
  23. BIN
      recovery/root/vendor/app/mcRegistry/06090000000000000000000000000000.drbin
  24. BIN
      recovery/root/vendor/app/mcRegistry/06090000000000000000000000000000.tlbin
  25. BIN
      recovery/root/vendor/app/mcRegistry/07010000000000000000000000000000.tlbin
  26. BIN
      recovery/root/vendor/app/mcRegistry/0706000000000000000000000000004d.tlbin
  27. BIN
      recovery/root/vendor/app/mcRegistry/07061000000000000000000000000000.tlbin
  28. BIN
      recovery/root/vendor/app/mcRegistry/07150000000000000000000000000000.drbin
  29. BIN
      recovery/root/vendor/app/mcRegistry/07150000000000000000000000000000.tlbin
  30. BIN
      recovery/root/vendor/app/mcRegistry/07170000000000000000000000000000.drbin
  31. BIN
      recovery/root/vendor/app/mcRegistry/07170000000000000000000000000000.tlbin
  32. BIN
      recovery/root/vendor/app/mcRegistry/08030000000000000000000000000000.tabin
  33. BIN
      recovery/root/vendor/app/mcRegistry/08110000000000000000000000000000.tabin
  34. BIN
      recovery/root/vendor/app/mcRegistry/09190000000000000000000000000000.tlbin
  35. BIN
      recovery/root/vendor/bin/hw/android.hardware.keymaster@3.0-service.trustonic
  36. BIN
      recovery/root/vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so
  37. 1 0
      recovery/root/vendor/lib64/hw/gatekeeper.default.so
  38. 1 0
      recovery/root/vendor/lib64/hw/gatekeeper.mt6761.so
  39. 1 0
      recovery/root/vendor/lib64/hw/gatekeeper.wasp.so
  40. 1 0
      recovery/root/vendor/lib64/hw/keystore.mt6761.so
  41. 1 0
      recovery/root/vendor/lib64/hw/keystore.wasp.so
  42. BIN
      recovery/root/vendor/lib64/hw/libMcGatekeeper.so
  43. BIN
      recovery/root/vendor/lib64/hw/libSoftGatekeeper.so
  44. BIN
      recovery/root/vendor/mcDriverDaemon
  45. 1 0
      twrp.dependencies
  46. 45 0
      twrp_WSP_sprout.mk

+ 5 - 0
Android.mk

@@ -0,0 +1,5 @@
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),Note_11P)
+include $(call all-subdir-makefiles,$(LOCAL_PATH))
+endif

+ 20 - 0
AndroidProducts.mk

@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2021 TeamWin Recovery Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+PRODUCT_MAKEFILES := \
+    $(LOCAL_DIR)/twrp_WSP_sprout.mk
+
+COMMON_LUNCH_CHOICES := twrp_WSP_sprout-eng

+ 138 - 0
BoardConfig.mk

@@ -0,0 +1,138 @@
+#
+# Copyright (C) 2021 TeamWin Recovery Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Allow building with minimal manifest
+ALLOW_MISSING_DEPENDENCIES := true
+
+DEVICE_PATH := device/hmd/WSP_sprout
+
+# Architecture
+TARGET_ARCH := arm64
+TARGET_ARCH_VARIANT := armv8-a
+TARGET_CPU_ABI := arm64-v8a
+TARGET_CPU_ABI2 :=
+TARGET_CPU_VARIANT := cortex-a53
+
+TARGET_2ND_ARCH := arm
+TARGET_2ND_ARCH_VARIANT := armv8-a
+TARGET_2ND_CPU_ABI := armeabi-v7a
+TARGET_2ND_CPU_ABI2 := armeabi
+TARGET_2ND_CPU_VARIANT := cortex-a53
+
+TARGET_BOARD_SUFFIX := _64
+TARGET_USES_64_BIT_BINDER := true
+TARGET_IS_64_BIT := true
+TARGET_SUPPORTS_64_BIT_APPS := true
+
+# Platform
+TARGET_BOARD_PLATFORM := mt6761
+BOARD_USES_MTK_HARDWARE := true
+
+# Kernel
+BOARD_KERNEL_CMDLINE := bootopt=64S3,32N2,64N2
+TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/prebuilt/Image.gz
+TARGET_PREBUILT_DTB := $(DEVICE_PATH)/prebuilt/dtb
+BOARD_BOOT_HEADER_VERSION := 2
+BOARD_KERNEL_BASE := 0x40078000
+BOARD_KERNEL_OFFSET := 0x00008000
+BOARD_KERNEL_PAGESIZE := 2048
+BOARD_KERNEL_TAGS_OFFSET := 0x07808000
+BOARD_RAMDISK_OFFSET := 0x11a88000
+BOARD_KERNEL_SECOND_OFFSET := 0xbff88000
+BOARD_DTB_OFFSET := 0x07808000
+BOARD_INCLUDE_DTB_IN_BOOTIMG := true
+BOARD_KERNEL_IMAGE_NAME := Image.gz
+TARGET_KERNEL_ARCH := arm64
+TARGET_KERNEL_HEADER_ARCH := arm64
+BOARD_MKBOOTIMG_ARGS := --base $(BOARD_KERNEL_BASE)
+BOARD_MKBOOTIMG_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
+BOARD_MKBOOTIMG_ARGS += --ramdisk_offset $(BOARD_RAMDISK_OFFSET)
+BOARD_MKBOOTIMG_ARGS += --tags_offset $(BOARD_KERNEL_TAGS_OFFSET)
+BOARD_MKBOOTIMG_ARGS += --kernel_offset $(BOARD_KERNEL_OFFSET)
+BOARD_MKBOOTIMG_ARGS += --second_offset $(BOARD_KERNEL_SECOND_OFFSET)
+BOARD_MKBOOTIMG_ARGS += --dtb_offset $(BOARD_DTB_OFFSET)
+BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
+
+
+# Assert
+TARGET_OTA_ASSERT_DEVICE := wasp,Wasp,WSP_sprout
+
+# Partitions
+BOARD_FLASH_BLOCK_SIZE := 131072
+BOARD_BOOTIMAGE_PARTITION_SIZE := 33554432
+BOARD_RECOVERYIMAGE_PARTITION_SIZE := 33554432
+
+# File systems
+BOARD_HAS_LARGE_FILESYSTEM := true
+BOARD_SYSTEMIMAGE_PARTITION_TYPE := ext4
+BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := ext4
+TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_USERIMAGES_USE_F2FS := true
+
+BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
+BOARD_SUPPRESS_SECURE_ERASE := true
+
+BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
+TARGET_COPY_OUT_VENDOR := vendor
+
+# System props
+
+# Metadata
+BOARD_USES_METADATA_PARTITION := true
+
+# Encryption
+PLATFORM_VERSION := 11
+
+TW_INCLUDE_CRYPTO := true
+TW_INCLUDE_CRYPTO_FBE := true
+TW_INCLUDE_FBE := true
+TW_INCLUDE_FBE_METADATA_DECRYPT := true
+USE_FSCRYPT := true
+TARGET_HW_DISK_ENCRYPTION := false
+
+# Recovery
+BOARD_CHARGER_DISABLE_INIT_BLANK := true
+RECOVERY_SDCARD_ON_DATA := true
+TW_EXCLUDE_DEFAULT_USB_INIT := true
+
+# TWRP specific build flags
+TW_THEME := portrait_hdpi
+TW_EXTRA_LANGUAGES := false
+TW_INCLUDE_NTFS_3G := true
+TW_USE_TOOLBOX := true
+TW_DEFAULT_DEVICE_NAME := WSP_sprout
+TW_INPUT_BLACKLIST := "hbtp_vm"
+TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID := true
+TW_EXCLUDE_TWRPAPP := true
+TARGET_USES_MKE2FS := true
+
+TW_Y_OFFSET := 60
+TW_H_OFFSET := -60
+
+# resetprop and magiskboot
+TW_INCLUDE_RESETPROP := true
+TW_INCLUDE_REPACKTOOLS := true
+
+# Debug
+TWRP_INCLUDE_LOGCAT := true
+TARGET_USES_LOGD := true
+
+TW_HAS_MTP := true
+TW_MTP_DEVICE := /dev/mtp_usb
+TW_INTERNAL_STORAGE_PATH := "/data/media/0"
+TW_INTERNAL_STORAGE_MOUNT_POINT := "data"
+TW_EXTERNAL_STORAGE_PATH := "/external_sd"
+TW_EXTERNAL_STORAGE_MOUNT_POINT := "external_sd"
+TW_DEFAULT_EXTERNAL_STORAGE := true

BIN
prebuilt/Image.gz



+ 86 - 0
recovery/root/first_stage_ramdisk/fstab.mt6761

@@ -0,0 +1,86 @@
+# 1 "vendor/mediatek/proprietary/hardware/fstab/mt6761/fstab.in.mt6761"
+# 1 "<built-in>" 1
+# 1 "<built-in>" 3
+# 341 "<built-in>" 3
+# 1 "<command line>" 1
+# 1 "<built-in>" 2
+# 1 "vendor/mediatek/proprietary/hardware/fstab/mt6761/fstab.in.mt6761" 2
+# 145 "vendor/mediatek/proprietary/hardware/fstab/mt6761/fstab.in.mt6761"
+/dev/block/platform/bootdevice/by-name/system /system ext4 ro wait,slotselect,avb=vbmeta,first_stage_mount
+
+/dev/block/platform/bootdevice/by-name/vendor /vendor ext4 ro wait,slotselect,avb,first_stage_mount
+# 161 "vendor/mediatek/proprietary/hardware/fstab/mt6761/fstab.in.mt6761"
+/dev/block/platform/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,noauto_da_alloc,errors=panic,inlinecrypt latemount,wait,check,quota,reservedsize=128M,formattable,resize,,fileencryption=aes-256-xts:aes-256-cts:v1
+
+
+
+
+/dev/block/platform/bootdevice/by-name/protect1 /mnt/vendor/protect_f ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable
+/dev/block/platform/bootdevice/by-name/protect2 /mnt/vendor/protect_s ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable
+/dev/block/platform/bootdevice/by-name/nvdata /mnt/vendor/nvdata ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable
+/dev/block/platform/bootdevice/by-name/nvcfg /mnt/vendor/nvcfg ext4 noatime,nosuid,nodev,noauto_da_alloc,commit=1,nodelalloc wait,check,formattable
+
+/dev/block/platform/bootdevice/by-name/custom /mnt/vendor/custom ext4 ro,noatime,nosuid,nodev,noauto_da_alloc,discard wait,formattable,slotselect
+
+/dev/block/platform/bootdevice/by-name/elabel /mnt/vendor/elabel ext4 ro,noatime,nosuid,nodev,noauto_da_alloc,discard wait,formattable,slotselect
+
+
+
+
+
+/devices/platform/externdevice* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata
+/devices/platform/mt_usb* auto vfat defaults voldmanaged=usbotg:auto
+
+/dev/block/platform/bootdevice/by-name/frp /persistent emmc defaults defaults
+
+/dev/block/platform/bootdevice/by-name/nvram /nvram emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/proinfo /proinfo emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/lk /bootloader emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/lk2 /bootloader2 emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/para /misc emmc defaults defaults
+
+
+
+
+/dev/block/platform/bootdevice/by-name/boot /boot emmc defaults first_stage_mount,nofail,slotselect
+# 206 "vendor/mediatek/proprietary/hardware/fstab/mt6761/fstab.in.mt6761"
+/dev/block/platform/bootdevice/by-name/logo /logo emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/expdb /expdb emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/seccfg /seccfg emmc defaults defaults
+
+/dev/block/platform/bootdevice/by-name/tee1 /tee1 emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/tee2 /tee2 emmc defaults defaults
+
+
+/dev/block/platform/bootdevice/by-name/scp1 /scp1 emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/scp2 /scp2 emmc defaults defaults
+
+
+/dev/block/platform/bootdevice/by-name/sspm_1 /sspm_1 emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/sspm_2 /sspm_2 emmc defaults defaults
+
+
+
+
+/dev/block/platform/bootdevice/by-name/md1img /md1img emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/md1dsp /md1dsp emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/md1arm7 /md1arm7 emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/md3img /md3img emmc defaults defaults
+
+
+
+
+
+/dev/block/platform/bootdevice/by-name/gz1 /gz1 emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/gz2 /gz2 emmc defaults defaults
+
+/dev/block/platform/bootdevice/by-name/spmfw /spmfw emmc defaults defaults
+
+/dev/block/platform/bootdevice/by-name/boot_para /boot_para emmc defaults defaults
+
+/dev/block/platform/bootdevice/by-name/dtbo1 /dtbo1 emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/dtbo2 /dtbo2 emmc defaults defaults
+/dev/block/platform/bootdevice/by-name/dtbo /dtbo emmc defaults defaults
+
+
+/dev/block/platform/bootdevice/by-name/vbmeta /vbmeta emmc defaults defaults

+ 100 - 0
recovery/root/init.recovery.mt6761.rc

@@ -0,0 +1,100 @@
+import /init.recovery.trustonic.rc
+
+on fs
+    exec u:r:recovery:s0 root root -- /system/bin/cp -arf /vendor/app/mcRegistry/. /odm/vendor/app/mcRegistry/
+
+    install_keyring
+    setprop crypto.ready 1
+
+    write /sys/class/power_supply/usb/otg_switch 1
+    write /sys/class/oplus_chg/usb/otg_switch 1
+
+service keystore_auth /system/bin/keystore_auth
+    oneshot
+    user system
+    group root
+    disabled
+    seclabel u:r:recovery:s0
+
+service keystore /system/bin/keystore /tmp/misc/keystore
+    user root
+    group root drmrpc readproc log
+    disabled
+    seclabel u:r:recovery:s0
+
+on property:hwservicemanager.ready=true
+    start hal_cryptoeng_oppo
+    start mobicore
+    start keymaster-3-0
+    start gatekeeper-1-0
+
+on property:ro.crypto.state=unsupported
+    stop hal_cryptoeng_oppo
+    stop mobicore
+    stop keymaster-3-0
+    stop gatekeeper-1-0
+    stop servicemanager
+    stop hwservicemanager
+
+on property:ro.crypto.state=unencrypted
+    stop hal_cryptoeng_oppo
+    stop mobicore
+    stop keymaster-3-0
+    stop gatekeeper-1-0
+    stop servicemanager
+    stop hwservicemanager
+
+on post-fs-data
+    mkdir /data/vendor_de 0770 system system
+    mkdir /data/vendor_de/0 0770 system system
+    mkdir /data/vendor_de/0/cryptoeng 0770 system system
+
+on boot
+    start health-hal-2-1
+
+service gatekeeper-1-0 /system/bin/hw/android.hardware.gatekeeper@1.0-service
+    user root
+    group root
+    disabled
+    seclabel u:r:recovery:s0
+
+service hal_cryptoeng_oppo /vendor/bin/hw/vendor.oplus.hardware.cryptoeng@1.0-service
+    user root
+    group root input sdcard_rw sdcard_r
+    disabled
+    seclabel u:r:recovery:s0
+
+service keymaster-3-0 /vendor/bin/hw/android.hardware.keymaster@3.0-service.trustonic
+    user root
+    group root drmrpc
+    disabled
+    seclabel u:r:recovery:s0
+
+on property:enable.fbe.service=0
+    stop hal_cryptoeng_oppo
+    stop mobicore
+    stop servicemanager
+    stop hwservicemanager
+    stop keymaster-3-0
+    stop gatekeeper-1-0
+
+on init
+    setprop sys.usb.configfs 1
+    setprop sys.usb.ffs.aio_compat 0
+
+on fs && property:ro.debuggable=0
+    # distinguish USB shoulde connect or not, i.e. CDP vs SDP
+    write /sys/class/udc/musb-hdrc/device/cmode 2
+    # set charging free due to it wait for USB activation
+    start adbd
+
+on post-fs
+    # Support A/B feature for emmc boot region
+    symlink /dev/block/sda /dev/block/mmcblk0boot0
+    symlink /dev/block/sdb /dev/block/mmcblk0boot1
+    symlink /dev/block/mmcblk0boot0 /dev/block/platform/bootdevice/by-name/preloader_a
+    symlink /dev/block/mmcblk0boot1 /dev/block/platform/bootdevice/by-name/preloader_b
+    symlink /dev/block/mmcblk0boot0 /dev/block/by-name/preloader_a
+    symlink /dev/block/mmcblk0boot1 /dev/block/by-name/preloader_b
+
+    exec u:r:update_engine:s0 root root -- /system/bin/mtk_plpath_utils

+ 64 - 0
recovery/root/init.recovery.trustonic.rc

@@ -0,0 +1,64 @@
+# Start Daemon (Registry directories should already be present)
+service mobicore /vendor/bin/mcDriverDaemon --P1 /mnt/vendor/persist/mcRegistry \
+    -r /vendor/app/mcRegistry/020f0000000000000000000000000000.drbin \
+    -r /vendor/app/mcRegistry/05120000000000000000000000000000.drbin \
+    -r /vendor/app/mcRegistry/020b0000000000000000000000000000.drbin \
+    -r /odm/vendor/app/mcRegistry/05070000000000000000000000000000.drbin \
+    -r /odm/vendor/app/mcRegistry/030b0000000000000000000000000000.drbin \
+    -r /odm/vendor/app/mcRegistry/030c0000000000000000000000000000.drbin \
+    -r /vendor/app/mcRegistry/07060000000000000000000000007169.drbin \
+    -r /vendor/app/mcRegistry/40188311faf343488db888ad39496f9a.drbin \
+    -r /vendor/app/mcRegistry/06090000000000000000000000000000.drbin \
+    -r /vendor/app/mcRegistry/0f5eed3c3b5a47afacca69a84bf0efad.drbin \
+    -r /vendor/app/mcRegistry/07407000000000000000000000000000.drbin \
+    -r /vendor/app/mcRegistry/9073f03a9618383bb1856eb3f990babd.drbin \
+    -r /vendor/app/mcRegistry/6b3f5fa0f8cf55a7be2582587d62d63a.drbin \
+    -r /vendor/app/mcRegistry/5020170115e016302017012521300000.drbin \
+    -r /odm/vendor/app/mcRegistry/09070000000000000000000000000000.drbin
+    user root
+    group root
+    disabled
+    seclabel u:r:recovery:s0
+    
+on fs
+    # Create the mountpoint for /mnt/vendor/persist partition
+    mkdir /mnt/vendor/persist 0771 system system
+    
+    # Mount the persist partition on /mnt/vendor/persist
+    mount /dev/block/by-name/persist /mnt/vendor/persist rw
+
+on post-fs
+    chown system system /mnt/vendor/persist
+    chmod 0771 /mnt/vendor/persist
+
+    # We restorecon /mnt/vendor/persist to set SEPolicy label.
+    restorecon /mnt/vendor/persist
+
+    # Create mcRegistry to store failure record
+    mkdir /mnt/vendor/persist/mcRegistry 0771 system system
+
+    write /proc/bootprof "MOBICORE: Starting mcDriverDaemon"
+    start mobicore
+    
+on post-fs-data
+    # Create /data/vendor/key_provisioning dir and get proper encryption policy installed
+    # Key Installation
+    mkdir /data/vendor/key_provisioning 0771 system system
+
+# For META/FACTORY mode
+on property:ro.crypto.state=unencrypted
+    write /proc/bootprof "MOBICORE: create /data/vendor/mcRegistry ++ (unencrypted)"
+    mkdir /data/vendor/mcRegistry 0775 system system
+    write /proc/bootprof "MOBICORE: create /data/vendor/mcRegistry -- (unencrypted)"
+
+# Normal mode, FBE
+on property:ro.crypto.type=file
+    write /proc/bootprof "MOBICORE: create /data/vendor/mcRegistry ++ (FBE encrypted)"
+    mkdir /data/vendor/mcRegistry 0775 system system
+    write /proc/bootprof "MOBICORE: create /data/vendor/mcRegistry -- (FBE encrypted)"
+
+# Normal mode, FDE
+on property:ro.crypto.type=block
+    write /proc/bootprof "MOBICORE: create /data/vendor/mcRegistry ++ (FDE encrypted)"
+    mkdir /data/vendor/mcRegistry 0775 system system
+    write /proc/bootprof "MOBICORE: create /data/vendor/mcRegistry -- (FDE encrypted)"

+ 96 - 0
recovery/root/init.recovery.usb.rc

@@ -0,0 +1,96 @@
+# Copyright (c) 2020, The Linux Foundation. All rights reserved.
+#
+on early-init
+    write /sys/module/musb_hdrc/parameters/kernel_init_done 1
+
+on init
+    setprop sys.usb.configfs 1
+    setprop sys.usb.ffs.aio_compat 1
+    setprop vendor.usb.controller "musb-hdrc"
+    setprop vendor.usb.acm_cnt 0
+    setprop vendor.usb.acm_port0 ""
+    setprop vendor.usb.acm_port1 ""
+    setprop vendor.usb.acm_enable 0
+
+on property:ro.boot.usbcontroller=*
+    setprop sys.usb.controller ${ro.boot.usbcontroller}
+
+on fs
+    mkdir /config
+    mkdir /dev/usb-ffs 0770 shell shell
+    mkdir /dev/usb-ffs/adb 0770 shell shell
+    mount configfs none /config
+    mkdir /config/usb_gadget/g1 0770 shell shell
+    mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell
+    write /config/usb_gadget/g1/bcdDevice 0x0223
+    write /config/usb_gadget/g1/bcdUSB 0x0200
+    write /config/usb_gadget/g1/os_desc/use 1
+    write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
+    write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
+    write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
+    mkdir /config/usb_gadget/g1/functions/mass_storage.usb0
+    mkdir /config/usb_gadget/g1/functions/ffs.adb
+    mkdir /config/usb_gadget/g1/functions/mtp.gs0
+    write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP"
+    mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
+    mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
+    write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
+    write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
+    #write /config/usb_gadget/g1/configs/b.1/MaxPower 500
+    symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
+    mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
+    write /sys/class/android_usb/android0/f_ffs/aliases adb
+
+on property:sys.usb.config=none && property:sys.usb.configfs=1
+    write /config/usb_gadget/g1/UDC "none"
+    stop adbd
+    setprop sys.usb.ffs.ready 0
+    setprop sys.usb.ffs.mtp.ready 0
+    write /config/usb_gadget/g1/bDeviceClass 0
+    write /config/usb_gadget/g1/bDeviceSubClass 0
+    write /config/usb_gadget/g1/bDeviceProtocol 0
+    rm /config/usb_gadget/g1/configs/b.1/f1
+    rm /config/usb_gadget/g1/configs/b.1/f2
+    #rmdir /config/usb_gadget/g1/functions/rndis.gs4
+    write /sys/devices/platform/mt_usb/saving 0
+    setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1
+    write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb"
+    write /config/usb_gadget/g1/idVendor 0x18d1
+    write /config/usb_gadget/g1/idProduct 0xd001
+    write /config/usb_gadget/g1/os_desc/use 1
+    symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
+    write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+    setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=sideload && property:sys.usb.ffs.ready=1 && property:sys.usb.configfs=1
+    write /config/usb_gadget/g1/idVendor 0x18d1
+
+on property:sys.usb.config=mtp && property:sys.usb.configfs=1
+    setprop sys.usb.ffs.mtp.ready 1
+    write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
+    rm /config/usb_gadget/g1/configs/b.1/f1
+    rm /config/usb_gadget/g1/configs/b.1/f2
+    write /config/usb_gadget/g1/idVendor 0x0e8d
+    write /config/usb_gadget/g1/idProduct 0x2008
+    write /config/usb_gadget/g1/os_desc/use 1
+    symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
+    write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+    setprop sys.usb.state ${sys.usb.config}
+
+on property:sys.usb.config=mtp,adb
+    start adbd
+
+on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
+    setprop sys.usb.ffs.mtp.ready 1
+    write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb"
+    rm /config/usb_gadget/g1/configs/b.1/f1
+    rm /config/usb_gadget/g1/configs/b.1/f2
+    write /config/usb_gadget/g1/idVendor 0x0e8d
+    write /config/usb_gadget/g1/idProduct 0x201d
+    write /config/usb_gadget/g1/os_desc/use 1
+    symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
+    symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
+    write /config/usb_gadget/g1/UDC ${sys.usb.controller}
+    setprop sys.usb.state ${sys.usb.config}

BIN
recovery/root/system/bin/hw/android.hardware.gatekeeper@1.0-service


BIN
recovery/root/system/bin/mtk_plpath_utils


+ 5 - 0
recovery/root/system/etc/recovery.fstab

@@ -0,0 +1,5 @@
+/dev/block/platform/bootdevice/by-name/system /system ext4 ro wait,slotselect,avb=vbmeta,first_stage_mount
+
+/dev/block/platform/bootdevice/by-name/vendor /vendor ext4 ro wait,slotselect,avb,first_stage_mount
+
+/dev/block/platform/bootdevice/by-name/vbmeta /vbmeta emmc defaults defaults

+ 26 - 0
recovery/root/system/etc/twrp.flags

@@ -0,0 +1,26 @@
+/system_image     emmc     /dev/block/platform/bootdevice/by-name/system       flags=backup=1;flashimg=1;slotselect
+/data		  ext4     /dev/block/platform/bootdevice/by-name/userdata       flags=encryptable=/dev/block/platform/bootdevice/by-name/metadata
+/boot             emmc     /dev/block/platform/bootdevice/by-name/boot         flags=backup=1;flashimg=1;slotselect
+/bootloader       emmc     /dev/block/platform/bootdevice/by-name/lk           flags=display="bootloader";backup=1;flashimg=1;slotselect
+/vendor           ext4     /dev/block/platform/bootdevice/by-name/vendor       flags=display="Vendor";backup=1;wipeingui;slotselect
+/vendor_image     emmc     /dev/block/platform/bootdevice/by-name/vendor       flags=display="vendor_image";flashimg=1;backup=1;slotselect
+/nvram            emmc     /dev/block/platform/bootdevice/by-name/nvram        flags=display="nvram";backup=1;flashimg=1
+/proinfo          emmc     /dev/block/platform/bootdevice/by-name/proinfo      flags=display="proinfo";backup=1;flashimg=1
+/preloader        emmc     /dev/block/platform/bootdevice/by-name/preloader  flags=display="preloader";backup=1;flashimg=1;slotselect
+/logo             emmc     /dev/block/platform/bootdevice/by-name/logo         flags=display="logo";backup=1;flashimg=1
+/tee1             emmc     /dev/block/platform/bootdevice/by-name/tee         flags=display="trustzone1";backup=1;flashimg=1;slotselect
+/misc             emmc     /dev/block/platform/bootdevice/by-name/para
+/metadata         emmc     /dev/block/platform/bootdevice/by-name/metadata
+/persistent       emmc     /dev/block/platform/bootdevice/by-name/frp
+/protect_f        ext4     /dev/block/platform/bootdevice/by-name/protect1     flags=display="protect_f";backup=1
+/protect_s        ext4     /dev/block/platform/bootdevice/by-name/protect2     flags=display="protect_s";backup=1
+/nvdata           ext4     /dev/block/platform/bootdevice/by-name/nvdata       flags=display="nvdata";backup=1
+/nvcfg            ext4     /dev/block/platform/bootdevice/by-name/nvcfg        flags=display="nvcfg";backup=1
+/external_sd      vfat     /dev/block/mmcblk1p1  /dev/block/mmcblk1            flags=display="MicroSD";storage;wipeingui;removable;fsflags="utf8"
+/usb-otg          vfat     /dev/block/sda1  /dev/block/sda                     flags=display="USB-OTG";storage;wipeingui;removable;fsflags="utf8"
+/private          emmc     /dev/block/platform/bootdevice/by-name/private
+/scp              emmc     /dev/block/platform/bootdevice/by-name/scp          flags=slotselect
+/sec1             emmc     /dev/block/platform/bootdevice/by-name/sec1
+/seccfg           emmc     /dev/block/platform/bootdevice/by-name/seccfg
+/sspm             emmc     /dev/block/platform/bootdevice/by-name/sspm         flags=slotselect
+/spmfw            emmc     /dev/block/platform/bootdevice/by-name/spmfw        flags=slotselect

BIN
recovery/root/system/lib64/hw/android.hardware.boot@1.0-impl-1.1-mtkimpl.so


BIN
recovery/root/system/lib64/libhwbinder.so


+ 69 - 0
recovery/root/ueventd.rc

@@ -0,0 +1,69 @@
+firmware_directories /etc/firmware/ /odm/firmware/ /vendor/firmware/ /firmware/image/
+uevent_socket_rcvbuf_size 16M
+
+subsystem graphics
+    devname uevent_devpath
+    dirname /dev/graphics
+
+subsystem drm
+    devname uevent_devpath
+    dirname /dev/dri
+
+subsystem input
+    devname uevent_devpath
+    dirname /dev/input
+
+subsystem sound
+    devname uevent_devpath
+    dirname /dev/snd
+
+# ueventd can only set permissions on device nodes and their associated
+# sysfs attributes, not on arbitrary paths.
+#
+# format for /dev rules: devname mode uid gid
+# format for /sys rules: nodename attr mode uid gid
+# shortcut: "mtd@NN" expands to "/dev/mtd/mtdNN"
+
+/dev/null                 0666   root       root
+/dev/zero                 0666   root       root
+/dev/full                 0666   root       root
+/dev/ptmx                 0666   root       root
+/dev/tty                  0666   root       root
+/dev/random               0666   root       root
+/dev/urandom              0666   root       root
+# Make HW RNG readable by group system to let EntropyMixer read it.
+/dev/hw_random            0440   root       system
+/dev/ashmem*              0666   root       root
+/dev/binder               0666   root       root
+/dev/hwbinder             0666   root       root
+/dev/vndbinder            0666   root       root
+
+/dev/pmsg0                0222   root       log
+
+# kms driver for drm based gpu
+/dev/dri/*                0666   root       graphics
+
+# these should not be world writable
+/dev/uhid                 0660   uhid       uhid
+/dev/uinput               0660   uhid       uhid
+/dev/rtc0                 0640   system     system
+/dev/tty0                 0660   root       system
+/dev/graphics/*           0660   root       graphics
+/dev/input/*              0660   root       input
+/dev/v4l-touch*           0660   root       input
+/dev/snd/*                0660   system     audio
+/dev/bus/usb/*            0660   root       usb
+/dev/mtp_usb              0660   root       mtp
+/dev/usb_accessory        0660   root       usb
+/dev/tun                  0660   system     vpn
+
+# CDMA radio interface MUX
+/dev/ppp                  0660   radio      vpn
+
+# sysfs properties
+/sys/devices/platform/trusty.*      trusty_version        0440  root   log
+/sys/devices/virtual/input/input*   enable      0660  root   input
+/sys/devices/virtual/input/input*   poll_delay  0660  root   input
+/sys/devices/virtual/usb_composite/*   enable      0664  root   system
+/sys/devices/system/cpu/cpu*   cpufreq/scaling_max_freq   0664  system system
+/sys/devices/system/cpu/cpu*   cpufreq/scaling_min_freq   0664  system system

BIN
recovery/root/vendor/app/mcRegistry/020f0000000000000000000000000000.drbin


BIN
recovery/root/vendor/app/mcRegistry/020f0000000000000000000000000000.tlbin


BIN
recovery/root/vendor/app/mcRegistry/030b0000000000000000000000000000.drbin


BIN
recovery/root/vendor/app/mcRegistry/030b0000000000000000000000000000.tlbin


BIN
recovery/root/vendor/app/mcRegistry/05120000000000000000000000000000.drbin


BIN
recovery/root/vendor/app/mcRegistry/05120000000000000000000000000000.tlbin


BIN
recovery/root/vendor/app/mcRegistry/06090000000000000000000000000000.drbin


BIN
recovery/root/vendor/app/mcRegistry/06090000000000000000000000000000.tlbin


BIN
recovery/root/vendor/app/mcRegistry/07010000000000000000000000000000.tlbin


BIN
recovery/root/vendor/app/mcRegistry/0706000000000000000000000000004d.tlbin


BIN
recovery/root/vendor/app/mcRegistry/07061000000000000000000000000000.tlbin


BIN
recovery/root/vendor/app/mcRegistry/07150000000000000000000000000000.drbin


BIN
recovery/root/vendor/app/mcRegistry/07150000000000000000000000000000.tlbin


BIN
recovery/root/vendor/app/mcRegistry/07170000000000000000000000000000.drbin


BIN
recovery/root/vendor/app/mcRegistry/07170000000000000000000000000000.tlbin


BIN
recovery/root/vendor/app/mcRegistry/08030000000000000000000000000000.tabin


BIN
recovery/root/vendor/app/mcRegistry/08110000000000000000000000000000.tabin


BIN
recovery/root/vendor/app/mcRegistry/09190000000000000000000000000000.tlbin


BIN
recovery/root/vendor/bin/hw/android.hardware.keymaster@3.0-service.trustonic


BIN
recovery/root/vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl.so


+ 1 - 0
recovery/root/vendor/lib64/hw/gatekeeper.default.so

@@ -0,0 +1 @@
+libSoftGatekeeper.so

+ 1 - 0
recovery/root/vendor/lib64/hw/gatekeeper.mt6761.so

@@ -0,0 +1 @@
+libMcGatekeeper.so

+ 1 - 0
recovery/root/vendor/lib64/hw/gatekeeper.wasp.so

@@ -0,0 +1 @@
+libMcGatekeeper.so

+ 1 - 0
recovery/root/vendor/lib64/hw/keystore.mt6761.so

@@ -0,0 +1 @@
+libMcTeeKeymaster.so

+ 1 - 0
recovery/root/vendor/lib64/hw/keystore.wasp.so

@@ -0,0 +1 @@
+libMcTeeKeymaster.so

BIN
recovery/root/vendor/lib64/hw/libMcGatekeeper.so


BIN
recovery/root/vendor/lib64/hw/libSoftGatekeeper.so


BIN
recovery/root/vendor/mcDriverDaemon


+ 1 - 0
twrp.dependencies

@@ -0,0 +1 @@
+[]

+ 45 - 0
twrp_WSP_sprout.mk

@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2021 TeamWin Recovery Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Inherit from those products. Most specific first.
+$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
+$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_keys.mk)
+
+# Inherit from TWRP common configurations
+$(call inherit-product, vendor/twrp/config/common.mk)
+
+PRODUCT_COPY_FILES += $(call find-copy-subdir-files,*,$(LOCAL_PATH)/recovery/root,recovery/root)
+
+# Extra required packages
+PRODUCT_PACKAGES += \
+    twrpfbe
+
+## Device identifier. This must come after all inclusions
+PRODUCT_DEVICE := WSP_sprout
+PRODUCT_NAME := twrp_WSP_sprout
+PRODUCT_BRAND := Nokia
+PRODUCT_MODEL := 2.2
+PRODUCT_MANUFACTURER := hmd
+PRODUCT_RELEASE_NAME := Nokia 2.2
+
+PRODUCT_BUILD_PROP_OVERRIDES += \
+    TARGET_DEVICE=WSP_sprout \
+    PRODUCT_NAME=WSP_sprout \
+    PRIVATE_BUILD_DESC="full_wasp-user 11 RP1A.200720.011 1068 release-keys"
+
+BUILD_FINGERPRINT := Nokia/Wasp_00WW/WSP_sprout:11/RP1A.200720.011/00WW_3_270:user/release-keys
+