Skip to content

Commit

Permalink
Make decryption universal, fix usb, add tools for super partitions
Browse files Browse the repository at this point in the history
All credit goes to brigudav!
  • Loading branch information
rxuglr committed Nov 27, 2022
1 parent 23f3444 commit 7ea9c59
Show file tree
Hide file tree
Showing 16 changed files with 166 additions and 44 deletions.
Binary file added addons/dynDFE.zip
Binary file not shown.
Binary file added addons/makerw.zip
Binary file not shown.
Binary file added addons/makerw2.zip
Binary file not shown.
Binary file added addons/mountrw.zip
Binary file not shown.
Binary file added addons/rmjournaling.zip
Binary file not shown.
Binary file modified prebuilt/dtb/surya.dtb
100755 → 100644
Binary file not shown.
Binary file modified prebuilt/kernel
100755 → 100644
Binary file not shown.
Binary file modified prebuilt/recovery_dtbo
100755 → 100644
Binary file not shown.
37 changes: 37 additions & 0 deletions recovery/root/init.recovery.qcom.rc
Original file line number Diff line number Diff line change
@@ -1,8 +1,35 @@
# Copyright (C) 2017-2022 The Android Open Source Project
# Copyright (C) 2014-2022 The Team Win LLC
# SPDX-License-Identifier: BSD-3-Clause

on fs
wait /dev/block/platform/soc/${ro.boot.bootdevice}
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
chmod 0660 /dev/qseecom
chown system drmrpc /dev/qseecom
chmod 0664 /dev/ion
chown system system /dev/ion
install_keyring

on post-fs-data
chown system system /sys/bus/i2c/drivers/aw8697_haptic/2-005a/f0_save
chown system system /sys/bus/i2c/drivers/aw8697_haptic/2-005a/osc_save
chown system system /sys/bus/i2c/drivers/aw8697_haptic/3-005a/osc_save
chown system system /sys/bus/i2c/drivers/aw8697_haptic/2-005a/custom_wave
chmod 0666 /sys/bus/i2c/drivers/aw8697_haptic/2-005a/custom_wave
chown system system /sys/bus/i2c/drivers/aw8697_haptic/2-005a/custom_wave
chmod 0666 /sys/bus/i2c/drivers/aw8697_haptic/2-005a/custom_wave
chown system system /sys/bus/i2c/drivers/aw8697_haptic/3-005a/custom_wave
chmod 0666 /sys/bus/i2c/drivers/aw8697_haptic/3-005a/custom_wave
chmod 0666 /sys/class/qcom-haptics/lra_calibration
chown system system /sys/bus/i2c/drivers/aw8697_haptic/0-005a/custom_wave
chmod 0666 /sys/bus/i2c/drivers/aw8697_haptic/0-005a/custom_wave
chmod 0666 /sys/class/qcom-haptics/lra_impedance
chown system system /sys/bus/i2c/drivers/awinic_haptic/3-005a/f0_save
chown system system /sys/bus/i2c/drivers/awinic_haptic/3-005a/osc_save
chown system system /sys/bus/i2c/drivers/awinic_haptic/3-005a/custom_wave
chmod 0666 /sys/bus/i2c/drivers/awinic_haptic/3-005a/custom_wave

on init
setprop crypto.ready 1

Expand Down Expand Up @@ -61,3 +88,13 @@ on property:vendor.sys.listeners.registered=true
start keymaster-4-0
start gatekeeper-1-0
start servicemanager

on property:ro.crypto.state=encrypted && property:ro.crypto.type=file
start patchfstab

service patchfstab /system/bin/patchfstab.sh
user root
group root
disabled
oneshot
seclabel u:r:recovery:s0
29 changes: 22 additions & 7 deletions recovery/root/init.recovery.usb.rc
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
#
# Copyright (C) 2021 The Android Open-Source Project
#
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2011-2016, 2018-2022 The Linux Foundation
# SPDX-License-Identifier: BSD-3-Clause
#

