[DEV] Help needed with some questions! - Galaxy S I9000 Android Development

While I've done this on a PC before, I've never tried this on Android, and I'm not sure if anything changes, so I thought I'd ask for advice!
This is how the internal SD card is partitioned at stock (8GB model):
Code:
[/data (RFS) 2GB][ /sdcard (FAT32) 6GB ]
This is how it is partitioned in the voodoo kernel:
Code:
[/data (RFS) 200MB][ EXT4 1.6GB ][ /sdcard (FAT32) 6GB ]
Okay, so changing /data requires a kernel mod, since it can't be unmounted at runtime, and it's RFS so it can't be resized afaik. I don't really have a problem with flashing the kernel, but a lot of people I've talked to aren't really happy with it. Plus, samsung has put changes into the kernel that aren't available in the source yet. Plus Froyo.
So I want to do the following:
Code:
[/data (RFS) 2GB][ /sdcard (FAT32) 3GB ][ EXT2/EXT4 3GB]
Since /sdcard can be unmounted at runtime, there should be no issue unmounting it, resizing it since it's just FAT32, changing the partition size, and then making a new partition with the left over space and formatting that as EXT2/EXT4 and then using normal symlinks.
So, the questions!
1) Any safety issues? I can't see any.
2) I've been spoiled by tools like gnu parted - how would I do the partition changing on Android? Should I just port gnu parted over? Has someone done this already?
3) Resizing FAT32 - same thing, parted should do it fine though.
Thanks a lot if you can help answer any of this! If I can get answers to this, I should have a very very nice cross-firmware/cross-variant lagfix that will help out a ton of people.

Is EXT2/EXT4 supported by Windows/Mac/Linux computer, when connecting the phone to the computer? Because in that case I would just change the whole 6GB to EXT.

Related

[Q] SDHC Card format?

I'm trying to figure out what format / partitions my sdhc card(s) should be in.
Does the stock firmware require specific partitioning? 1 FAT32 seems
like it would have huge waste due to the FAT clustering system. Would one
say 2gb FAT32 partition for the firmware to use + some sort of ext2/3/4
or other Linux type filesystem for the rest to better use the space work?
Would a linux swap partitition help / be used at all? I have a 2gb (already
formated as a single fat32 filesystem), a 16gb class 2 and a 32gb class 2
to work with.
I figured on partitioning / formatting the large cards with gparted on a
card reader device, then putting the card in the phone.
How does the incredible see the internal user flash space, as a 'second' SD type device?
Do I understand correctly, the system flash is logically treated as a number of filesystems
so they can be 'fixed' / 'updated' seperately?
Like the boot partition, kernal partition, recovery partition, system / root partition etc.
I'm trying to understand how the system a works vs a regular
unix / linux / bsd OS would. Like booting into recovery is kinda like booting into single user
to fix the boot or root partition.
Does nandroid backup the user (internal) flash or just the various
system flash partitions?
Thanks
Mine is just formatted fat32.
Sent from my ADR6300 using XDA App
fuzzynco said:
I'm trying to figure out what format / partitions my sdhc card(s) should be in.
Does the stock firmware require specific partitioning? 1 FAT32 seems
like it would have huge waste due to the FAT clustering system. Would one
say 2gb FAT32 partition for the firmware to use + some sort of ext2/3/4
or other Linux type filesystem for the rest to better use the space work?
Would a linux swap partitition help / be used at all? I have a 2gb (already
formated as a single fat32 filesystem), a 16gb class 2 and a 32gb class 2
to work with.
I figured on partitioning / formatting the large cards with gparted on a
card reader device, then putting the card in the phone.
How does the incredible see the internal user flash space, as a 'second' SD type device?
Do I understand correctly, the system flash is logically treated as a number of filesystems
so they can be 'fixed' / 'updated' seperately?
Like the boot partition, kernal partition, recovery partition, system / root partition etc.
I'm trying to understand how the system a works vs a regular
unix / linux / bsd OS would. Like booting into recovery is kinda like booting into single user
to fix the boot or root partition.
Does nandroid backup the user (internal) flash or just the various
system flash partitions?
Thanks
Click to expand...
Click to collapse
I believe the stock firmware won't be able to see the card if you reformat it in anything besides fat32, but this is just speculation.
You bring up a good question though. ext2 contains less read/write overhead than FAT32, and thus it would seem better to store certain read/write intensive files (i.e. music) on an ext2 partition rather than FAT32.
You could always root, install a stock-like kernel (Skyraider, Virtuous, etc.) and play around with fstab to see if you can get something usable.

