To double-mount a flash card - Windows Mobile Development and Hacking General

Does anybody know how can I create a second mount point for my MicroSD flash card?
The reason I want it is because in my Russian device the mount point directory name consists of Cyrillic characters, and I already face problems with software because of this I'd rename it in the registry, but I'm afraid it will be not good in case of required HR and then restore...

OK, one more related question then: does file system on the internal memory disk of WM5 devices support links (not those shortcuts, but true links, like under xNIX or on NTFS!) to directories? If yes - how to create a link?

Related

[Q] How can I add a small Ext partition to my SD card and fill it with symlinks?

So I am an organization freak, and the root of my SD card had gotten a bit out of control. Not unusual, I know, but having just installed Titanium Media Sync and inKa File Manager, I've been doing a lot more file management and the constant scrolling through crap folders that I'll never need to access is getting old. So I've been trying a bunch of stuff to create what basically amounts to a folder full of shortcuts or symlinks that reference the various folders I need to use.
Now I could just create some sort of MyHome directory on my SD card and store my **** in there, but that doesn't solve the problem of having easy access to some of the folders that need to be in /sdcard, like the Download folder.
So the solution I came up with was to create a folder called 'Home' in the root of my phone. I added a bunch of symbolic links to Music, Photos, Downloads, Documents, etc, and the beauty is I can have stuff scattered all around my SD card and still access them neatly from this one folder. And filter out the crap I don't ever need. Doing this produced the exact effect I was hoping for, and I set it as my Home in InKa File Manager. However it comes with two problems:
First, this folder disappears every time I restart my phone! And second, even if this didn't happen I would still be faced with the folder disappearing every time I installed a new ROM. Oh, and in case it isn't obvious, FAT filesystems don't support symbolic links so this Home folder has to exist somewhere outside of the main SD card.
So, in conclusion: I would like to create a very small partition on my SD card that I have read/write access to, so that I can fill it with symbolic links that will stay put and always re-mount. My problem now is that I'm not familiar enough with the Unix file system or with mounting disks to determine how to make sure this partition gets mounted every time I start my phone. Or, if this happens automatically, where to look for the partition.
Thanks in advance to anyone who can point me in the right direction!! I'm pretty sure I have already created an ext2 partition on my card, by using iPartition on my Mac to place it after the FAT partition. But it won't let me name it so I don't even know where to begin looking for the partition itself.
Why can't you just make a folder called "Home" in /data somewhere? Shouldn't matter where the folder is since you can default your file manager to whatever folder upon opening.
Edit: Just tested it by making a folder /data/Home/
It survived a reboot fine.
Shouldn't be wiped when installing new roms either, as long as they don't wipe data like I know the ACS roms don't. Also if the rom you are flashing backs up and restores your data before flashing like some do, it MIGHT, idk for sure, but might backup this folder as well.
That... totally works. Stays after a reboot too. Thanks! This at least solves one problem and makes the idea totally doable again
Im still curious about a solution to the partition thing though. It would be nice to have a Home folder that was literally always around and that I wouldn't have to worry about even after installing new roms. I know some of them don't wipe data but I would generally Odin when installing a new ROM anyway. Installing Cyanogen for the first time definitely requires that and I feel like I may go back to a stock rom once or twice before CM goes final.
The reason nothing "sticks" when you put it in the root FS if because it is a RAM filesystem, loaded from a file image (zImage) at boot -- it's not a more typical file system in secondary storage like all the other filesystems. This is simply an artifact of how embedded linux systems work.
Sent from my mind using telepathitalk

[Q] Unable to sideload to sd card...help please?

