[Q] Add EXT4 support to ROM to mount external hard drive - Android Q&A, Help & Troubleshooting

Hey folks.
So, I have installed a custom rom to an android box, it runs on EXT4 itself for the system but if I try to connect an external hard drive formatted as EXT4 it only says it's unsupported and will give me the option to format it, which I won't do. I don't want FAT32 or ExFAT or NTFS. I need EXT4 for reasons.
I was using this hard drive with my RaspberryPi before and it worked fine. Also this box is rooted and I can mount it manually with "mount -t ext4 /dev/block/sda /mnt/hd" or whatever and I can see the files, have read/write BUT other apps can't see it due to Android security (even messing with chown/chmod).
I'm not sure how to add EXT4 support to mountable storage at all to a ROM. The dev seems to be busy with other projects and won't help, so I have to figure it out on my own.
I have searched left and right but couldn't find any answer on how to do it myself, nothing very conclusive.
Should I just add the hdd to fstab.amlogic? Does it have anything to do with vold? I wanted the system to be able to recognize it and mount it, not mount it myself like this.
Futher info:
This is the BLKID for the hdd:
Code:
/dev/block/sda: UUID="4de...d5" TYPE="ext4"
/dev/block/vold/disk:8,0: UUID="4de...d5" TYPE="ext4"
This is the fstab.amlogic:
Code:
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# 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
/dev/block/misc /misc emmc defaults defaults
/dev/block/system /system ext4 ro wait
/dev/block/data /data ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check,encryptable=footer
/dev/block/cache /cache ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check
/devices/*.sd/mmc_host/sd* auto auto defaults voldmanaged=sdcard1:auto,noemulatedsd
/devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sd* auto auto defaults voldmanaged=udisk:auto
/devices/*dwc3/xhci-hcd.0.auto/usb?/*/host*/target*/block/sr* auto auto defaults voldmanaged=sr0:auto
/dev/block/loop auto loop defaults voldmanaged=loop:auto
# Add for zram. zramsize can be in numeric (byte) , in percent
/dev/block/zram0 /swap_zram0 swap defaults wait,zramsize=524288000
/dev/block/tee /tee ext4 noatime,nosuid,nodev,nodelalloc,nomblk_io_submit,errors=panic wait,check
Thank you.

Related

[Q] Is contents of Custom Recovery APK useful in obtaining custom recovery for vs985?

So I did some exploring in the posted custom recovery by AnZhi. There was some discussion over which partitions could be accessed. There is an fstab file in there that can be modified which should allow access to other partitions...
Recovery.fstab
Code:
# Android fstab file.
# 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
#<src> <mnt_point> <type> <mnt_flags> <fs_mgr_flags>
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults
/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults
Looking further it seems this works by overwriting the files in /system/recovery. The process can't be that simple... can it?
Also there is a keys file with a bunch of cryptic hex codes....not quite sure what they're used for.... useful?
I'm a very experienced programmer, but new when it comes to android bootloader/recovery exploit development.
Any ideas guys? What can we learn by perusing this apk?
PS
Newbies.... To see the contents of an apk file just rename *.apk to *.zip and unzip it
I'm also new to bootloaders, we can probably pull a fstab from a rooted g3 and edit the existing one from there
I'm Also curious to see what's in the apk, I'll extract it to see if I can gather some more info
Sent from my VS985 4G using XDA Premium 4 mobile app

Help (g2 mini/d620k external and internal storage swap)

hi, masters.. i just want to ask regarding my LG G2 D620K, I want to swap its internal and external storage. it's already rooted. I've read procedures for manual editing vold.fstab on root/system/etc..but i cant find such file. i've found something with "fstab" but it's "fstab.g2m". .below is what it says inside:
Android fstab file. # 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
#TODO: Add 'check' as fs_mgr_flags with data partition. # Currently we dont have e2fsck compiled. So fs check would failed. # #<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags> /devices/msm_sdcc.2/mmc_host /storage/external_SD vfat nosuid,nodev wait,voldmanaged=external_SD:auto /dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,barrier=1,discard wait,check /dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,noauto_da_alloc,discard,data=ordered wait,check,encryptable=/dev/block/platform/msm_sdcc.1/by-name/encrypt #/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 nosuid,nodev,barrier=1,data=ordered,nodelalloc wait,check #/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check #/dev/block/platform/msm_sdcc.1/by-name/drm /persist-lg ext4 nosuid,nodev,barrier=1,data=ordered wait,check #/dev/block/platform/msm_sdcc.1/by-name/sns /sns ext4 nosuid,nodev,barrier=1,data=ordered wait,check #/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults defaults #/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults defaults #/dev/block/platform/msm_sdcc.1/by-name/misc /misc emmc defaults defaults
android version: 5.0.2
software version: v20b-515-03
thank you in advance for any help