[Q]SD card Parted

does anyone have parted your SD Card for application with ext3 format??
anyone knows how to do that??
I take it youve rooted your phone and are using old style apps2sd, not android's builtin version.
I dont recommend ext3 or ext4 filesystems for use with mobile phones - total overkill and will actually slow things down. Stick with ext2.
When i did all this on my htc hero i used the info from this post and everything worked ok. Note that you *dont* need a linux swap partition these days.

[Q] HTC Desire partially broken

Hello!
While trying to install S2E i managed to partially ruin the functionality of my phone. I have an HTC Desire (GSM) running Cyanogenmod 7.1 stable release. I have S-off, root and ClockworkMod Recovery v5.0.2.0.
(I wanted to install a new SD card. In the process I managed to loose all my previous SD card data and I only have a 2 months old back-up from when I was running a different android version, so that will not be very helpful at recuperating many things, but even without the old SD card my phone was still operating correctly besides being unable to run the apps installed on the card. I presume this issue is unrelated to my current problem.)
Here is how I've think I've broken the phone:
- I used Gparted to format a new 8 GB microSD card (class 6) with 1 GB ext4 partition and a FAT32 partition.
- I installed S2E and checked all the options for the OS to use the external storage on the SD card partition.
- It turned out that my partition was not correctly identified by the OS (probably the issue was with using the built-in card reader of the laptop and not a stand alone USB card reader).
- I booted into Recovery Mode and re-formated the SD card with 1 GB of ext3, 32 GB of Swap and the rest as fat.
- After the restart the boot process took a very long time. When the OS finally booted I practically had a fresh install with none of my old settings available (shortcuts, wallpaper, apps etc.). Even the apps stored on the local memory disappeared (S2E, ROM manager, gmail, market etc.) and my home button no longer works. I am unable to receive phone calls since the phone automatically rejects incoming calls. I see incoming calls in the call log and I can make outgoing calls.
I presumed the issue is with mounting the sd-ext partition, but even if I tried to manually mount it after boot I see no change.
I followed these guides to install parted and use 32fsck to see if the partitions are corrupt. I think I have no problems.
Here are the code reports of running parted:
Code:
parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
print
print
Model: SD 00000 (sd/mmc)
Disk /dev/block/mmcblk0: 7965MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 32.3kB 6909MB 6909MB primary fat32 lba
2 6909MB 7933MB 1024MB primary ext3
3 7933MB 7965MB 32.0MB primary linux-swap(v1)
and e2fsck:
Code:
e2fsck /dev/block/mmcblk0p2
e2fsck 1.41.6 (30-May-2009)
sd-ext: clean, 1091/499712 files, 129331/999425 blocks
Here is my fstab as well:
Code:
/dev/block/mtdblock4 /cache yaffs2 rw
/dev/block/mtdblock5 /data yaffs2 rw
/dev/block/mtdblock3 /system yaffs2 rw
/dev/block/mmcblk0p1 /sdcard vfat rw
/dev/block/mmcblk0p2 /sd-ext ext3 rw
I presume that a fresh OS install will fix the issues. However I hope I can recover the settings stored on the ROM if I fix the sd-ext partition issue.
I will appreciate any suggestions you might have.
ps: adb push and fstab pull is working only when phone is in Recovery. If the CM7.1 is booted there is no fstab in /etc.
Had a similar issue sometime ago. Sorry to say couldn't fix it. In fact I would say the amount of time you spend trying to fix that issue will outway a fresh install.
If you can do a full backup still and save it to your pc you could do a fresh install and work on the issue without loss of phone functionality. Just my thoughts...
Thanks for your advice!
I ended up going for a fresh install with CM7.1 and S2E.
Thinks are ok now the only problem I have is that I don't see the 1 GB of available space reported correctly. Something like 152 MB is free and a negative value is reported as the used space. The CM option of using expanded internal storage is dimmed but I am not sure if that should be different.
mindcsrusher said:
Thanks for your advice!
I ended up going for a fresh install with CM7.1 and S2E.
Thinks are ok now the only problem I have is that I don't see the 1 GB of available space reported correctly. Something like 152 MB is free and a negative value is reported as the used space. The CM option of using expanded internal storage is dimmed but I am not sure if that should be different.
Click to expand...
Click to collapse
No problem. Glad you sorted the issue.
I know with a2sd using standard settings won't show the true size of the parition wont be reported. Something to do with the way it works. If it's working well and letting you install apps with no problems I wouldn't worry too much about