on early-init
Expand All @@ -13,7 +11,7 @@ on init
mkdir /config/usb_gadget/g1 0770 shell shell
write /config/usb_gadget/g1/bcdUSB 0x0200
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xff60
write /config/usb_gadget/g1/idProduct 0xFF60
mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
Expand Down Expand Up @@ -55,6 +53,9 @@ on property:sys.usb.config=adb && property:sys.usb.configfs=1
on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
start adbd

on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
start adbd

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"
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
Expand All @@ -69,7 +70,7 @@ on property:sys.usb.config=mtp && property:sys.usb.configfs=1
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xff60
write /config/usb_gadget/g1/idProduct 0xFF60
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}
Expand All @@ -82,8 +83,22 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:s
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xff68
write /config/usb_gadget/g1/idProduct 0xFF68
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}

on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_msc"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x2717
write /config/usb_gadget/g1/idProduct 0xFF28
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f2
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}
53 changes: 53 additions & 0 deletions recovery/root/system/bin/patchfstab.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/system/bin/sh
# This script is needed to support wrappedkey and fbe v2
# Author : brigudav
#

n=1

while [ $n -le 2 ]; do

finish() {
sleep 1
umount $tmpv || true
rmdir $tmpv
exit 1
}

logf=/tmp/recovery.log
tmpv=/tmp/vendor_fstab
mkdir -p $tmpv
fstabd=$tmpv/etc/fstab.default
fstabq=$tmpv/etc/fstab.qcom
fstabr=/system/etc/recovery.fstab
mount -o ro -t auto /dev/block/mapper/vendor $tmpv || true
if [ -f $fstabq ]; then
fbev2=$(grep "/userdata" ${fstabq} | grep ":v2")
echo "I:Find $fstabq" >> $logf
if [ -z "$fbev2" ]; then
echo "I:This ROM not support FBE v2. Changing flags in fstab" >> $logf
cp $fstabr.bak $fstabr
wrapv=$(grep "/userdata" ${fstabq} | grep "wrappedkey")
if [ -n "$wrapv" ]; then
echo "I:And enabled supports wrappedkey..." >> $logf
sed -i -e "s/formattable/formattable,wrappedkey/g" $fstabr
fi
finish
else
echo "I:This ROM with FBE v2. Continuing with the default fstab." >> $logf
finish
fi
elif [ -f $fstabd ]; then
cp $fstabr.bak $fstabr
wrap=$(grep "/userdata" ${fstabd} | grep "wrappedkey")
echo "I:Find $fstabd" >> $logf
if [ -n "$wrap" ]; then
echo "I:This ROM supports wrappedkey. Changing flags in fstab" >> $logf
sed -i -e "s/formattable/formattable,wrappedkey/g" $fstabr
fi
finish
fi
sleep 1
done

exit 0
2 changes: 1 addition & 1 deletion recovery/root/system/etc/recovery.fstab
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@ product /product ext4 ro,barrier=1,
vendor /vendor ext4 ro,barrier=1,discard wait,logical
/dev/block/bootdevice/by-name/cache /cache ext4 nosuid,noatime,nodev,barrier=1 wait
/dev/block/bootdevice/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,formattable,display=Metadata
/dev/block/bootdevice/by-name/userdata /data f2fs noatime,nosuid,nodev,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,inlinecrypt,checkpoint_merge latemount,wait,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption
/dev/block/bootdevice/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,inlinecrypt wait,check,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
9 changes: 9 additions & 0 deletions recovery/root/system/etc/recovery.fstab.bak
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
system /system ext4 ro,barrier=1,discard wait,logical
system_ext /system_ext ext4 ro,barrier=1,discard wait,logical
product /product ext4 ro,barrier=1,discard wait,logical
vendor /vendor ext4 ro,barrier=1,discard wait,logical
/dev/block/bootdevice/by-name/cache /cache ext4 nosuid,noatime,nodev,barrier=1 wait
/dev/block/bootdevice/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,formattable
/dev/block/bootdevice/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,inlinecrypt wait,check,formattable,fileencryption=ice,quota
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
72 changes: 39 additions & 33 deletions recovery/root/system/etc/twrp.flags
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,46 @@
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