Where is boot partition?

Hi, i'm searching for the boot partition on Xperia mini pro and i can't find it. On other devices it's usually '/dev/block/mtdblockx' but on this device it's not.
There is no /boot directory at all. I'm wondering why we should use fastboot to flash boot.img instead of flashing it with the device itself ? (like some other devices)
I'm using Legacy xperia cm 13.0 and i this is 'fstab.semc' file in the root directory:
Code:
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags> <fs_mgr_flags>
# 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
/dev/null /boot mtd defaults defaults
/dev/null /recovery mtd defaults defaults
/dev/block/mtd/by-name/system /system yaffs2 ro wait
/dev/block/mtd/by-name/cache /cache yaffs2 rw,noatime,nosuid,nodev wait
/dev/block/mmcblk0p1 /data f2fs rw,discard,nosuid,nodev,noatime,nodiratime,inline_xattr wait,check,formattable
/dev/block/mmcblk0p1 /data ext4 noatime,nosuid,nodev,data=ordered,noauto_da_alloc,journal_async_commit,errors=panic wait,check
# Vold managed devices
/devices/platform/msm_hsusb_host.0* auto auto defaults voldmanaged=usb:auto
# zRAM
/dev/block/zram0 none swap defaults zramsize=134217728
How is this possible? Why it's pointing to /dev/null ?
I'm just wondering which partition fastboot uses to flash the kernel img ? And is this possible for us to find the partition and flash the kernel with phone using dd ?
Can anyone explain it to me?
Thank you.

Need help to install LineageOS on Samsung S2