[How-to] Using an ext4 formated SD card.

Update: I've since made a flashable zip that automatically creates a modified sdcard1 binary and extracts an init.d script to handle it all. Will make a thread in a more general location as this could be used on many TouchWiz devices. Link.
Hello everyone,
The mailman brought me a new 64GB microSD card this morning, and I wanted to try formatting it in ext4 instead of exFAT. Both for the heck of it and in case I wanted to give AOSP ROMs a try down the road.
The usual caveats apply.
Required:
init.d support
a mounting script
a mounting updater-script for custom recoveries.
You can get init.d support with the stock kernel on many devices by having the run-parts command launch from a custom install-recovery.sh script. See the following thread for files and a how-to:
[MOD]Term-init & Zip-init: Enable Init.d for Any Phones w/o Need of Custom Kernels!!!
SD card removal:
Should you need to remove the card it can be unmounted and safely removed from the storage settings as usual. Mounting it again requires either a reboot or manually executing the mount command and then activating the card in the storage settings.
Mounting script:
Make sure you have proper line endings, file name (e.g. 95mountsdext4) and permissions set.
Code:
#!/system/bin/sh
# Mount SD Card Ext4 Script
mount -rw -t ext4 /dev/block/mmcblk1p1 /storage/extSdCard
Mounting in CWM/TWRP:
The other piece in this is the attached zip file, which simply runs the appropriate mount command for Clockworkmod Recovery. Unmount as usual. This way you can also store nandroid backups and other update zips on the external as well.
Technical considerations:
The mounting occurs early enough during the boot process that the media scanner and MTP services have no issues with this.
There may be are some permissions related glitches to look out for, but it hasn't been an issue for me so far. (One possible fix would be a recursive chmod/chown added to the mounting script.)
Update: The camera app saves the photos properly to the SD card, but leaves them with improper permissions which prevent subsequent viewing or editing again until you chmod the files. To be continued...
If your init.d support comes from the install-recovery.sh trick, CWM will prompt to delete the script before reboot. Don't.
If the mounting script doesn't run for some reason, or you try to activate the card before having mounted it manually, the phone will give an error and ask if you want to format the card. Don't.
Enjoy,
Darkshado
I have been looking for a way to do this for a long time for numerous reasons (symlinks, >4GB file size, linux-only environment, etc.). I'll be giving this a try very soon.
Thanks for sharing!
EDIT: Just wanted to add that I think it's ridiculous Android doesn't support this natively.
The permissions issues are frustrating. I can take photos and store them on the card, but the umask for JB has been set as 077, in other words, rwx------ permissions, and ownership by the application's user.
I tried different arguments for the mount command to try and force permissions and ownership one way or another with no luck so far. Ironically, an NTFS formatted card might work better in this respect.
A similar mod had been made on the Nexus S and one of the posters resorted to an apk that regularly ran chmod -R 0777 on new files, I tried using it but it just hung there and did nothing on the Note II.
Another possibility would be using FUSE, although I'm not sure how to go about doing this yet.
Also, I pondered the possibility of using UDF instead of ext4, it is a standardized format and just about every major OS out there supports it too...
Any updates? Is it working already or...?
Despite all the good of Android, Google/carriers, whoever, not including ext2/3/4 support natively is just a slap in the face. Good to see someone working to right a wrong that subjugating software has done.
You should NOT be doing this. The Android hardware requirements clearly state that all shared storage directories must be case insensitive and must not have permissions. FAT32 is the only supported filesystem which meets these requirements. Mounting an EXT filesystem directly will break applications.
The newer versions of Android come with an "sdcard" utility which uses a FUSE driver to wrap a native EXT filesystem and exposes a pseudo filesystem which is case insensitive and is without permissions. You should mount the EXT SD card at a different location (/dev/fuse) and use the "sdcard" utility to emulate it at /storage/whatever. You can see the command line syntax of the "sdcard" utility in the source code.
CM10.1 does this automatically. https://github.com/CyanogenMod/android_system_core/tree/cm-10.1/sdcard
KurianOfBorg said:
You should NOT be doing this. The Android hardware requirements clearly state that all shared storage directories must be case insensitive and must not have permissions. FAT32 is the only supported filesystem which meets these requirements. Mounting an EXT filesystem directly will break applications.
The newer versions of Android come with an "sdcard" utility which uses a FUSE driver to wrap a native EXT filesystem and exposes a pseudo filesystem which is case insensitive and is without permissions. You should mount the EXT SD card at a different location (/dev/fuse) and use the "sdcard" utility to emulate it at /storage/whatever. You can see the command line syntax of the "sdcard" utility in the source code.
CM10.1 does this automatically. https://github.com/CyanogenMod/android_system_core/tree/cm-10.1/sdcard
Click to expand...
Click to collapse
Again, Android not natively supporting ext4 is a slap in the face. Usability over technical merit disgusts me.
muqali said:
Again, Android not natively supporting ext4 is a slap in the face. Usability over technical merit disgusts me.
Click to expand...
Click to collapse
It does support EXT4! Officially. All Google ROMs and AOSP can mount EXT4 partitions as /storage/*. The correct way to mount it is to use the command "sdcard" not "mount". I'm pretty sure any AOSP ROM will automatically mount an EXT4 SD card using the "sdcard" command just like Cyanogenmod does.
Thanks for the info. I'll look into this soon-ish, once my exams are over.
Sent from my SGH-T889V using xda app-developers app
KurianOfBorg said:
It does support EXT4! Officially. All Google ROMs and AOSP can mount EXT4 partitions as /storage/*. The correct way to mount it is to use the command "sdcard" not "mount". I'm pretty sure any AOSP ROM will automatically mount an EXT4 SD card using the "sdcard" command just like Cyanogenmod does.
Click to expand...
Click to collapse
It's still a second class citizen to a xFATx filesystem.
muqali said:
It's still a second class citizen to a xFATx filesystem.
Click to expand...
Click to collapse
No it's fully supported by AOSP exactly the same as FAT on AOSP and exFAT/NTFS on Samsung ROMs. It's the manufacturer's fault for REMOVING support from their ROM. When you insert an EXT SD card on AOSP, it gets mounted at /storage/* just like any other SD card.
In my N7100 with CM 10.1, ext4 has stopped working for my 32gb SDCard on 05-01-2013 nightly, even after reformatting, going back to stock, then reinstalling CM 10.1. I also noticed that my ext4 formatted 8GB SdCard still works, however, so I am not sure if it's a storage size issue in my case (32gb vs 8gb). I am trying a hybrid of 8mb fat32 / 28.*gb ext4 to see if that will work.
KurianOfBorg said:
No it's fully supported by AOSP exactly the same as FAT on AOSP and exFAT/NTFS on Samsung ROMs. It's the manufacturer's fault for REMOVING support from their ROM. When you insert an EXT SD card on AOSP, it gets mounted at /storage/* just like any other SD card.
Click to expand...
Click to collapse
clearday said:
In my N7100 with CM 10.1, ext4 has stopped working for my 32gb SDCard on 05-01-2013 nightly, even after reformatting, going back to stock, then reinstalling CM 10.1. I also noticed that my ext4 formatted 8GB SdCard still works, however, so I am not sure if it's a storage size issue in my case (32gb vs 8gb). I am trying a hybrid of 8mb fat32 / 28.*gb ext4 to see if that will work.
Click to expand...
Click to collapse
Is it formatted properly as ext4? Using mke2fs or (tune2fs to convert to ext4). All ROMs only mount the first partition on the SD card regardless of the file system. Sometime after mounting USB Mass Storage an the SD card doesn't remount properly so you need to reboot the device. You'll most probably want to use MTP with ext4 anyway.
KurianOfBorg said:
Is it formatted properly as ext4? Using mke2fs or (tune2fs to convert to ext4). All ROMs only mount the first partition on the SD card regardless of the file system. Sometime after mounting USB Mass Storage an the SD card doesn't remount properly so you need to reboot the device. You'll most probably want to use MTP with ext4 anyway.
Click to expand...
Click to collapse
Finally fixed the problem by running this command in ROM Toolbox Lite:
"find /storage/sdcard1/ -print0 | xargs -0 chown root:media_rw"
http://forum.xda-developers.com/showthread.php?p=38182488#post38182488
clearday said:
Finally fixed the problem by running this command in ROM Toolbox Lite:
"find /storage/sdcard1/ -print0 | xargs -0 chown root:media_rw"
http://forum.xda-developers.com/showthread.php?p=38182488#post38182488
Click to expand...
Click to collapse
Then it's not mounted properly! Your ext4 SD card has directly been mounted at /storage/* instead of through the FUSE driver. You should NOT be able to see permissions when it's mounted at /storage/*. The physical partition should be mounted at /dev/fuse. Reboot the device and check again whether permissions are visible at /storage/*.
KurianOfBorg said:
Then it's not mounted properly! Your ext4 SD card has directly been mounted at /storage/* instead of through the FUSE driver. You should NOT be able to see permissions when it's mounted at /storage/*. The physical partition should be mounted at /dev/fuse. Reboot the device and check again whether permissions are visible at /storage/*.
Click to expand...
Click to collapse
It's still visible at storage
How do I fix it?
clearday said:
It's still visible at storage
How do I fix it?
Click to expand...
Click to collapse
It should show up at /storege/* but that should be the FUSE driver's mount point with permissions stripped away. The real ext4 partition will be at /dev/fuse.
Any further progress?
I want to use symlinks and ext4 on my note 2 also.
On aosp roms just use the sdcard binary with an initd script.
Gesendet von meinem GT-N7105 mit Tapatalk 2
DerTeufel1980 said:
On aosp roms just use the sdcard binary with an initd script.
Click to expand...
Click to collapse
I'm trying to do this on Tweaked. There is an sdcard binary, however, it appears to be modified by Samsung as it's hardcoded to mount to /storage/sdcard0 and overrides the internal sdcard mount when I use it. It doesn't take a destination parameter like the AOSP/CM version does.
If anyone has an AOSP/CM build environment, could I trouble you for a statically linked version of the sdcard binary? I downloaded CM10.2-nightly, but it's dynamically linked and, of course, doesn't work on the stock based ROMs.
EDIT
It might still be nice, but I figured out a way around it. I hex edited the sdcard binary from the Note2 to use /storage/sdcard1. Then in the mount script, bind mounted it over to /storage/extSdCard. I've rebooted a few times and it seems to be working fine. I am copying data to it over MTP right now. I've attached a zip of the files I'm using.
NOTE: THIS IS NOT A FLASHABLE ZIP.
I might make one later, but this kind of needs to be a manual process anyway.
put the sdcard1 file in /system/xbin
chmod 755 /system/xbin/sdcard1
put the script file in /etc/init.d
set permissions/ownership on it
Now, if you have an ext4 formatted SD, and it's not mounted, you should be able to run the script and have it mount it, run the sdcard1 binary on it, and bind mount it over to the normal extSdCard spot. It will happen at boot if you got it all right.
There are probably improvements that can be made, my shell scripting is a bit rusty. Hopefully this will get people interested in it again, now that the permissions issues are resolved.

/storage/extSdCard can't mount after partition SD card CWM NOT WORKING AT ALL

http://forum.xda-developers.com/attachment.php?attachmentid=2823490&stc=1&d=1404033113Hi, I'm hearkenoath and I have to bear with a Galaxy Fame GT-6810L ;P Not complaining so much recently though.
I partitioned mi 32 GB SD class 4 Card Adata (if the brand helps) using Mini Tool Partition Wizard Home Edition like sayhellotwoheaven posted http://forum.xda-developers.com/showthread.php?t=2126363 I followed his steps and numbers. Even though I knoe that partitions should be only 20% of the total space.
And I know, I know: maybe our kernel doesn't support EXT4. I'm using Corsifame ROM from this forum but the perfomance was pushing me to smash my device against the wall. So I was interested in swapping virtual memory AND I KNOW, VM has a reduced number of R/W cycles and potentially can fry my SD/internal storage.
I used this helpful thread http://forum.xda-developers.com/showpost.php?p=50143050&postcount=101&nocache=1&z=8882311745546758 and set it up to full ZRAM usage and Swap partition (since the other options don't worked for me)
The result was superb, so much better that before or with the 32 GB card not partitioned but the space ended in 9.99 GB only readable trough the phone and with the Kies installed.
My problem is this: the SD card cant mount, obviuosly I can't flash zips from CWM (only using /sdcard0) or backup and that stuff. I tried umount /storage/extSdCard/ and mount/ from CWM. Also can't cd to that directory (but I feel like never can't)
What can I do?
My root was with VRoot if helps. I appreciate all input.
P.S. I followed this tutorial and got Backtrack 5 running in our humble device. I always thought that my device would freeze This are the screenshots and here are the links if you wanna try it.I wonder if Ubuntu can run as well, but it needs 2.5 GB of space (hope that not in internal) View attachment 2823462 http://apk-hacks.blogspot.mx/2012/06/backtrack-5-en-android-tutorial.html?m=1
http://forum.xda-developers.com/attachment.php?attachmentid=2823490&stc=1&d=1404033113
http://forum.xda-developers.com/attachment.php?attachmentid=2823496&stc=1&d=1404033485

Categories

Resources