# mount point fstype device device2 flags
# mount point fstype device device2 flags
/system_root ext4 /dev/block/mapper/system flags=backup=0;removable
/system_ext ext4 /dev/block/mapper/system_ext flags=backup=0;removable
/vendor ext4 /dev/block/mapper/vendor flags=backup=0;removable
/product ext4 /dev/block/mapper/product flags=backup=0;removable
/metadata ext4 /dev/block/sda10 flags=display=Metadata
/boot emmc /dev/block/sde46
/dtbo emmc /dev/block/sde47 flags=backup=1;display="DTBO";flashimg
/recovery emmc /dev/block/sda8 flags=backup=1;display="Recovery";flashimg
/firmware vfat /dev/block/sde4 flags=display="Firmware";mounttodecrypt;fsflags=ro
/modem_image emmc /dev/block/sde4 flags=backup=1;display="Modem";flashimg
/bluetooth vfat /dev/block/sde5 flags=display="Bluetooth";fsflags="ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait"
/bluetooth emmc /dev/block/sde5 flags=backup=1;display="Bluetooth";flashimg
/abl emmc /dev/block/sde8 flags=backup=1;display="Firmware-update"
/aop emmc /dev/block/sde1 flags=backup=1;subpartitionof=/abl
/cmnlib emmc /dev/block/sde11 flags=backup=1;subpartitionof=/abl
/cmnlib64 emmc /dev/block/sde12 flags=backup=1;subpartitionof=/abl
/devcfg emmc /dev/block/sde13 flags=backup=1;subpartitionof=/abl
/qupfw emmc /dev/block/sde14 flags=backup=1;subpartitionof=/abl
/keymaster emmc /dev/block/sde10 flags=backup=1;subpartitionof=/abl
/imagefv emmc /dev/block/sde15 flags=backup=1;subpartitionof=/abl
/hyp emmc /dev/block/sde3 flags=backup=1;subpartitionof=/abl
/xbl emmc /dev/block/sdb1 flags=backup=1;subpartitionof=/abl
/xbl_config emmc /dev/block/sdb2 flags=backup=1;subpartitionof=/abl
/storsec emmc /dev/block/sde38 flags=backup=1;subpartitionof=/abl
/tz emmc /dev/block/sde2 flags=backup=1;subpartitionof=/abl
/dsp emmc /dev/block/sde9 flags=backup=1;subpartitionof=/abl
/persist ext4 /dev/block/sda2 flags=backup=1;display="Persist"
/persist_image emmc /dev/block/sda2 flags=backup=0;display="Persist";flashimg
/cust ext4 /dev/block/sda7 flags=backup=1;display="Cust"
/cust_image emmc /dev/block/sda7 flags=backup=0;display="Cust";flashimg
/storage f2fs /data/media/0 flags=display="Internal Storage";usermrf;backup=1;fsflags="bind";removable
/efs1 emmc /dev/block/sdf2 flags=backup=1;display="EFS"
/efs2 emmc /dev/block/sdf3 flags=backup=1;subpartitionof=/efs1
/efsg emmc /dev/block/sdf4 flags=backup=1;subpartitionof=/efs1
/efsc emmc /dev/block/sdf5 flags=backup=1;subpartitionof=/efs1
/vbmeta emmc /dev/block/sde45 flags=backup=1;display="VBMeta";flashimg
/vbmeta_system emmc /dev/block/sda9 flags=backup=1;display="VBMeta System";flashimg
/dtbo emmc /dev/block/sde47 flags=backup=1;display="DTBO";flashimg
/recovery emmc /dev/block/sda8 flags=backup=1;display="Recovery";flashimg
/firmware vfat /dev/block/sde4 flags=display="Firmware";mounttodecrypt;fsflags=ro
/modem_image emmc /dev/block/sde4 flags=backup=1;display="Modem";flashimg
/bluetooth vfat /dev/block/sde5 flags=display="Bluetooth";fsflags="ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait"
/bluetooth emmc /dev/block/sde5 flags=backup=1;display="Bluetooth";flashimg
/abl emmc /dev/block/sde8 flags=backup=1;display="Firmware-update"
/aop emmc /dev/block/sde1 flags=backup=1;subpartitionof=/abl
/cmnlib emmc /dev/block/sde11 flags=backup=1;subpartitionof=/abl
/cmnlib64 emmc /dev/block/sde12 flags=backup=1;subpartitionof=/abl
/devcfg emmc /dev/block/sde13 flags=backup=1;subpartitionof=/abl
/qupfw emmc /dev/block/sde14 flags=backup=1;subpartitionof=/abl
/keymaster emmc /dev/block/sde10 flags=backup=1;subpartitionof=/abl
/imagefv emmc /dev/block/sde15 flags=backup=1;subpartitionof=/abl
/hyp emmc /dev/block/sde3 flags=backup=1;subpartitionof=/abl
/xbl emmc /dev/block/sdb1 flags=backup=1;subpartitionof=/abl
/xbl_config emmc /dev/block/sdb2 flags=backup=1;subpartitionof=/abl
/storsec emmc /dev/block/sde38 flags=backup=1;subpartitionof=/abl
/tz emmc /dev/block/sde2 flags=backup=1;subpartitionof=/abl
/dsp emmc /dev/block/sde9 flags=backup=1;subpartitionof=/abl
/persist ext4 /dev/block/sda2 flags=backup=1;display="Persist"
/persist_image emmc /dev/block/sda2 flags=backup=0;display="Persist";flashimg
/cust ext4 /dev/block/sda7 flags=backup=1;display="Cust"
/cust_image emmc /dev/block/sda7 flags=backup=0;display="Cust";flashimg
/storage f2fs /data/media/0 flags=display="Internal Storage";usermrf;backup=1;fsflags="bind";removable
/efs1 emmc /dev/block/sdf2 flags=backup=1;display="EFS"
/efs2 emmc /dev/block/sdf3 flags=backup=1;subpartitionof=/efs1
/efsg emmc /dev/block/sdf4 flags=backup=1;subpartitionof=/efs1
/efsc emmc /dev/block/sdf5 flags=backup=1;subpartitionof=/efs1
/vbmeta emmc /dev/block/sde45 flags=backup=1;display="VBMeta";flashimg
/vbmeta_system emmc /dev/block/sda9 flags=backup=1;display="VBMeta System";flashimg
/frp emmc /dev/block/sda5 flags=backup=1;display=FRP;flashimg