Hi,
First off if this is answered I am sorry.
I did a lot of searching and was unable to see the answer to this...
I am running CM7.1 off uSD. Install went well, and have no issues. That being said, I am unable to find out where on the card to sideload books. I have booted into CM7.1, turned on USB storage, and have 2 drives appear in win: MYNOOK and CM7 SDCARD. I used the size agnostic image, and it appears that there is only the single partition on the card, and in file explorer, it shows the correct card size for memory, but only the single partition.
The only folders appearing on the card are:
.android_secure
Android
LOST.DIR
I tried to manually copy the books, media, etc. folders into a My Files folder on this drive, without success.
There is no other partition to repartition (shouldn't have to do that with size agnostic?). I have no problem loading books into the MYNOOK book folder, which I assume is the internal device memory.
Here is my question. How/where do I sideload books to use the storage on the uSD card? Do I have to create the folders somewhere? If so where?
My goal is to utilize the storage available on the card, but be able to read the titles in the stock software. Is it possible to do this without rooting, or do I need to root for any reason to access the right folders on the card for storage?
THANK YOU ALL!!
klewlessnoob said:
I tried to manually copy the books, media, etc. folders into a My Files folder on this drive, without success.
Click to expand...
Click to collapse
In what way was it not successful? Did the files copy and just can't find them with a reader? If so which reader?
The book I transferred over was not found in the stock software when I opened my library. Is there somewhere specific I am supposed to place it on the card for the Nook to see it? Thanks!
For the stock reader, I think you must use the 1gb area of the internal memory drive, which shows up as a separate drive on your PC when you plug it into the computer. When you are in CM7 and connect to the pc, cancel when it tries to install a device for the NC. Check the notifications on the NC, you need to click a button to enable copying files from your pc, and take care to properly safely remove/eject before disabling that and disconnecting the cable from your pc. Better to get a separate reader and install it from the market (e.g., Cool Reader). You can also install the Nook app from the market, but then books need to go within (possibly in a specific subdir) of the "Nook" folder on SDCARD.
So there is no way to use the card memory to store books if I want to use the stock reader??
Should there have been a "NOOK" folder created on the SD card as part of the CM7 process? Is that a file that the user needs to create? If so, does it go in the same partition as the CM7, as that is the only partition my machine is able to see?
thanks again
Hopefully you'll get more input on this, but I think the point of keeping the Nook stock available (aside from not voiding your warranty) relates to use of B&N books. However you can eject your CM sd card and use another sd card if you want more space for user media for use with the stock app. I thought the media drive was the 1gb area, but now I'm not so sure because on mine the MYNOOK disk is much smaller.
When you are in the stock firmware... you are seeing the boot partition of the uSD...
You can write the boot partition... resize it... then run the installer...
I have done it in the past... set up a 2GB boot partition... then setup the ROM on uSD. You then have a 2GB partition you can use when in stock.
Thanks for the info. I am a bit confused by your suggestion, can you please offer a bit more?
By writing the boot partition, then resizing it, does that mean I can resize now, after I have already set everything up? If so, what do you mean by the installer? Or do you mean I have to wipe the card and start over? If that is the case (start over) do you mean wipe the card, create a small partition for the boot to install on? Would that requre the use of an image that is not size agnostic?
Either way, how do I get the file structure in place on the non boot partition for the nook to see files that are saved there?
Thanks again for any help you can provide!
I have never had luck resizing it after it has been booted in the Nook and all the partitions created...
I have written the size agnostic image to the card... resized the only partition created at that point... then put the ROM on it and booted it in the nook so the installer script (size agnostic recovery) can do the partitioning and install the ROM.
For the question of getting the file structure... I'd have to ask how you wrote the files on the uSD... were you CM or stock?
I had always planned on running cm from the card, so when I wrote the files to the card, I was stock.
If I follow what you are saying, then steps for me to try at this point would be:
1. Reformat card
2. Write the disk image to the card
3. Shrink the single partition on the card (where the image is)
4. Add the CM ROM to same partition as the image
5. Install card and boot device
If this sounds right, I have 2 questions.
What size should the partition be for the image and CM ROM, maybe 2GB?
Will the Nook "see" the non-CM partition and create the file structure for saving files on the 2nd partition at some point? In my searches I saw that in early versions, there was a requirement that the 4th partition on the card be expanded to use for storage, won't I only have 2 at this point?
Thanks again so much for the help!
When you write the image to the card... it will only be about 114 MB.... you will probably want to increase the size to avoid any possible size issues later (with ROM's getting larger)
If you plan to use the stock nook ROM as well as CM7... you will probably want 2 GB boot partition... otherwise if you plan to only run CM7 you probably only want about 250 MB.
You can modify vold.fstab on the stock ROM to use partition 4 of the SD for its SD use... then you could avoid the 2 GB boot partition.
What happens when you use VG's SASD... the boot image is about 114 MB... when you boot it in the nook it creates partitions 2, 3 and 4... 2 and 3 are ext3 partitions, partition 4 is fat... partition 4 is the one set for sdcard in the ROM booted from SD...
This is why you can modify stock vold.fstab to point to partition 4... then both ROM's will be putting stuff on the same partition for "SD Card"
I think I follow that, but my issue is that currently I am unable to see partition 2,3 or 4 which I think is part of my problem.
When I set up the card, I used the SASD method, and all I can see in both win explorer and partition software is the single partition on the card. Should there also be partitions 2,3, and 4? Do I have to do something to make those partitions viewable?
I am not comfortable enough with my skill level to attempt to modify the stock vold.fstab file on the device, and was hopeful that by properly setting up the card, I would be able to keep stock as is, and use the card to multipurpose, ie run cm7 on part and use the remaining space on card to store books to be read in stock firmware. I am still hoping to do that....thanks
As far as only seeing partition 1.... that is a limitation of Windows.
By following the advice pertaining to starting over and increasing the size of the Boot partition immediately after writing the image... before doing anything else... you can provide more space for the stock ROM to use on the SD... it will use partiton 1 (the boot partition) without the other modifications to vold.fstab
ok, confused again
If I start over, write image, then resize that partition with the image, am I going to use the "rest" of the card, NOT in that partition to use with storage? OR am I going to resize the partition with the image to be big enough to use as the partition to put books on?
If it is the former, don't I again run into the problem of how to find the other partitions, or will I create them when resize the first partition after writing the image?
Thank you!
You will only ever see the first partition of the sd card when booting from the stock OS. Also with the card inserted in a usb flash card reader on Windows you can only mount the first partition as a drive letter. But you can see and resize partitions with contiguous unallocated space using MiniTools Partition Wizard.
OK thats good to know. Do you know if the SASD install should have created other partitions when I installed to the card? The reason I ask is that even in Partition Wizard, I am still only able to see the 1 large partition with everything in it.
If I start over again, will I need to use the wizard to create partitions first, then write the image to the resized 2 GB first partition, or should I write image to card, resize the first partition? If the latter, will resizing the first partition autmatically force the other partitions to be seen? I am not sure of this option, as I can't see where in the process the other partitions are created? Is this part of the process when CM7 boots?
Thanks!
Write the image. Safely remove from pc. Reinsert to pc. Use minitool partition to resize the (only, at that point) partition to the size you want. Use Apply in minitool software. Quit minitool and resume with the card setup.
does the minitool at that point (resizing) create the other partitions, or will the card setup do that? Do I have to do anything else to the other partitions to make them visable to the stock nook so that they can be used to access books while in stock os?
The card setup will create the other partitions. The stock os is never going to see anything but the 1st partition. You would need a terminal emulator or rooted file explorer installed in the stock os in order to mount another partition.
If that is the case, that stock os will never see anything other than the 1st partition, then there really is no way to accomplish what I am trying to do, correct?
In other words, put CM7 on the card, then when I want to use stock, boot into stock and have the reader find books saved on the card?

[REF] S3 Storage (Data Loss Recovery / Prevention / Info)

Note from the Author -
I am moving on to the N5 now and ditching my S3. I will continue to maintain this thread, however - please do PM me if you think that something needs to be changed or updated in this thread as I doubt I will be answering questions within the thread as much. Please don't PM support questions to me. Only PM updates that need to be made in the thread.
It's been a blast!
Regards
Dan
S3 Storage (Data Loss Recovery / Prevention / Info)
This thread is intended to give you an overview of some of the Storage of the S3 from a Data Loss and recovery perspective. It is not intended to cover USB sticks or mods to Swap / Mount other storage. It is solely to cover day-to-day data concerns and give a background to how these things work
Please note, if you have recently swapped between Android 4.1 and 4.2 and cannot find your sdcard data, you need to read [Info] Flashed 4.2? Can't find your /sdcard data?
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Before we get started...
Here are a couple of threads you should get familiar with before posting on XDA.
Forum Rules - use Search before posting
Post Questions or Support queries in Q&A, NOT General
Backround of Android storage (Pre-S3)
Firstly, I think we need to understand how Android worked historically as this will help us to understand how the S3 works now.
A legacy android device, lets pretend the HTC desire on Android 2.2 as this was a standard configuration at the time. It had 2 major partitions (and several minor ones which are irrelevant to this topic). It has the /system partition and the /data partition. These were partitions of the internal NAND flash memory.
/system is where the Android operating system lives. The user could not delete or change anything in here (unless you were rooted). All the software that came with the phone was installed in the /system partition
/data is where all the userdata goes. Whenever you installed an app from the market, it installed to /data/app and it put all it's important data into /data/data. Also any system settings you changed (Wallpaper, ringtones etc) all were stored in /data/data. When you did a factory reset, it wiped /data and everything in it.
Of course, having these 2 partitions was not enough for everyday use. There was no where to store your music, photos, documents etc. /data is just for app data and settings. So this is where /sdcard comes in
/sdcard is the Android mount point for the External SD card in this legacy android device. This means that when you inserted a Micro SD card, Android used /sdcard as it's internal reference to where the card's storage is. The /sdcard was a necessity before you could take photos. Over time, bigger apps started to put other data here. For example, a GPS / Map application would store its apk (application package) in /data/app and store your personal configuration settings in /data/data but it may download and store offline maps somewhere on the /sdcard. In older devices, the internal Memory (NAND Flash) was usually too small to allow much data on it. Many users would have to root to get more storage space or keep uninstalling apps to keep the "low on space" warnings at bay
How the S3 is different
Well, the S3 is substantially different. There are of course SOME similarities. For example, the S3 still has internal NAND Flash Memory. This is often referred to as the eMMC (Embedded MultiMedia Card) - which still contains the /system and /data partitions, used in exactly the same way.
The main difference is /sdcard. The S3 is designed specifically so using an external micro sd card is NOT a necessity. It has a larger NAND Flash internal memory (eMMC) so it can also have an "internal SD card". This is where people start to get confused. The entire internal memory is an eMMC which is essentially an internal SD card, however a partition of that internal memory is /sdcard.
OK, I know - let me explain. /sdcard is a mount point that Android uses to know where to store /sdcard data. But on the S3, instead of storing it on a required external sd card, it points to an internal memory partition. Now here is the clever bit. The /sdcard actually points to /data/media (or /data/media/0 in Android 4.2 onwards). So you continue to have your /data partition, but within /data you have:
/data/app
/data/data
/data/media
The clever thing is that the file system that android uses for /system and /data is a Linux file system called Extended FS. In our case, we use the Ext 4 file system. This is important to understand because these file systems do not work with Windows so an external SD card would usually be Fat 32 file system, or exFAT so we could plug it into our windows computers and read the contents. What Samsung have had to do is use the FUSE file system to allow /sdcard (or /data/media) to exist as a FAT file system within the EXT 4 file system. Clever stuff. But it has it's pro's and cons...
You lost me at file system
All electronic systems that have an operating system and store data use a file system. Think of it in it's simplest form. Imagine a school text book. It has lots of chapters about different things. It has a "Table of Contents" in the first few pages, telling you where each chapter in the book is so if you want to know what page chapter 13 is on, you look in the contents and find the page and go straight there - The alternative is looking through each page individually to find the chapter. Not a quick process.
Well data storage works the same. When you put a file on a hard drive, sdcard, USB stick (or whatever) it is written to a specific location. When it is written to this location, the location is added to the file system. So when you put word.doc onto the drive, The file system is informed of the (very complicated) location of the file. When you tell Windows, Android (or whatever) that you want to open word.doc, the operating system consults the File system and goes to retrieve the data from its true and real (yet very complicated) location on the drive.
There are many file system types still in use today. Usually they are operating system specific. For example, Ext 4 is a Linux file system (and Android by Proxy as it is Linux kernel based) and Windows cannot read Ext file systems. Similarly, exFAT is a Microsoft file system (also used for sdcards on the S3) and cannot be used (easily) on Linux machines. Since most everyday users of the S3 are Windows users, you can see now hopefully why it was important for Sasmung to use "magic" and implement FUSE to allow an exFAT file system to be used for /sdcard, within the Ext 4 partition of /data
Did I REALLY need to know ALL that?
You know what? Probably not but it may go some way to help understand the limitations we will cover later on.
A bit more info for the S3
Obviously, the internal memory supplied with the S3 may not be enough for all users so they added the ability to add expanded memory in the form of the Micro SD card. Android uses the Mount point of /extSdCard now, instead of /sdcard like it used for legacy devices - because /sdcard is already in use elsewhere.
One thing many of you have probably noticed is that with the S3, there is no option to mount the /sdcard or /extSdCard as USB Mass storage on your computer. You must use MTP or PTP.
PTP - Photo Transfer Protocol. When you connect your S3 to your computer using PTP, Your computer sees it as a camera. It will show photos on your "camera" and will set about implementing the default camera options (such as suggesting you import your photos) etc. It won't show documents or other media necessarily.
MTP - Media Transfer Protocol. When you connect your S3 to your computer, it will be seen as a media player. This should allow you full access to all the files on there, including word documents and the such like.
One of the reasons for this is that because /sdcard points to something using the FUSE file system and is not a true partition, it would be difficult to allow it to be used as USB Mass Storage. It may or may not be possible but the biggest advantage of using MTP / PTP is that the computer and the S3 can both access the internal memory at the same time. With USB Mass Storage (UMS) this is quite awkward and can result in errors.
Deleting data
This is partially why we needed to understand a little about file systems. So I could explain to you how data is handled when it is deleted.
As I explained earlier, when you write a file to memory, a corresponding entry is written to the file system to advise the OS where the data is. Sure, you may think you are writing the file to /sdcard/documents/work directory on the internal memory, but in reality these directories or folders do not actually exist at a memory hardware level. The data is written to a block and the file system is informed where that block is, how big the file is, what directory it should appear in to the OS etc. When a file is written the memory, the OS see's the available space go down and the used space go up. All this information comes from the file system.
When you delete the file, the actual data is NOT deleted. It remains where it is on the memory. The block is not overwritten. When the OS is told by the user to delete the file, the File system entry is deleted. This changes the free/used space as the file system is no longer accounting for the data, however the truth is the data still exists. When the next request to write a file to the memory comes from the OS, the file system will think the block where the old data was is empty and will overwrite it.
It is this difference between the file system and reality that allows data to be recovered by external software. if you do not write any data to the memory, external software can scan the memory for data whilst bypassing the file system all together. Ff course the window is small. You only have a very limited time to recover data before the file system allows the data to be overwritten with a new entry.
This is not just true of a deleted file. Even formatting the memory (which is actually just re-creating a new, blank file system) leaves all the data in tact behind-the-scenes and can all still be recovered until you start writing data to the memory. Cool huh?
Wow, all this time I've been stressing, is it really that simple?
Awwww snap! You got me. No it is not that simple. All this PC software, example: Piriform recuva only works on a computer drive. In windows, imagine this is anything with a Drive Letter. C: drive etc.
The only way to get a drive letter on your sdcard is to use USB Mass Storage mode, which as previously discussed - is not possible on your S3 (unless you are rooted, you can mount USB mass storage in custom recovery or use a UMS app from Play). The alternative is to use a card reader on your PC and put the sdcard in it.
There are also apps like Undelete for root users - which again, you guessed it - requires root. So if you're not rooted, it's simplest to use a card reader which can be bought for peanuts.
It's worth mentioning, NONE OF THE ABOVE will work with /sdcard on internal memory. It is not possible to get your data back once deleted from internal memory. Once gone, it's gone forever. You can only restore from /extSdCard (removable, external SDcard)
Phone won't boot, can I get my data back from internal memory?
Let's start by saying, it depends why your phone won't boot. If it's an SDS (Sudden Death Syndrome) type issue, where your internal eMMC (NAND FLash memory) has failed, then no. However, if you believe this is not the case then you can get your /sdcard data using adb BUT you need a custom recovery to be flashed via Odin before you do this. Read [REF] Understanding the basics before rooting your S3
However, if out of curiosity - you do still want to get your data off, using adb , read below:
Pre requisite is having adb "installed" on your windows PC. Download THIS file and follow the instructions in the readme.
You need to observe the following. For android 4.1.x and earlier, /data/media for android 4.2.x and newer, /data/media/0 - I will assume 4.2.2 for this guide,.
1) Boot into recovery, connect usb and go to "mounts and storage". Toggle the "mount data" options to mount these partitions. Tip, when mounted, the option then becomes "unmount data"
2) Open "cmd" in Windows and type the below code, which will copy all your data to a folder called sdcard on your windows desktop
Code:
adb pull /data/media/0/ c:\users\rootsu\desktop\sdcard
Also note, this assumes you have windows vista or newer. Also, it assumes your windows username is rootsu.
That's it, simple.
Display and Digitiser won't work, can I get my data back from internal memory?
You can use adb and a custom recovery to pull data from your /sdcard or even app data from /data/data
Pre requisite is having adb "installed" on your windows PC. Download THIS file and follow the instructions in the readme.
You need to observe the following. For android 4.1.x and earlier, /data/media for android 4.2.x and newer, /data/media/0 - I will assume 4.2.2 for this guide,.
1) Boot into recovery, connect usb and go to "mounts and storage". Toggle the "mount data" options to mount these partitions. Tip, when mounted, the option then becomes "unmount data"
2) Open "cmd" in Windows and type the below code, which will copy all your data to a folder called sdcard on your windows desktop
Code:
adb pull /data/media/0/ c:\users\rootsu\desktop\sdcard
Other things you may want to pull.....
Code:
adb pull /data/data/com.android.providers.telephony/databases/mmssms.db c:\users\rootsu\desktop\sdcard
Code:
adb pull /data/data/com.android.providers.contacts/databases/contacts2.db c:\users\rootsu\desktop\sdcard
Also note, this assumes you have windows vista or newer. Also, it assumes your windows username is rootsu.
That's it, simple.
Data corruption
When data becomes corrupt, there's really not a lot you can do. The file system knows where the data is already. If it's corrupt, you're stuck. Most common causes of corruption are:
1) Dirty unmount of /sdcard. SD card pulled out whilst it is being written to / phone shuts off whilst being written to. SOMETIMES - Plugging the card into a card reader in windows, Windows will ask to fix it and MAY fix it.
2) Fake SD card. This is really the MOST common. Get a card reader ans use:
h2testw.exe for windows to test your card in a card reader. Set it to read the full size of the card, which will take hours but well worth it.
If you get a result like this:
Code:
Warning: Only 63995 of 63996 MByte tested.
The media is likely to be defective.
3.8 GByte OK (8072512 sectors)
58.6 GByte DATA LOST (122989248 sectors)
Details:2 MByte overwritten (4096 sectors)
...Then you have a fake card, that is really 4 GB. I'll explain this.
Commonly, fake cards are reprogrammed to "think" they are high capacity cards, such as 32 GB or 64 GB to defraud buyers out of money. This is common on eBay (Never buy cards from eBay).
When these cards are formatted, the file system also thinks it is this fake capacity. Normally, when a card is full, the file system will report to the OS there is no more space and this prevents additional writes to the card. However, in the case where the card is 4GB and the File system thinks it is 64 GB, the tricked file system doesn't know the card is full. The file system keeps allowing data to be written to the card, over writing the existing data but without replacing the file system entries. The file system thinks data that has been overwritten hasn't been overwritten so when you try to open one of these files, it is essentially "corrupt" or non-existent.
Preventing data loss
Time to wise up guys. It is possible to recover data off your removable media, but internal memory - very unlikely. No apps on your PC or Android will help with deleted data. So you need to backup.
Dropbox - Use dropbox to automatically upload your photos to online storage.
Foldersync - Use FolderSync to upload important sdcard files to your dropbox account, or better yet - got a computer thats always on at home? Set foldersync to schedule a sync over wifi whilst you're asleep.
Other info
Interesting tidbits
Quite an exhaustive reference guide you got here rootSU thanks this will sure come handy for all of us :good:
Cheers
Thank you very much for taking the time to write this. It's a non academic approach to a sum of keywords and all of them are explained in such a manner that it would be almost impossible to misunderstand
Nice!
Nice post!
There are a few other interesting tidbits of info that might be worth mentioning:
- eMMC has an internal micro-controller that runs very specific firmware (and SDS was mainly caused by a bug in that firmware)
- eMMC (just like SSD) has specific writing/erasing limits and commands to deal with that - as a very general idea it can write about 4k at a time but can only erase in much larger blocks - like 64k (at least, but a 16GB model could have a much bigger block); normally on the same erase-size block there is very special list maintained, and based on that list wear leveling is implemented;
- all flash-based memory AGES - there is only a limited amount of erase/writes cycles possible before a point where the info is no longer reliably-stored; in some models that value can be incredibly small! to avoid writing more to some regions than other a mechanism call wear leveling is implemented; that one can have a big impact on both speed and reliability (but really don't expect it to create miracles)
- since it is very important for the speed and reliability of the flash memory to return unused blocks to this internal lists there are special TRIM commands that informs the firmware that the block can be garbage-collected; with an OS that supports TRIM, when a file is erased the blocks are also TRIMmed; this is one extra level that makes recovery basically impossible under normal circumstances
- this does not really mean that things are completely impossible to recover, just that you might need to spend so much on it that recovery would be impractical for any item worth less than 100000 US$ to 1 million US$
EDIT
- also just as with SSD it is not a bad idea to keep a good percentage of the flash memory free - IMHO at least 4GB for 16GB models, 6-8GB for 32GB models - that will improve performance since fragmentation (CLARIFICATION - free-space fragmentation) will grow much slower
- unfortunately there is no program for eMMC similar to smartctl (or any other SMART-data reading program) on normal SATA/IDE/SCSI disks - there seem to be some proprietary commands that are somehow similar but those are generally undocumented.
xclub_101 said:
Nice post!
Click to expand...
Click to collapse
I've put a link to your post in post 1. Where as it's not strictly relevant to my point, it is interesting stuff....
Fragmentation isn't an issue on ssd's. Its an issue on hdd because the head must physically move to another area of the Platter to get the data. That's the slow down. Defrag of a hdd moves all the used blocks (data) together so the actuator doesn't need to move much.
Performance degrades over time on ssds because every write, if data already exists must be erased too. But this hasn't really been an issue so much since TRIM became widely available.
-----------------------
Sent via tapatalk.
I do NOT reply to support queries over PM. Please keep support queries to the Q&A section, so that others may benefit
rootSU said:
...
Fragmentation isn't an issue on ssd's.
...
Click to expand...
Click to collapse
Thank you.
Also sorry for the misunderstanding with my contraction - what I wanted to say was free space fragmentation - that one does matter a lot on solid-state memory because of the garbage collection and some controllers have been famous for having a huge drop in performance with little free space - I will try to also correct that post.
xclub_101 said:
Sorry, I used a misleading contraction - what I wanted to say was free space fragmentation - that one does matter a lot on solid-state memory because of the garbage collection and some controllers have been famous for having a huge drop in performance with little free space - I will try to also correct that post.
Click to expand...
Click to collapse
Yep, it's true about Garbage collection, but TRIM *should* handle this nicely as should "over provisioning" although probably, some cheap SSD's may not over provision.
EDIT> Actually (sorry everyone for off topic) if you're interested in SSD's, these articles are a "fun" read... (I put fun in speech marks as it depends how geeky you are )
http://en.wikipedia.org/wiki/Trim_(computing)
http://www.pcworld.com/article/2038...-ssds-what-makes-these-speedy-drives-hum.html
Update to post 1:
Note from the Author -
I am moving on to the N5 now and ditching my S3. I will continue to maintain this thread, however - please do PM me if you think that something needs to be changed or updated in this thread as I doubt I will be answering questions within the thread as much. Please don't PM support questions to me. Only PM updates that need to be made in the thread.
It's been a blast!
Regards
Dan
Awesome bits of info. This is the game changer. I learned a whole lot just by reading here in XDA. I've only been using Android for a few weeks but thanks to XDA, I've already rooted, installed a bunch of apps and kept my OCD in check.
my device memory has corrupted and when i start recovery mode i get "E: faild to mount /cash (invalid argument) "

[Q] (Blefish 0516) How to forbid app created file/folder in ext-SD root directory ?

Thank Blefish first ,with your contribution to U8800 ,so we users can enjoy the Kitkat.
I have learned that Kitkat will forbid app create file/folder in ext-SD root directory,instead apps can only created their data in /Sdcad/Android.So my Sdcard directory will be tidy.
When I installed Blefish 0516 edition,I found the feature didn't work.
And I found in dir ./storage , ext-SD was mounted as Sdcard0 while the internal storage was mounted as Sdcard1.I think the irregular mounted sequence between ext-Sd and internal storage is the reason why the feature didn't work.
And I didn't found vold.fstab in ./system/etc , so I can't edit it to change the mount seq.
Dear Blefish guru,I am looking for your help~
Jellybean and forward use a different method now. They are not using vold.fstab anymore. Rather, /fstab.qcom is used (in our phone). It cannot be edited manually, a boot.img must be unpacked and repacked in order to do so.
Did you mention that apps can write to /sdcard/ but cannot write to /storage/sdcard0? This ROM does not enforce write permissions as KitKat does by default, so I am not quite sure.
Blefish said:
Jellybean and forward use a different method now. They are not using vold.fstab anymore. Rather, /fstab.qcom is used (in our phone). It cannot be edited manually, a boot.img must be unpacked and repacked in order to do so.
Did you mention that apps can write to /sdcard/ but cannot write to /storage/sdcard0? This ROM does not enforce write permissions as KitKat does by default, so I am not quite sure.
Click to expand...
Click to collapse
Two days after installed 0516,many folders were created by apps in ext-SD root directory(./storage/sdcard0/),while only two folders were found in internal storage(./storage/sdcard1/).And it seems that the two folders were somthing like being created while using recovery or something like that,unlikely being created by apps.
Cause I am using another rom to find whether the seq between internal and ext-SD is normal,yet I found that in android 4.0.4 there is no ./storage,so I cannot know the seq between internal and ext-SD.
zhuld.lord said:
Two days after installed 0516,many folders were created by apps in ext-SD root directory(./storage/sdcard0/),while only two folders were found in internal storage(./storage/sdcard1/).And it seems that the two folders were somthing like being created while using recovery or something like that,unlikely being created by apps.
Cause I am using another rom to find whether the seq between internal and ext-SD is normal,yet I found that in android 4.0.4 there is no ./storage,so I cannot know the seq between internal and ext-SD.
Click to expand...
Click to collapse
In my ROM external SD (/storage/sdcard0) is the primary storage. This means Android creates it's Pictures, Download, Music & other directories there automatically.
/storage/sdcard1 is just a storage, like USB OTG storage would be. It's not in use if sdcard0 is present (some apps can still write to it manually like Camera).
The /storage is another jb/kk feature. I did not go with the older direct mounting to /mnt/ because it's just deprecated. Mine is configured according to this (Nexus One with internal storage added manually): http://source.android.com/devices/tech/storage/config-example.html
Blefish said:
In my ROM external SD (/storage/sdcard0) is the primary storage. This means Android creates it's Pictures, Download, Music & other directories there automatically.
/storage/sdcard1 is just a storage, like USB OTG storage would be. It's not in use if sdcard0 is present (some apps can still write to it manually like Camera).
The /storage is another jb/kk feature. I did not go with the older direct mounting to /mnt/ because it's just deprecated. Mine is configured according to this (Nexus One with internal storage added manually):
Click to expand...
Click to collapse
Thanks for so detailed reply.
But I still don't understand how to enforce write permission.As a perfectionist , I really don't want to see so many folders created by third-party apps in my ext-SD.
If it is convenient for you,could you inform me the way to enable the write permission in your rom? :fingers-crossed:

Use free space in system partition

Hello,
I really like my G2 but i have one annoying issue:
When using one of those great custom roms i end up with pretty much free space on internal storage (system partition).
Since i'm having the 16GB-version i have ~10GB of usable space and currently ~7GB wasted space.
When using OSM-Maps 10GB is not much so i hope there is a way to utilize the free space on internal storage.
I have several ideas but i'm no dev and i hardly know about linux and even less about android.
So thats what i thought of:
Idea 1: Change partition size.
Well i think not a good idea but on my old HTC HD2 i could choose how the storage is partitioned. Don't know if this is possible on G2 and if changes there are not to risky.
Idea 2: Create a virtual SD-Card.
I know that this is possible somehow because i can do that with androidx86 on my tablet. So why dont write an app or zip-File-Patch that creates a custom-size virtual sd-card on internal storage/system partition. Problem is that i can't do that. Help of a dev would be needed.
Idea 3: Redirect folders.
On Linux and Windows it's possible to create "virtual folders" that are just links to the real folder that is stored somewhere else. Pretty handy on windows to move music-library to sd-card with full functions for example.
I think i've seen such things on android too when browsing my device. So why don't move for example the DCIM-Folder and others to internal storage this way?
But again a dev would be needed.
Idea 4: Copy some stuff with root and file explorer.
Thats maybe the simpliest way but i don't know how and where i can copy things. For example i've around 4GB of music on my device and if i can still access it i would have no problem to move it to internal storage somewhere. Maybe to ringtones folder or something like this.
But i'm not sure where i should put it to be on internal storage and access being still possible.
It would be great to further discuss this ideas with you and find some kind of solution.
Well i was able to evaluate on Android 4.2.2 that you can put your music folder into the system/media folder but it was only possible with aroma file manger in recovery.
Then the free space on internal storage gets decreased and the available storage gets increased. This means my files are now inside the system partition.
But there are problems:
Even with root total commander was not able to write things to this directory and even after setting permissions in aroma-fm after reboot i cant write there. So handling is painful.
The music app doesnt find the music now
Found that tool then to create a "link" on sdcard that links to the folder in system/media but that fails because it cannot link to this path.
Tool: http://forum.xda-developers.com/galaxy-s2/themes-apps/tool-directorybind-data-to-externalsd-t1410262
Overwhelming interest ...
Wrong section??
Well I've found your thread! Did you get anywhere with this?

Categories

Resources