Hi,
Completely new to smartphones in general, I just bought a second-hand Samsung Galaxy S2 from a specialized website. I tried to install LineageOS on it but with no success so far (the LineageOS wiki for this device seems to forget some important things when starting from a stock ROM).
Current situation and things that might help:
I don't have a microSD card.
I have a backup of the original .pit file.
Even if I really do not want to use the stock ROM, I can not find a way to reinstall a working one: installation with Odin works but there is a "boot loop" on the Samsung logo.
Installing Replicant works, but it is unfortunately too extremist for me.
As I don't have a microSD card, I try installing with "adb sideload image_file.zip" (like I do with Replicant), but TWRP displays errors about partitions :
Code:
...
E:Unable to locate storage partition for storing settings file.
Updating partition details...
...done
Unable to find partition for path '/system'
Unable to find partition for path '/data'
MTP enabled
Starting ADB sideload feature...
Installing zip file '/sideload/package.zip'
Target: samsung/GT-I9100:4.1.2/JZ054K/I9100XWMS2:user/release-keys
detected filesystem ext4 for /dev/blockmmcblk0p9
detected filesystem ext4 for /dev/blockmmcblk0p10
Can't install this package on top of incompatible data.
Please try another package or run a factory reset
Updater process ended with ERROR: 7
I tried doing a "factory reset" from TWRP but result is the same.
Here are some information that might be useful, gathered from an ADB shell:
/etc/recovery.fstab
Code:
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# 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
# data partition must be located at the bottom for supporting device encryption
/dev/block/mmcblk0p9 /system ext4 ro,noatime wait
/dev/block/mmcblk0p7 /cache ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check_spo
/dev/block/mmcblk0p1 /efs ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check_spo
/dev/block/mmcblk0p10 /data ext4 noatime,nosuid,nodev,noauto_da_alloc,journal_async_commit,errors=panic wait,check_spo,encryptable=/efs/metadata
/dev/block/mmcblk0p12 /preload ext4 noatime,nosuid,nodev,journal_async_commit wait
# vold-managed volumes ("block device" is actually a sysfs devpath)
/devices/platform/dw_mmc/mmc_host/mmc0/mmc0* auto auto defaults wait,voldmanaged=sdcard0:11,nonremovable,noemulatedsd
/devices/platform/s3c-sdhci.2/mmc_host/mmc1* auto auto defaults wait,voldmanaged=sdcard1:auto,noemulatedsd
/devices/platform/s3c_otghcd/usb* auto auto defaults voldmanaged=usbdisk0:auto
# recovery
/dev/block/mmcblk0p5 /boot emmc defaults recoveryonly
/dev/block/mmcblk0p6 /recovery emmc defaults recoveryonly
/etc/mtab
Code:
rootfs / rootfs rw,seclabel 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
tmpfs /tmp tmpfs rw,seclabel,relatime 0 0
/tmp/recovery.fstab
Code:
...
=> Linking mtab
=> Processing recovery.fstab
I:Processing '/dev/block/mmcblk0p9'
E:Invalid block device 'ext4' in fstab line '/dev/block/mmcblk0p9 /system ext4 ro,noatime
wait
'I:Processing '/dev/block/mmcblk0p7'
E:Invalid block device 'ext4' in fstab line '/dev/block/mmcblk0p7 /cache ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check_spo
'I:Processing '/dev/block/mmcblk0p1'
E:Invalid block device 'ext4' in fstab line '/dev/block/mmcblk0p1 /efs ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check_spo
'I:Processing '/dev/block/mmcblk0p10'
E:Invalid block device 'ext4' in fstab line '/dev/block/mmcblk0p10 /data ext4 noatime,nosuid,nodev,noauto_da_alloc,journal_async_commit,errors=panic wait,check_spo,encryptable=/efs/metadata
'I:Processing '/dev/block/mmcblk0p12'
E:Invalid block device 'ext4' in fstab line '/dev/block/mmcblk0p12 /preload ext4 noatime,nosuid,nodev,journal_async_commit wait
'I:Processing '/devices/platform/dw_mmc/mmc_host/mmc0/mmc0*'
E:Invalid block device 'auto' in fstab line '/devices/platform/dw_mmc/mmc_host/mmc0/mmc0* auto auto defaults wait,voldmanaged=sdcard0:11,nonremovable,noemulatedsd
'I:Processing '/devices/platform/s3c-sdhci.2/mmc_host/mmc1*'
E:Invalid block device 'auto' in fstab line '/devices/platform/s3c-sdhci.2/mmc_host/mmc1* auto auto defaults wait,voldmanaged=sdcard1:auto,noemulatedsd
'I:Processing '/devices/platform/s3c_otghcd/usb*'
E:Invalid block device 'auto' in fstab line '/devices/platform/s3c_otghcd/usb* auto auto defaults voldmanaged=usbdisk0:auto
'I:Processing '/dev/block/mmcblk0p5'
E:Invalid block device 'emmc' in fstab line '/dev/block/mmcblk0p5 /boot emmc defaults recoveryonly
'I:Processing '/dev/block/mmcblk0p6'
E:Invalid block device 'emmc' in fstab line '/dev/block/mmcblk0p6 /recovery emmc defaults recoveryonly
'E:Unable to locate storage partition for storing settings file.
Updating partition details...
...done
I:Unable to find storage partition '/'.
I:Unmounting main partitions...
Unable to find partition for path '/system'
Unable to find partition for path '/data'
...
I spent many hours hours on this issue and read many many things. I really hope someone will be able to help, or at least sympathise Feel free to ask if I can provide some information. Thanks!
Your life would be easier if you paid ten dollars for an SD card lol. My advice is to flash the stock ROM back. Root it. Install dual boot patcher apk and install lineage as data1. This way you avoid your headache and if anything goes wrong you can just boot back to the stock ROM and try again. Also are you sure you have the right ROM? S2 stuff is hard to find. I've been working on an s3 with no luck. Years ago I downgraded the bootloader and bricked it.
Interesting to know that dual boot with microSD card would be easier than only LineageOS (I am coming from the Linux word where it is generally simpler to remove Windows)… I will try to see that.
I got the stock ROM from samsung-updates.com/device/?id=GT-I9100. I am really disappointed to know that vendors like Samsung does not provide these officially.
Finally done it, thanks to people on Reddit! :victory:
Go to 3W dot reddit dot com/r/LineageOS/comments/603qeq/cannot_boot_into_twrp_on_samsung_galaxy_s2/ where the solution is written many times by different persons. Just note that you have to use TWRP 3.1.0, version 3.1.1 fails (see first post).
Now the goal is to update the LineageOS official wiki…

