diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..90ba554 --- /dev/null +++ b/Android.bp @@ -0,0 +1,12 @@ +// +// Copyright (C) 2023 The Android Open Source Project +// Copyright (C) 2023 SebaUbuntu's TWRP device tree generator +// +// SPDX-License-Identifier: Apache-2.0 +// + +soong_namespace { + imports: [ + "hardware/qcom-caf/bootctrl", + ], +} diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..03bf90b --- /dev/null +++ b/Android.mk @@ -0,0 +1,12 @@ +# +# Copyright (C) 2023 The Android Open Source Project +# Copyright (C) 2023 SebaUbuntu's TWRP device tree generator +# +# SPDX-License-Identifier: Apache-2.0 +# + +LOCAL_PATH := $(call my-dir) + +ifeq ($(TARGET_DEVICE),genevn) +include $(call all-subdir-makefiles,$(LOCAL_PATH)) +endif diff --git a/AndroidProducts.mk b/AndroidProducts.mk new file mode 100644 index 0000000..79f604a --- /dev/null +++ b/AndroidProducts.mk @@ -0,0 +1,14 @@ +# +# Copyright (C) 2023 The Android Open Source Project +# Copyright (C) 2023 SebaUbuntu's TWRP device tree generator +# +# SPDX-License-Identifier: Apache-2.0 +# + +PRODUCT_MAKEFILES := \ + $(LOCAL_DIR)/twrp_genevn.mk + +COMMON_LUNCH_CHOICES := \ + twrp_genevn-user \ + twrp_genevn-userdebug \ + twrp_genevn-eng diff --git a/BoardConfig.mk b/BoardConfig.mk new file mode 100644 index 0000000..4160d43 --- /dev/null +++ b/BoardConfig.mk @@ -0,0 +1,255 @@ +# +# Copyright (C) 2023 The Android Open Source Project +# Copyright (C) 2023 SebaUbuntu's TWRP device tree generator +# +# SPDX-License-Identifier: Apache-2.0 +# + +DEVICE_PATH := device/motorola/genevn +DEVICE_PREBUILT_PATH := device/motorola/genevn/prebuilt +INCLUDE_PATH := $(DEVICE_PATH)/include + +LC_ALL="C" +BUILD_BROKEN_DUP_RULES := true +BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true +BUILD_BROKEN_MISSING_REQUIRED_MODULES := true +RELAX_USES_LIBRARY_CHECK := true +TARGET_DEVICE_ALT := genevn_g + +# For building with minimal manifest +ALLOW_MISSING_DEPENDENCIES := true + +# A/B +AB_OTA_UPDATER := true +BOARD_BUILD_SYSTEM_ROOT_IMAGE := false +AB_OTA_PARTITIONS += \ + boot \ + dtbo \ + product \ + system \ + system_ext \ + recovery \ + vbmeta \ + vbmeta_system \ + vendor \ + vendor_dlkm \ + vendor_boot + +# Architecture +TARGET_ARCH := arm64 +TARGET_ARCH_VARIANT := armv8-2a-dotprod +TARGET_CPU_ABI := arm64-v8a +TARGET_CPU_ABI2 := +TARGET_CPU_VARIANT := cortex-a76 +TARGET_CPU_VARIANT_RUNTIME := kryo300 + +TARGET_2ND_ARCH := arm +TARGET_2ND_ARCH_VARIANT := armv8-2a +TARGET_2ND_CPU_ABI := armeabi-v7a +TARGET_2ND_CPU_ABI2 := armeabi +TARGET_2ND_CPU_VARIANT := cortex-a55 +TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a55 + +# Bootloader +TARGET_NO_BOOTLOADER := false +TARGET_USES_UEFI := true +TARGET_USES_REMOTEPROC := true +TARGET_NO_RECOVERY := false + +# Display +TARGET_SCREEN_DENSITY := 400 + +# Kernel +BOARD_BOOT_HEADER_VERSION := 4 +BOARD_KERNEL_BASE := 0x00000000 +BOARD_KERNEL_TAGS_OFFSET := 0x00000100 +BOARD_KERNEL_OFFSET := 0x00008000 +BOARD_RAMDISK_OFFSET := 0x01000000 +BOARD_DTB_OFFSET := 0x01f00000 +BOARD_KERNEL_CMDLINE += video=vfb:640x400,bpp=32,memsize=3072000 printk.devkmsg=on firmware_class.path=/vendor/firmware_mnt/image bootconfig +BOARD_BOOTCONFIG += \ + androidboot.hardware=qcom \ + androidboot.memcg=1 \ + androidboot.usbcontroller=a600000.dwc3 \ + video=vfb:640x400,bpp=32,memsize=3072000 \ + msm_rtb.filter=0x237 \ + service_locator.enable=1 \ + androidboot.selinux=permissive \ + cgroup.memory=nokmem,nosocket + +BOARD_KERNEL_IMAGE_NAME := Image +BOARD_KERNEL_PAGESIZE := 4096 +BOARD_KERNEL_SEPARATED_DTBO := true +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 += --dtb $(DEVICE_PREBUILT_PATH)/dtb.img +BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION) +BOARD_INCLUDE_DTB_IN_BOOTIMG := true +TARGET_KERNEL_ARCH := arm64 +TARGET_KERNEL_HEADER_ARCH := arm64 +BOARD_RAMDISK_USE_LZ4 := true + +TARGET_PREBUILT_KERNEL := $(DEVICE_PREBUILT_PATH)/kernel +TARGET_PREBUILT_DTB := $(DEVICE_PREBUILT_PATH)/dtb.img + +# Copy DTB +PRODUCT_COPY_FILES += \ + $(TARGET_PREBUILT_DTB):dtb.img + +TARGET_FORCE_PREBUILT_KERNEL := true +BOARD_USES_FULL_RECOVERY_IMAGE := true +BOARD_EXCLUDE_KERNEL_FROM_RECOVERY_IMAGE := true +BOARD_USES_GENERIC_KERNEL_IMAGE := true + +# Partitions +BOARD_FLASH_BLOCK_SIZE := 262144 # (BOARD_KERNEL_PAGESIZE * 64) +BOARD_SUPER_PARTITION_GROUPS := qti_dynamic_partitions +BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := system system_ext product vendor vendor_dlkm +BOARD_QTI_DYNAMIC_PARTITIONS_SIZE := 9122611200 +BOARD_SUPER_PARTITION_SIZE := 9126805504 +BOARD_BOOTIMAGE_PARTITION_SIZE := 100663296 +BOARD_KERNEL_GKI_BOOTIMAGE_PARTITION_SIZE := $(BOARD_BOOTIMAGE_PARTITION_SIZE) +BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296 +BOARD_RECOVERYIMAGE_PARTITION_SIZE := 104857600 +BOARD_SYSTEMIMAGE_PARTITION_TYPE := ext4 +BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs +BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_USES_METADATA_PARTITION := true +TARGET_COPY_OUT_VENDOR := vendor +TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm +BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_USES_VENDOR_DLKMIMAGE := true + +# Platform +TARGET_BOARD_PLATFORM := parrot +TARGET_BOOTLOADER_BOARD_NAME := parrot +QCOM_BOARD_PLATFORMS += parrot + +# Properties +TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop + +# Recovery +TARGET_RECOVERY_QCOM_RTC_FIX := true +TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888 +TARGET_RECOVERY_DEVICE_DIRS += $(DEVICE_PATH) +TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/recovery/root/system/etc/recovery.fstab +TARGET_USERIMAGES_USE_EXT3 := true +TARGET_USERIMAGES_USE_EXT4 := true +TARGET_USERIMAGES_USE_F2FS := true +TARGET_USERIMAGES_USE_EROFS := true +TARGET_USERIMAGES_USE_E2FSCK := true +TARGET_USERIMAGES_USE_VFAT := true + +BOARD_HAS_LARGE_FILESYSTEM := true +BOARD_HAS_NO_SELECT_BUTTON := true + +# Verified Boot +BOARD_AVB_ENABLE := true +BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3 + +BOARD_AVB_RECOVERY_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem +BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA4096 +BOARD_AVB_RECOVERY_ROLLBACK_INDEX := 1 +BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 1 + +BOARD_AVB_VBMETA_SYSTEM := product system system_ext +BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem +BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048 +BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) +BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 2 + +# Hack: prevent anti rollback +PLATFORM_SECURITY_PATCH := 2099-12-31 +VENDOR_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH) +BOOT_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH) +PLATFORM_VERSION := 99.87.36 +PLATFORM_VERSION_LAST_STABLE := $(PLATFORM_VERSION) + +# Crypto +TW_INCLUDE_CRYPTO := true +TW_INCLUDE_CRYPTO_FBE := true +TW_INCLUDE_FBE_METADATA_DECRYPT := true +BOARD_USES_METADATA_PARTITION := true +BOARD_USES_QCOM_FBE_DECRYPTION := true + +# TWRP Configuration +TARGET_SUPPORTS_64_BIT_APPS := true +TW_THEME := portrait_hdpi +TW_EXTRA_LANGUAGES := true +TW_INPUT_BLACKLIST := "hbtp_vm" +TW_INCLUDE_REPACKTOOLS := true +TW_INCLUDE_RESETPROP := true +TW_INCLUDE_LIBRESETPROP := true +TW_INCLUDE_NTFS_3G := true +TW_BACKUP_EXCLUSIONS := /data/fonts +TW_NO_SCREEN_BLANK := true +TW_SCREEN_BLANK_ON_BOOT := true +TW_MAX_BRIGHTNESS := 3515 +TW_DEFAULT_BRIGHTNESS := 1024 +TW_FRAMERATE := 60 +TW_HAS_EDL_MODE := true +TW_INCLUDE_FASTBOOTD := true +TW_CUSTOM_CPU_TEMP_PATH := /sys/class/thermal/thermal_zone39/temp +TW_EXCLUDE_DEFAULT_USB_INIT := false +TARGET_USE_CUSTOM_LUN_FILE_PATH := /config/usb_gadget/g1/functions/mass_storage.0/lun.%d/file +TW_SUPPORT_INPUT_AIDL_HAPTICS := true +TW_SUPPORT_INPUT_AIDL_HAPTICS_FIX_OFF := true +TW_EXCLUDE_APEX := true +TW_FORCE_KEYMASTER_VER := false +TW_NO_SCREEN_TIMEOUT := true + +# Excludes +TW_USE_SERIALNO_PROPERTY_FOR_DEVICE_ID := true + +# OrangeFox Variables +OF_AB_DEVICE_WITH_RECOVERY_PARTITION := true +OF_FLASHLIGHT_ENABLE := true +OF_HIDE_NOTCH := true +OF_PATCH_AVB20 := true +OF_USE_LOCKSCREEN_BUTTON := true +FOX_ENABLE_APP_MANAGER := true +OF_FORCE_PREBUILT_KERNEL := true +OF_DEFAULT_KEYMASTER_VERSION := 4.1 +OF_DISABLE_MIUI_SPECIFIC_FEATURES := true +OF_DONT_PATCH_ENCRYPTED_DEVICE := true +FOX_USE_BASH_SHELL := true +FOX_ASH_IS_BASH := true +FOX_USE_TAR_BINARY := true +FOX_USE_SED_BINARY := true +FOX_USE_XZ_UTILS := true +FOX_USE_LZ4_UTILS := true +OF_KEEP_DM_VERITY := true +OF_RUN_POST_FORMAT_PROCESS := true +OF_SUPPORT_ALL_BLOCK_OTA_UPDATES := true +OF_USE_GREEN_LED := true +OF_NO_TREBLE_COMPATIBILITY_CHECK := true +OF_STATUS_INDENT_LEFT := 64 +OF_STATUS_INDENT_RIGHT := 64 +OF_ADVANCED_SECURITY := true +FOX_VERSION := S12.1 +FOX_DELETE_AROMAFM := true +FOX_RECOVERY_VENDOR_PARTITION := /dev/block/mapper/vendor +FOX_RECOVERY_SYSTEM_PARTITION := /dev/block/mapper/system +TW_OVERRIDE_SYSTEM_PROPS := "ro.build.fingerprint=ro.system.build.fingerprint;ro.build.version.incremental" +TW_NO_USB_STORAGE := false +RECOVERY_SDCARD_ON_DATA := false +TW_INCLUDE_FASTBOOTD := true +TW_INCLUDE_PYTHON := true +TARGET_USES_MKE2FS := true + +# Magisk Specific Build Flags +OF_USE_LATEST_MAGISK := true +OF_USE_MAGISKBOOT_FOR_ALL_PATCHES := true +OF_USE_MAGISKBOOT := true + +# TWRP Debug Flags +TARGET_USES_LOGD := true +TWRP_EVENT_LOGGING := false +TWRP_INCLUDE_LOGCAT := true +TARGET_RECOVERY_DEVICE_MODULES += debuggerd +TW_RECOVERY_ADDITIONAL_RELINK_FILES += $(TARGET_OUT_EXECUTABLES)/debuggerd +BOARD_RAMDISK_USE_LZMA := true +BUILD_BROKEN_MISSING_REQUIRED_MODULES := true diff --git a/README.md b/README.md new file mode 100644 index 0000000..4cd6cd8 --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +Device configuration for Moto G Stylus 5G (2023) (codenamed "genevn") +========================================= + +The Motorola Moto G Stylus 5G (2023) (codenamed _"genevn"_) is a mid-range smartphone from Motorola Mobility announced in May 2023. + +## Device specifications + +Basic | Spec Sheet +-------:|:------------------------- +SoC | Qualcomm SM6450 Snapdragon 6 Gen 1 (4 nm) +CPU | Octa-core (4x2.20 GHz Cortex-A78 & 4x1.8GHz Cortex-A55) +GPU | Adreno 710 +Memory | 6 GB RAM (LPDDR4X) +Shipped Android Version | 13.0, My UX 3.0 (Global) +Storage | 128 GB | 256 GB (UFS 3.1) +Battery | Non-removable Li-Po 5000 mAh battery +Display | LTPS, 120 Hz, 2400 x 1080 pixels, 6.67 inches (~403 ppi density) +Camera | 50MP (Wide) + 8MP (Ultra-wide) + 16MP (Selfie) + +## Device picture +![Motorola Moto G Stylus 5G (2023)](https://fdn2.gsmarena.com/vv/pics/motorola/motorola-moto-g-stylus-5g-2023-1.jpg) + +# Status +Current state of features: +- [x] Correct screen/recovery size +- [x] Working touch, display +- [x] Screen goes off and on +- [x] Backup/restore to/from internal/external storage and adb +- [x] Poweroff +- [x] Reboot to system, bootloader, recovery, fastboot, edl +- [x] ADB (including sideload) +- [x] Support EROFS/F2FS/EXT4/exFAT/FAT32/NTFS +- [x] Decrypt /data +- [x] Flashing zip/images +- [x] MTP export +- [x] All important partitions listed in wipe/mount/backup lists +- [x] Input devices via USB-OTG +- [x] USB mass storage export +- [x] Correct date +- [x] Battery level +- [x] Set brightness +- [x] Vibrate and set vibration +- [x] Screenshot +- [x] Advanced features + +# Building +```bash +export ALLOW_MISSING_DEPENDENCIES=true +source build/envsetup.sh +lunch twrp_genevn-eng +mka recoveryimage -j$(nproc --all) +``` + +**Copyright (C) 2023 Team Win Recovery Project** diff --git a/device.mk b/device.mk new file mode 100644 index 0000000..523fed0 --- /dev/null +++ b/device.mk @@ -0,0 +1,125 @@ +# +# Copyright (C) 2023 The Android Open Source Project +# Copyright (C) 2023 SebaUbuntu's TWRP device tree generator +# +# SPDX-License-Identifier: Apache-2.0 +# + +# Soong namespaces +PRODUCT_SOONG_NAMESPACES += \ + $(LOCAL_PATH) + +# API +BOARD_SHIPPING_API_LEVEL := 31 +BOARD_API_LEVEL := 31 +PRODUCT_SHIPPING_API_LEVEL := 31 +SHIPPING_API_LEVEL := 31 + +# A/B +AB_OTA_POSTINSTALL_CONFIG += \ + RUN_POSTINSTALL_system=true \ + POSTINSTALL_PATH_system=system/bin/otapreopt_script \ + FILESYSTEM_TYPE_system=ext4 \ + POSTINSTALL_OPTIONAL_system=true + +AB_OTA_POSTINSTALL_CONFIG += \ + RUN_POSTINSTALL_vendor=true \ + POSTINSTALL_PATH_vendor=bin/checkpoint_gc \ + FILESYSTEM_TYPE_vendor=ext4 \ + POSTINSTALL_OPTIONAL_vendor=true + +# Boot control HAL +PRODUCT_PACKAGES += \ + android.hardware.boot@1.2-impl-qti \ + android.hardware.boot@1.2-impl-qti.recovery \ + android.hardware.boot@1.2-service + +PRODUCT_PACKAGES_DEBUG += \ + bootctl + +PRODUCT_PACKAGES += \ + otapreopt_script \ + checkpoint_gc \ + update_engine \ + update_engine_client \ + update_verifier \ + update_engine_sideload + +# Crypto +PRODUCT_PACKAGES += \ + qcom_decrypt \ + qcom_decrypt_fbe + +# Dynamic partitions +PRODUCT_USE_DYNAMIC_PARTITIONS := true + +# F2FS utilities +PRODUCT_PACKAGES += \ + sg_write_buffer \ + f2fs_io \ + check_f2fs \ + mtpfs + +# Fastbootd +PRODUCT_PACKAGES += \ + fastbootd \ + android.hardware.fastboot@1.1-impl-mock + +# FUSE +PRODUCT_PRODUCT_PROPERTIES += \ + persist.sys.fuse.passthrough.enable=true + +# Host Adb +PRODUCT_HOST_PACKAGES += \ + adbd \ + mtpd + +# HACK: Set vendor patch level +PRODUCT_PROPERTY_OVERRIDES += \ + ro.bootimage.build.date.utc=0 \ + ro.build.date.utc=0 + +# OEM otacert +PRODUCT_EXTRA_RECOVERY_KEYS += \ + $(LOCAL_PATH)/security/ota + +# Take a few libraries from sources +TARGET_RECOVERY_DEVICE_MODULES += \ + android.hardware.vibrator-V2-ndk_platform.so \ + android.hidl.allocator@1.0 \ + android.hidl.memory@1.0 \ + android.hidl.memory.token@1.0 \ + libdmabufheap \ + libhidlmemory \ + libion \ + libnetutils \ + libxml2 \ + vendor.display.config@1.0 \ + vendor.display.config@2.0 \ + libdisplayconfig.qti + +RECOVERY_LIBRARY_SOURCE_FILES += \ + $(TARGET_OUT_SHARED_LIBRARIES)/android.hardware.vibrator-V2-ndk_platform.so \ + $(TARGET_OUT_SHARED_LIBRARIES)/android.hidl.allocator@1.0.so \ + $(TARGET_OUT_SHARED_LIBRARIES)/android.hidl.memory@1.0.so \ + $(TARGET_OUT_SHARED_LIBRARIES)/android.hidl.memory.token@1.0.so \ + $(TARGET_OUT_SHARED_LIBRARIES)/libdmabufheap.so \ + $(TARGET_OUT_SHARED_LIBRARIES)/libhidlmemory.so \ + $(TARGET_OUT_SHARED_LIBRARIES)/libion.so \ + $(TARGET_OUT_SHARED_LIBRARIES)/libnetutils.so \ + $(TARGET_OUT_SHARED_LIBRARIES)/libxml2.so \ + $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.0.so \ + $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@2.0.so \ + $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/libdisplayconfig.qti.so + +# TZDATA +PRODUCT_PACKAGES += \ + tzdata_twrp +# Virtual ab device +PRODUCT_PROPERTY_OVERRIDES += \ + ro.virtual_ab.enabled=true + +# Namespace definition for librecovery_updater +SOONG_CONFIG_NAMESPACES += ufsbsg +SOONG_CONFIG_ufsbsg += ufsframework +SOONG_CONFIG_ufsbsg_ufsframework := bsg diff --git a/system.prop b/system.prop new file mode 100644 index 0000000..9c882e8 --- /dev/null +++ b/system.prop @@ -0,0 +1,32 @@ +# Product informations +ro.product.board=parrot +ro.board.platform=parrot + +# ADB +ro.adb.secure=0 + +# Battery Property +ro.charger.enable_suspend=1 + +# Crypto +ro.crypto.allow_encrypt_override=true +vendor.gatekeeper.disable_spu=true +fbe.metadata.wrappedkey=true +ro.crypto.volume.filenames_mode=aes-256-cts +ro.vendor.qti.va_aosp.support=1 +ro.crypto.volume.metadata.method=dm-default-key + +# MTP +vendor.usb.use_ffs_mtp=1 + +# PASSTHROUGH +persist.sys.isUsbOtgEnabled=true +sys.usb.controller=a600000.dwc3 + +# Storage +external_storage.projid.enabled=1 +external_storage.casefold.enabled=1 +external_storage.sdcardfs.enabled=0 + +# Virtual AB device +ro.virtual_ab.enabled=true diff --git a/twrp_genevn.mk b/twrp_genevn.mk new file mode 100644 index 0000000..9fffdfd --- /dev/null +++ b/twrp_genevn.mk @@ -0,0 +1,35 @@ +# +# Copyright (C) 2023 The Android Open Source Project +# Copyright (C) 2023 SebaUbuntu's TWRP device tree generator +# +# SPDX-License-Identifier: Apache-2.0 +# + +# Inherit from those products. Most specific first. +$(call inherit-product, $(SRC_TARGET_DIR)/product/base.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_keys.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk) + +# Inherit some common TWRP stuff. +$(call inherit-product, vendor/twrp/config/common.mk) + +# Inherit from genevn device +$(call inherit-product, device/motorola/genevn/device.mk) + +PRODUCT_DEVICE := genevn +PRODUCT_NAME := twrp_genevn +PRODUCT_BRAND := motorola +PRODUCT_MODEL := motorola moto g stylus 5g (2023) +PRODUCT_MANUFACTURER := motorola + +PRODUCT_GMS_CLIENTID_BASE := android-motorola + +PRODUCT_BUILD_PROP_OVERRIDES += \ + TARGET_PRODUCT=genevn \ + PRIVATE_BUILD_DESC="genevn-user 12 T1TGN33.60-114 7117f-b6786 release-keys" + +BUILD_FINGERPRINT := motorola/genevn/genevn:12/T1TGN33.60-114/7117f-b6786:user/release-keys + diff --git a/vendorsetup.sh b/vendorsetup.sh new file mode 100644 index 0000000..25c3e6a --- /dev/null +++ b/vendorsetup.sh @@ -0,0 +1,23 @@ + export DEVICE_PATH=device/motorola/genevn + export INCLUDE_PATH=$DEVICE_PATH/include + export OF_MAINTAINER_AVATAR=$("ls" ~/avatar/sosRR.png) + export OF_MAINTAINER=sosRR + export FOX_BUILD_TYPE="Stable" +# run a process after formatting data to work-around MTP issues + export OF_RUN_POST_FORMAT_PROCESS=1 + export OF_FBE_METADATA_MOUNT_IGNORE=1 + export OF_ENABLE_LPTOOLS=1 + export OF_UNBIND_SDCARD_F2FS=1 + export OF_KEEP_DM_VERITY=1 + export OF_SUPPORT_ALL_BLOCK_OTA_UPDATES=1 + export OF_FIX_OTA_UPDATE_MANUAL_FLASH_ERROR=1 + export OF_SUPPORT_ALL_PAYLOAD_OTA_UPDATES=1 +# + export OF_ENABLE_USB_STORAGE=1 + export FOX_USE_TWRP_RECOVERY_IMAGE_BUILDER=1 + export OF_NO_TREBLE_COMPATIBILITY_CHECK=1 + export OF_SUPPORT_OZIP_DECRYPTION=1 + export TW_OZIP_DECRYPT_KEY="0000" +# export FOX_USE_SPECIFIC_MAGISK_ZIP="~/magisk/Magisk-v26.4.zip" + export FOX_USE_SPECIFIC_MAGISK_ZIP=$("ls" ~/Magisk/Magisk-v26.4.zip) + export OF_USE_LATEST_MAGISK=1