diff --git a/BoardConfig.mk b/BoardConfig.mk index a060636..0620ed9 100644 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -51,9 +51,6 @@ QCOM_BOARD_PLATFORMS += kalama # Kernel TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/prebuilt/kernel TARGET_PREBUILT_DTB := $(DEVICE_PATH)/prebuilt/dtb.img -#BOARD_PREBUILT_DTBOIMAGE := $(DEVICE_PATH)/prebuilt/dtbo -#BOARD_INCLUDE_DTB_IN_BOOTIMG := true -#BOARD_INCLUDE_RECOVERY_DTBO := true TARGET_KERNEL_ARCH := arm64 # Boot @@ -67,11 +64,9 @@ BOARD_BOOTCONFIG += androidboot.hardware=qcom BOARD_BOOTCONFIG += androidboot.memcg=1 BOARD_BOOTCONFIG += androidboot.usbcontroller=a600000.dwc3 BOARD_BOOTCONFIG += console=tty0 -BOARD_MKBOOTIMG_ARGS := --header_version $(BOARD_BOOT_HEADER_VERSION) --pagesize $(BOARD_KERNEL_PAGESIZE) -BOARD_MKBOOTIMG_ARGS += --dtb $(TARGET_PREBUILT_DTB) BOARD_RAMDISK_USE_LZ4 := true BOARD_USES_GENERIC_KERNEL_IMAGE := true - +BOARD_CUSTOM_BOOTIMG_MK := $(DEVICE_PATH)/bootimg.mk # Recovery BOARD_HAS_LARGE_FILESYSTEM := true diff --git a/README.md b/README.md index 19290aa..cb96fe1 100644 --- a/README.md +++ b/README.md @@ -13,14 +13,14 @@ This is an unofficial TWRP device tree for the Motorola Edge 40 Pro/Motorola Edg * do some research if you have any concerns about this unofficial TWRP port * before flashing it! YOU are choosing to make these modifications, and if * you point the finger at me for messing up your device, I will laugh at you. -* Note that I am also sacrificing my device just to make this TWRP port, -* so you will be putting your device at risk too. +* I am also sacrificing my device just to make this TWRP port, +* so you will be putting your device at risk by using certain features of this TWRP port. */ ``` # Note -This family of phones uses boot.img's kernel to boot the recovery (kind of like recovery-on-boot, except recovery is on a second ramdisk). As a result, an empty kernel image is provided as a workaround (the TWRP build system needs a kernel image). **Do not flash the recovery.img generated by the build system when building.** Otherwise, it will throw you +This family of phones uses boot.img's kernel to boot the recovery (kind of like recovery-on-boot, except recovery is on a second ramdisk). As a result, an empty kernel image is provided as a workaround (the TWRP build system needs a kernel image). A special command is included in `bootimg.mk`. Without it, the device will throw you `No valid operating system found` @@ -31,33 +31,28 @@ Attempting to boot using `fastboot boot` will not work; it must be flashed to re # Working Features - It can boot - Touchscreen -- File Manager (can browse /system) +- File Manager (can browse files and mounted partitions such as `/system`) - Can read (and possibly write) internal storage (you have to mount from terminal currently). Exception is `/data`, which is encrypted. - CPU Temperature -- Brightness +- Brightness (there is a default brightness that works in most environments set, but it of course can be adjusted through the slider) +- USB with adb (MTP appears in lsusb, so this should work as well) +- Super partition mapping (dm devices appear in /dev/block, and all match up with Android's numbering). # Non-working features -- USB (and in turn adb, mtp, this is top priority) -- Battery percentage (LineageOS recovery has the same issue) +- USB host mode (eg. Read USB drives) +- Battery percentage (LineageOS recovery has the same issue, so it is universal across all recoveries) - fastbootd (please do not try to boot into fastbootd, it may throw your device into a state where it can only boot into Android when "fastboot boot boot.img" is used, and it can only be exited when stock/LineageOS recovery.img is flashed). - `/data` partition with FBE (FBE just does not work) # Untested -- Flashing -- Sideload +- Flashing ZIPs/adb sideload (will test with LineageOS upgrade from 21 to 22 soon) +- Factory reset (I do not want to wipe my phone just to test TWRP) +- Backup/Restore super partition (backup of `/data` is guaranteed not going to work because again, encryption) - Anything else that you may use TWRP for normally # Instructions to Build -Same as all other TWRP (Android 12.1) device trees (when you git clone, the device tree is supposed to be located in device/motorola/rtwo, and no branch is required). However, ignore the existing `recovery.img` in the `/out/target/product/rtwo` directory and instead run this command from within the root directory of the build system: - -```bash -out/host/linux-x86/bin/mkbootimg --ramdisk out/target/product/rtwo/ramdisk-recovery.img --base 0x00000000 --pagesize 4096 --dtb device/motorola/rtwo/prebuilt/dtb.img --os_version 14 --os_patch_level 2024-12-01 --header_version 4 --output recovery.img -``` - -This will generate a `recovery.img` (stored in the root directory of the build system) which is bootable on these devices. - -This is to avoid the `No valid operating system found` error, which can occur if the `recovery.img` is not in the format generated from the command above. +Same as all other TWRP (Android 12.1) device trees (when you git clone, the device tree is supposed to be located in device/motorola/rtwo, and no branch is required). # Credits diff --git a/bootimg.mk b/bootimg.mk index 4024c9c..4f53a94 100644 --- a/bootimg.mk +++ b/bootimg.mk @@ -9,10 +9,6 @@ $(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(BOOTIM @echo "Made boot image: $@" $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(recovery_ramdisk) $(recovery_kernel) $(RECOVERYIMAGE_EXTRA_DEPS) - @echo "----- Making recovery image ------" - $(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@ - @echo "----- Lying about SEAndroid state to Samsung bootloader ------" - $(hide) echo -n "SEANDROIDENFORCE" >> $@ - @echo "Made recovery image: $@" - $(hide) tar -C $(PRODUCT_OUT) -c recovery.img > $(FLASH_IMAGE_TARGET) - @echo "Made flashable $(FLASH_IMAGE_TARGET): $@" + @echo "----- Making bootable recovery image for rtwo ------" + $(MKBOOTIMG) --ramdisk $(PRODUCT_OUT)/ramdisk-recovery.img --base $(BOARD_KERNEL_BASE) --pagesize $(BOARD_KERNEL_PAGESIZE) --dtb $(TARGET_PREBUILT_DTB) --os_version 14 --os_patch_level 2024-12-01 --header_version $(BOARD_BOOT_HEADER_VERSION) --output $@ + @echo "DONE! You can now flash the image using fastboot flash." diff --git a/mkbootimg b/mkbootimg deleted file mode 100644 index 83c2573..0000000 Binary files a/mkbootimg and /dev/null differ diff --git a/recovery/root/init.recovery.qcom.rc b/recovery/root/init.recovery.qcom.rc index 882dde6..9c31fc3 100644 --- a/recovery/root/init.recovery.qcom.rc +++ b/recovery/root/init.recovery.qcom.rc @@ -31,6 +31,7 @@ on init # to cut charging battery path write /sys/class/power_supply/battery/siop_level 0 setprop prepdecrypt.setpatch true + setprop sys.usb.configfs 1 on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} @@ -41,6 +42,7 @@ on fs mount vfat /dev/block/bootdevice/by-name/apnhlos /vendor/firmware_mnt export ANDROID_ROOT /system_root + # Mount bootdevice on boot start health-hal-2-1 @@ -55,3 +57,7 @@ on property:crypto.ready=0 on property:twrp.user.0.decrypt=0 umount /vendor/firmware_mnt + +on property:ro.boot.usbcontroller=* + setprop sys.usb.controller ${ro.boot.usbcontroller} + write /sys/class/udc/${ro.boot.usbcontroller}/device/../mode peripheral