Bugged - no chance to fix?

Hi everybody
Currently i have attached a F1 to my pc which has some weird conditions...
The phone itself seems to be flashed to latest LineageOS, but it is encrypted.
Maybe because of the latest sideload, i can't really tell because the owner gave this to a friend...
So, prefered solution would be: decrypt the phone, get all the pictures/videos from it.
Another acceptable solution would be: install from scratch.
But:
fastboot seems to be botched.
Code:
C:\adb>adb devices
List of devices attached
22fd65f3 recovery
Looking good, adb can access this device.
So, if i could flash some decrypt-voodoo that the device boots and decrypts system...
But no, failing so far.
Then i thought, well, as it is already gone, just fastboot flash and forward.
Nope:
Code:
C:\adb>fastboot devices
???????????? fastboot
And the device goes back to bootloop.
Booting to recovery gives me a TWRP 3.5.2_10-0
Full access, except the encrypted data.
recovery is fully working, so i tried to flash vbmeta with fastboot (--disable-verity --disable-verification) but fastboot seems to be broken.
So... any thoughts where to start first?
Thx
I pulled fstab from phone:
twrp.fstab
Code:
# Android fstab file.
# 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 type device device2 flags
/boot emmc /dev/block/bootdevice/by-name/boot flags=display="Boot"
/cache ext4 /dev/block/bootdevice/by-name/cache
/recovery emmc /dev/block/bootdevice/by-name/recovery flags=display="Recovery";backup=1
/system ext4 /dev/block/bootdevice/by-name/system flags=backup=1;wipeingui;display="System"
/vendor ext4 /dev/block/bootdevice/by-name/vendor flags=backup=1;wipeingui;display="Vendor"
/system_image emmc /dev/block/bootdevice/by-name/system flags=backup=1;flashimg=1
/vendor_image emmc /dev/block/bootdevice/by-name/vendor flags=backup=1;flashimg=1
/data ext4 /dev/block/bootdevice/by-name/userdata flags=encryptable=footer;length=-16384;fileencryption=ice:aes-256-cts:aes-256-heh
/firmware vfat /dev/block/bootdevice/by-name/modem flags=display="Firmware";mounttodecrypt
/cust ext4 /dev/block/bootdevice/by-name/cust flags=display="Cust"
/misc emmc /dev/block/bootdevice/by-name/misc
/modem emmc /dev/block/bootdevice/by-name/modem flags=backup=1;display="Modem"
/bluetooth emmc /dev/block/bootdevice/by-name/bluetooth flags=backup=1;subpartitionof=/modem
/dsp emmc /dev/block/bootdevice/by-name/dsp flags=backup=1;subpartitionof=/modem
/efs1 emmc /dev/block/bootdevice/by-name/modemst1 flags=backup=1;display=EFS
/efs2 emmc /dev/block/bootdevice/by-name/modemst2 flags=backup=1;subpartitionof=/efs1
/efsc emmc /dev/block/bootdevice/by-name/fsc flags=backup=1;subpartitionof=/efs1
/efsg emmc /dev/block/bootdevice/by-name/fsg flags=backup=1;subpartitionof=/efs1
/persist ext4 /dev/block/bootdevice/by-name/persist flags=display="Persist"
/storage ext4 /data/media/0 flags=display="Internal Storage";usermrf;backup=1;fsflags="bind";removable
# Removable storage
/usb_otg vfat /dev/block/sdg1 /dev/block/sdg flags=display="USB-OTG";storage;wipeingui;removable
/external_sd vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0 flags=display="MicroSD Card";storage;wipeingui;removable
recovery.fstab
Code:
# Android fstab file.
# The filesystem that contains the filesystem e2fsck binary (typically /system) cannot
# specify 'check', and must come before any filesystems that do specify 'check'
# NOTE: /system and /vendor partitions are early-mounted and the fstab entry is specified in device tree (duplicated below for recovery image purposes only):
# /proc/device-tree/firmware/android/fstab/system
# /proc/device-tree/firmware/android/fstab/vendor
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/bootdevice/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=0,noauto_da_alloc latemount,wait,check,fileencryption=ice,quota,encryptable=footer
/dev/block/bootdevice/by-name/modem /vendor/firmware_mnt vfat ro,shortname=lower,uid=0,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait
/dev/block/bootdevice/by-name/dsp /vendor/dsp ext4 ro,nosuid,nodev,barrier=1 wait
/dev/block/bootdevice/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,barrier=1 wait
/dev/block/bootdevice/by-name/bluetooth /vendor/bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait
/dev/block/bootdevice/by-name/cache /cache ext4 noatime,nosuid,nodev,barrier=1 wait
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
/dev/block/bootdevice/by-name/boot /boot emmc defaults recoveryonly
/dev/block/bootdevice/by-name/recovery /recovery emmc defaults recoveryonly
/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,recoveryonly
/dev/block/bootdevice/by-name/vendor /vendor ext4 ro,barrier=1 wait,recoveryonly
/devices/platform/soc/8804000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto,encryptable=footer
/devices/platform/soc/a600000.ssusb/a600000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
and the regular fstab
Code:
/dev/block/sda20 /cache ext4 rw 0 0
/dev/block/sde48 /system_root ext4 ro 0 0
/dev/block/sde47 /vendor ext4 ro 0 0
/dev/block/sda21 /data ext4 rw 0 0
/dev/block/sde46 /firmware vfat rw 0 0
/dev/block/sda18 /cust ext4 rw 0 0
/dev/block/sda14 /persist ext4 rw 0 0
/storage ext4 rw 0 0
/usb_otg vfat rw 0 0
/external_sd vfat rw 0 0
Lonesome Walker said:
Hi everybody
Currently i have attached a F1 to my pc which has some weird conditions...
The phone itself seems to be flashed to latest LineageOS, but it is encrypted.
Maybe because of the latest sideload, i can't really tell because the owner gave this to a friend...
So, prefered solution would be: decrypt the phone, get all the pictures/videos from it.
Another acceptable solution would be: install from scratch.
But:
fastboot seems to be botched.
Code:
C:\adb>adb devices
List of devices attached
22fd65f3 recovery
Looking good, adb can access this device.
So, if i could flash some decrypt-voodoo that the device boots and decrypts system...
But no, failing so far.
Then i thought, well, as it is already gone, just fastboot flash and forward.
Nope:
Code:
C:\adb>fastboot devices
???????????? fastboot
And the device goes back to bootloop.
Booting to recovery gives me a TWRP 3.5.2_10-0
Full access, except the encrypted data.
recovery is fully working, so i tried to flash vbmeta with fastboot (--disable-verity --disable-verification) but fastboot seems to be broken.
So... any thoughts where to start first?
Thx
Click to expand...
Click to collapse
If the phone doesn't recognize in fastboot you need the fix and the drivers.
You can find everything you need in my POCO F1 Ultimate Collection & Guides.
Check AMD/Intel Fastboot Fix.
If you know pin/pattern you can flash the TWRP by REIGNZ go to recovery put pin/pattern to decrypt then connect your device to pc while you are in twrp (if MTP doesn't work at first go advanced>file manager> and choose sdcard0 (internal storage) then your device shoule recognized in pc and get your data.
To clean flash follow my clean installation guide.
Everything you need is on my thread I mentioned above.
Okay, this is interesting...
My own Poco F1 had no issues with the drivers installed before.
After updating, the actual bugged F1 can fastboot but my own can't anymore.
WTF?
I also switched cables, doesn't matter.
Okay, nevertheless, mine is not broken, so this will be a task for later...
Thank you so far for this working hint!
So, i now finally have rescued all the pictures, videos and Whatsapp stuff.
My friend is happy.
The next step would be flashing the Pixel Experience.
But: how to find out which Android version is currently installed?
Or should i flash the latest stock rom from Xiaomi? I mean, it can't be higher than that, right?
Thank you for your response!

Categories

Resources