# Removable storage
/external_sd vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0 flags=fsflags=utf8;display="MicroSD";storage;wipeingui;removable
/sdcard1 vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0 flags=fsflags=utf8;display="MicroSD";storage;wipeingui;removable
/usb_otg vfat /dev/block/sdg1 /dev/block/sdg flags=fsflags=utf8;display="USB Storage";storage;wipeingui;removable
3 changes: 2 additions & 1 deletion system.prop
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
ro.product.vendor.marketname=Poco X3 NFC
ro.product.board=surya
ro.product.board=sm6150
ro.board.platform=sm6150
sys.usb.controller=a600000.dwc3
sys.usb.rndis.func.name=rndis_bam
sys.usb.rmnet.func.name=rmnet_bam
persist.sys.isUsbOtgEnabled=true
vendor.gatekeeper.disable_spu=true
ro.hardware.keystore_desede=true
ro.boot.dynamic_partitions=true
5 changes: 3 additions & 2 deletions vendor.prop
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
ro.crypto.allow_encrypt_override=true
ro.crypto.dm_default_key.options_format.version=2
ro.crypto.volume.metadata.method=dm-default-key
ro.crypto.volume.filenames_mode=aes-256-cts
ro.crypto.volume.options=::v2
ro.crypto.volume.filenames_mode=aes-256-cts
ro.crypto.volume.metadata.method=dm-default-key

0 comments on commit 7ea9c59

Please sign in to comment.