hx4700 NAND, NOR, ROM question - Upgrading, Modifying and Unlocking

Would it be possible to cook a ROM to put the persistent storage on the Storage Card and then just be sure to NEVER ever remove the card? Then utilize the NAND on the flash ROM and the NOR on the internal ROM (with XIP)
Here, http://blogs.msdn.com/windowsmobile/archive/2006/03/16/552996.aspx
Mike Caligaro mentions on an MSDN thread:
"it's possible to mount the internal storage on an SD card. We did this during WM5 development to let us do work on a device that didn't have enough flash available. However, the system can't handle it's persistent storage being removed on the fly. If you were to have your storage mounted on an SD card and you ejected the card, the system would crash. That was acceptable for development, but we'd never make end users put up with it."
Click to expand...
Click to collapse
Couldn't the same setup that his development team made, be made with the tools available here?
So, my question is:
Is there a way to cook a ROM to make use of both forms of flash ROM, both NAND (on card) and NOR (onboard) thereby taking advantage of the fast erase speeds of the NAND and, the fast read speeds and XIPing ability of the NOR (with the caveat of NEVER EVER being able to remove the card)
Appreciate any help in understanding this. Thanks.

wow, i second curiosity on this idea. wish i had more ideas to help implement it...

With 2 cards slots on the 4700, and then have one set to NEVER remove and use the other normally. Don't know if it's possible. The dev team put the internal storage on a card but what about the rest? MikeCal talks about the Treo like that.
MikeCal said:
NAND has some advantages over NOR, but NOR has other advantages over NAND. NOR is much better to execute code from, and NAND is much better to store data in. The ideal is to have the system code stored in NOR and the user data stored in NAND. That, by the way, is what the Treo 700w did.
Click to expand...
Click to collapse

Related

Are apps stored on the ROM partition?

Phones typically have a partition of encrypted memory for the OS and Apps. Most Win7 Phones have 512MB of this ROM. In other phones, the ROM severely limits the number or size of apps. Are apps in Windows 7 Phone stored in the ROM as well?
I didn't think so until I saw some phones have 1GB of ROM. If just the OS + 60MB of pre-installed software is allowed, what's the advantage of 1GB of ROM?
ROM should be Read Only Memory, so I guess that nothing except maybe major system updates will be installed on the ROM.
ROM is a misnomer but nevertheless the ROM partition is what manufacturers refer to for application space.
I don't see the point of having larger ROM partitions unless apps will be stored on the ROM. I'm hoping that if Windows 7 Phone stores apps on the ROM, it can efficiently recognize and install only the necessities onto the ROM and string the rest of the app over the single storage volume. Otherwise, we're looking at an OS with severely limited app storage.
I read in the Microsoft spec that any app pre-installed by the manufacturer needs to be restorable. So they probably have a backup copy of the app in the ROM section in that case.
athompson said:
I read in the Microsoft spec that any app pre-installed by the manufacturer needs to be restorable. So they probably have a backup copy of the app in the ROM section in that case.
Click to expand...
Click to collapse
Yes you are correct, however, as stated in the original post, the limit for pre-installed software is 60MB.
I know that side-loading isn't possible, but I still have to ask: can you remove the sd card and load an app directly onto it with a card reader? I know that removing the card causes a hard reset, but if you pull the battery first, then can you remove the card, mess with it, replace the card and then replace the battery without having the device hard reset? It seems like you could at least access the sd card file system this way (but I'm probably missing something).
Farmer Ted said:
I know that side-loading isn't possible, but I still have to ask: can you remove the sd card and load an app directly onto it with a card reader? I know that removing the card causes a hard reset, but if you pull the battery first, then can you remove the card, mess with it, replace the card and then replace the battery without having the device hard reset? It seems like you could at least access the sd card file system this way (but I'm probably missing something).
Click to expand...
Click to collapse
Surely, if the OS is split between the SD and phone memory then trying to just use the SD in that way would result in corruption?
Also, I imagine that the OS does self consistency checks, in some way, so that when you reinserted the SD card it'd notice that it's been altered?
Of course, that's a guess and I could be completely wrong.
I think I read in another thread that a few people have pulled the sd card, and couldn't read it with a reader. I guess it's encrypted (makes sense, but it still sucks).
Farmer Ted said:
I think I read in another thread that a few people have pulled the sd card, and couldn't read it with a reader. I guess it's encrypted (makes sense, but it still sucks).
Click to expand...
Click to collapse
Da_G mentioned its like a RAID0 with striping between the internal flash and the external flash card. Striping means that the data is divided between the two storage divices, which makes access faster (since you can get them both in parallel). It also means that if one of the memory devices fails, all data is lost. Which comfirms what we've seen in the Microsoft documentation, that if you remove the flash card and replace it with a different one, all your data is lost.
athompson said:
Da_G mentioned its like a RAID0 with striping between the internal flash and the external flash card. Striping means that the data is divided between the two storage divices, which makes access faster (since you can get them both in parallel). It also means that if one of the memory devices fails, all data is lost. Which comfirms what we've seen in the Microsoft documentation, that if you remove the flash card and replace it with a different one, all your data is lost.
Click to expand...
Click to collapse
That makes me think, If it's like a raid0, and your internal memory has 8gb, then you dump in a 16gb card, will it be like raid where only 8gb of the 16gb will be usable (in the raid) ?
DavidinCT said:
That makes me think, If it's like a raid0, and your internal memory has 8gb, then you dump in a 16gb card, will it be like raid where only 8gb of the 16gb will be usable (in the raid) ?
Click to expand...
Click to collapse
That's a good point, it doesn't sound too cool, does it. From what I understand about raid0, the purpose is to divide the data between two different disks, so you can get twice the IO bandwidth (since you can load half the file from each one, get it twice as fast). Raid0 doesn't do any backup, so if either hard drive fails, the whole thing is unrecoverable. Which is why most people don't use raid0.
But since it doesn't do any backup, it means there's no 'wasted' space, which means the full 16gb will likely be usable.
RAID0 is in ", better expression is JBOD (but data is stripped between the drives somehow).
Anyway, it is similar to current WM. There is IMGFS with some reserved space (a lot more actually, so all image updates fit in there without flashing phone, I'd be guessing that about 200MB is left as reserved space). The rest of the storage is as userspace, where are all stuff installed.
DavidinCT,
Your thinking of RAID 1 (mirroring) RAID 0 is striping without parity. So it basically writes/reads across both .. it looks like one volume but writes/reads could be on either storage.. depending on where they were written..
So.. when you remove the card .. or if you alter the card... it beaks the stripe set.. and toasts the storage volume.. if the storage is encrypted that would additionally complicate things..

[Q] SD Card backups and Data2Ext

Hi All
Firstly, huge apologies if this has been answered already. I have searched a ton of threads and none really explain exactly what I need to know...
Secondly, I am in no way aware of how any coding or development works on the desire or any android device for that matter so my knowledge is only from what I have personally done to my device:
S-ON (dont have the balls to attempt this!)
Currently I am running RCMixHD ver 0.14. This ROM includes a script which (so I understand) activates the data2ext, and creates this within my ext partition. Now I have read a few threads and posts about possible corruption with this, and so I have a question?
Can I simply copy the entire contents of the SD card to my PC, and then in the event of the SD card becoming corrupt, copy it to a different SD card, pop it back in the phone and then carry on?
Also I am considering a bigger SD card than the 4gb one I have, could this method also be used to transfer everything onto the new SD card without wiping and losing every app and photo etc.
Apologies for the semi-noob post, but I want to be clear before I do any potential damage to my phone!
Thanks
Yes and Yes but i dont know if u need S-Off for data2sdext.
But switching to S-Off is not a real problem or really dangerous! Done this on many phones!
lick_the_fish said:
Hi All
Firstly, huge apologies if this has been answered already. I have searched a ton of threads and none really explain exactly what I need to know...
Secondly, I am in no way aware of how any coding or development works on the desire or any android device for that matter so my knowledge is only from what I have personally done to my device:
S-ON (dont have the balls to attempt this!)
Currently I am running RCMixHD ver 0.14. This ROM includes a script which (so I understand) activates the data2ext, and creates this within my ext partition. Now I have read a few threads and posts about possible corruption with this, and so I have a question?
Can I simply copy the entire contents of the SD card to my PC, and then in the event of the SD card becoming corrupt, copy it to a different SD card, pop it back in the phone and then carry on?
Also I am considering a bigger SD card than the 4gb one I have, could this method also be used to transfer everything onto the new SD card without wiping and losing every app and photo etc.
Apologies for the semi-noob post, but I want to be clear before I do any potential damage to my phone!
Thanks
Click to expand...
Click to collapse
Once you have all your apps, clockworkmod recovery should backup all your ext partition. If you want an extra backup, boot in recovery and mount sdcard + ext, then do a tar of you ext partition and save it to you sdcard (something like cd /sd-ext tar czvf /sdcard/ext.tgz *)
Your ext partition will then be saved.

I'm stumped

Hi everybody. I am trying to get my daughters phone set up. She is 20, very busy, and I only get the phone an hour or so at a time which is frustrating. I have modded my own android phones(Note, Infuse,Gnex) so I'm not a beginner, but this captivate glide is acting a little different.
Here is where I am. CWM is installed and a backup of 2.3.6 is done, and a copy saved on my laptop. I have ardatdat's 1.2 version kernel ready to flash for root and to remove the IQcarrier junk. She will probably stay on stock, rooted since she is not into teching her phone but does want to remove ads and maybe tether to a tablet occasionally on ATT without a tethering plan- tit BU and freezing or removing the tethering manager.
I am having trouble getting the phone to recognize an 8 gb sd card. I have repartitioned it so more apps can be moved over(primary fat32 and logical-ext 2) and split the card to 4gb and 4gb.(approx)- even when just left as a one partition card with 8gb fat 32 the phone just won't recognize it. I put the old 2gb card into the phone and that one is recognized but is from a non android phone- an LG xenon.
I want to put the zip files to flash on the external sd card along with a few apk's ti install with the appinstaller. But.. the phone won't see the files. Do I have to use the internal storage?????
Don't have the phone now- it's off to work with her. So I will try later tonite. Any suggestions??
Thanks. Open for any help here. I have never had this much trouble before! Have searched for sideloading apk's, but from what I am finding it has to be rooted first??? I have checked unknown sources for install of 3rd party apps and usb debugging also checked.
I will continue my hunting for info. I'm sure it's just basic stuff I'm just not seeing. Thanks again
Ah. CWM Recovery is not compatible with the external sd card, I believe. It's located under /sdcard/external_sd but the zips are invisible in the recovery. So yes, I think you have to use internal
Aquethys said:
Ah. CWM Recovery is not compatible with the external sd card, I believe. It's located under /sdcard/external_sd but the zips are invisible in the recovery. So yes, I think you have to use internal
Click to expand...
Click to collapse
Thanks for that. Did not read that anywhere! Any idea about apks on the external sd card?
Ive tried that too... The apps are located in the data partition on the kernel so that is already directed to internal... The only things most people put are Media like movies because music players scan the entire /sdcard partition and the /external_sd is in it.
Hope this helped ^o^
Sent from my SAMSUNG-SGH-I927R using xda premium
sashusmom said:
I am having trouble getting the phone to recognize an 8 gb sd card. I have repartitioned it so more apps can be moved over(primary fat32 and logical-ext 2) and split the card to 4gb and 4gb.(approx)- even when just left as a one partition card with 8gb fat 32 the phone just won't recognize it. I put the old 2gb card into the phone and that one is recognized but is from a non android phone- an LG xenon.
Click to expand...
Click to collapse
You may need to format the sd card in the phone itself to get it to show up, some people have had problems with cards formatted in other devices or a pc.
I haven't tried a dual partition card in the Glide, but I came from a Motorola Flipside which had an absolutely tiny amount of space for apps, making link2sd and the second partition virtually mandatory. The Glide, however, has 2gb internal memory for apps, and the ~3.75gb internal memory that's mounted as /sdcard that you can store apps on with the standard Move to SD build into android, so I can't imagine anyone needing more storage than that for standard apps.
You can always points Titanium Backup to /sdcard/external_sd, my backup folder tends to get pretty big since I keep multiple backups. If she's installing a ton of games that have extra downloads to the sdcard though, you can fill up the internal "sd card" pretty quickly, and there's only a couple of ways to deal with that. She can give you the phone after installing those games and downloading the extra data, and you can manually move the data over to the external SD and create symlinks yourself, which can be tedious.
Alternatively, you can modify the vold.fstab to change the mount points, putting the real external sd as /sdcard and the internal storage as /sdcard/external_sd. There's instructions for this here. The vold.fstab method is what I personally use, as I've got a 32gb sd card and far too many games that want to download 500mb+ each.
bakageta said:
You may need to format the sd card in the phone itself to get it to show up, some people have had problems with cards formatted in other devices or a pc.
I haven't tried a dual partition card in the Glide, but I came from a Motorola Flipside which had an absolutely tiny amount of space for apps, making link2sd and the second partition virtually mandatory. The Glide, however, has 2gb internal memory for apps, and the ~3.75gb internal memory that's mounted as /sdcard that you can store apps on with the standard Move to SD build into android, so I can't imagine anyone needing more storage than that for standard apps.
You can always points Titanium Backup to /sdcard/external_sd, my backup folder tends to get pretty big since I keep multiple backups. If she's installing a ton of games that have extra downloads to the sdcard though, you can fill up the internal "sd card" pretty quickly, and there's only a couple of ways to deal with that. She can give you the phone after installing those games and downloading the extra data, and you can manually move the data over to the external SD and create symlinks yourself, which can be tedious.
Alternatively, you can modify the vold.fstab to change the mount points, putting the real external sd as /sdcard and the internal storage as /sdcard/external_sd. There's instructions for this here. The vold.fstab method is what I personally use, as I've got a 32gb sd card and far too many games that want to download 500mb+ each.
Click to expand...
Click to collapse
Hi and thanks. I just read about that mod. Is it as straightforward as just rewriting that file in rootexplorer? It sounds too easy!
I was gonna format the sd card in the phone but was not sure it would format the internal card and not the external one since I can't seem to get it recognized. I would be in big do do if I erased her stuff!!! It might be a bad card and I'll try an alternate one.
Yep, it's really as easy as snagging the file, editing it, and rewriting it in root explorer (or a shell, I haven't bought root explorer so I tend to do things from the shell). As for formatting in the phone, it should list both an SD card and USB storage, the usb storage is the internal storage, and the sd card is actually the sd card, it *should* have a format option there if the card is good, even if it's not seeing the files on it.
Thank you all!!!!!
bakageta said:
Yep, it's really as easy as snagging the file, editing it, and rewriting it in root explorer (or a shell, I haven't bought root explorer so I tend to do things from the shell). As for formatting in the phone, it should list both an SD card and USB storage, the usb storage is the internal storage, and the sd card is actually the sd card, it *should* have a format option there if the card is good, even if it's not seeing the files on it.
Click to expand...
Click to collapse
Piece of cake!!!!! :highfive: We now have the external sd card (only 8gb for now) mounted instead. Whoever came up with that very clever work around is genius. That's better than apps2sd or link2sd.
Thank you so much to everyone who responded. Between all of you I have Rooted with the kernel on the internal card, and the appinstaller saw the apks when I put them on the internal card. My original 8gb card was bad. It was a cheap one- $5 or $8 dollars. I got 2 and the 2nd one works fine- formatted in my computer and phone saw it immediately. I transferred the stuff from the internal to the external. Did I need to do that? I left it on the internal incase the sd card is removed. Tethering manager is removed- att junk is frozen.
One more question if I may? If another rom is flashed, or I odin back to stock for whatever reason, does this sd card switch stay, or is it overwritten with the new rom? Just need to know what to do if I ever need to reset this phone.
I also added my google account to the market to put my paid apps on her phone but when I signed in to the play store under my account my paid apps did not show as paid. Anyone know why? I worked around it but I was surprised.
Again thanks to such a nice group of people! :highfive: I had a crash course in the captivate glide in 24 hrs. You gave me info here I don't think I could have found with continued searching.
sashusmom said:
I transferred the stuff from the internal to the external. Did I need to do that? I left it on the internal incase the sd card is removed. Tethering manager is removed- att junk is frozen.
One more question if I may? If another rom is flashed, or I odin back to stock for whatever reason, does this sd card switch stay, or is it overwritten with the new rom? Just need to know what to do if I ever need to reset this phone.
Click to expand...
Click to collapse
Moving everything that was on the internal memory to the SD card was a good call, since you swapped the mount points everything that stored stuff on the internal memory will now expect that stuff to be on the sd card. There's no need to keep it on the internal memory (you can delete everything there and it'll recreate LOST.DIR) unless you plan on swapping back at any point, in which case you could just copy stuff across before swapping back.
As for flashing another rom, that'll require you edit the vold.fstab again unless the rom has already made that change, which none of our existing roms have.
Personally, I keep the internal memory completely empty as far as daily use things go. CWR will store its backups there, as it mounts the memory independently of the vold.fstab, and all roms/kernels/etc you want to flash can go there, leaving the sd card free for things you actually use.
Bak- thank you so much for all the info. I saved the original file and I will make a copy of the edited mount file in case I need it again. If I ever get her phone back I will clear the internal card since that info is now on the external one.
I wonder how long this captivate glide will hold up with my daughter. She is very hard on her cell phones. Already case #1 broke due to a drop. 2 more are on the way. When I pointed out it could have been the phone broken she said- yeah, I know. I'll keep the case on. :victoryshe hates cases!) Hopefully this phone will get her thru her senior year in college!
Thank you everyone who pitched in to get me the info I needed to get it going. :laugh:

SD card - ext{2,3,4} file system

There seems to be a lot of (out)dated information on the web about Android and sd-card formats. Would somebody please point me in the right direction (link to Google, CM Wiki, some other authority, or your own personal experience)?
Should I format my (entire) sd-card to ext2?
Can I format the entire card to ext2? (Is it supported by CM, AOSP, AOKP?)
Does the answer to the above questions depend on the rom in use?
I'm aware of the difference between ext2, 3 and 4. I'm mostly wondering if it's still required to have at least on primary fat partition, and whether that trade off is worth it.
Thanks.
i wouldnt do that since you dont have a SD card for the nexus.
you could ruin the entire partition and then you have a paperweight.
Zepius said:
i wouldnt do that since you dont have a SD card for the nexus.
you could ruin the entire partition and then you have a paperweight.
Click to expand...
Click to collapse
Wow. Thanks for pointing that out to me. I'm about to get my Nexus. (I'm preparing for it, in part, with this post.) I somehow overlooked that it doesn't support SD cards.

[DEV] Fusion Drive for the GS4

Hopefully we can implement a "fusion" drive like newer macs. I know it's possible to make your own with a few unix commands, so I wonder if another dev and I could get it working on the S4. A fusion drive is basically a SSD+Traditional HDD that the system sees as one drive. It automatically moves the lesser used items to the slower drive and keeps the system intensive files on the faster drive. Essentially we could use this technology to make our MicroSD and EMMC appear as one unit on the OS.
If any DEVs are willing to work with me please shoot a PM. No other users at this time please.
Try directory bind. Can setup to mirror items on your ext-sd
Sent from my SGH-M919 using xda premium
dannyben said:
Try directory bind. Can setup to mirror items on your ext-sd
Sent from my SGH-M919 using xda premium
Click to expand...
Click to collapse
This wouldn't mirror anything. It would show the system storage as (mine personally) 64gb+16gb as one unit.
Same thing. Can setup a folder on internal sd called extsd and turns internal sd to 80gb
Sent from my SGH-M919 using xda premium
Personally, I think this is silly and hope to never see it implemented on any ROMs that I enjoy. Just my opinion. Could be good as a flashable package that ppl have the option of installing through Recovery, though. I'll throw the idea out there on the irc chats and let me ppl know you're looking for a partner in crime.
I know internal storage reads faster than an sdcard, would this allow us to basically have 48g internal memory?
Sent from my SGH-M919 using xda premium
inphamous36 said:
I know internal storage reads faster than an sdcard, would this allow us to basically have 48g internal memory?
Click to expand...
Click to collapse
If you're asking "will this magically speed up my slower SD card", think about why that's not the best question.
Why not just write a script that swaps internal and external SDs?
Sent from Spaceball One.
blackknightavalon said:
Why not just write a script that swaps internal and external SDs?
Sent from Spaceball One.
Click to expand...
Click to collapse
Not possible/also not a good idea at all to swap the SDs. The only way you can get a "hybrid" system like what the OP suggests is either the actual fusion of the hardware with special custom firmware which handles the offloading of these tasks of moving the most used sectors of data to the faster medium, OR, a custom file system that is drive agnostic and can address multiple storage devices, consistently test their access speeds to assess performance, and intelligently offload data and traffic to the correct disk. Seeing as we have neither in any Android device that I know of, this feat is practically impossible until somebody compiles a new kernel with a file system plugin that does exactly this. It's a great idea, don't get me wrong, however it's going to be a total pain to accomplish, and secondly, removing the external storage, or god-forbid the SD card fails, and the entire checksum for the larger virtual disk has now failed and you've lost all your data. It's a bad idea when you're talking about mobile devices that you depend on daily like this, great for tablets and stuff, but bad for phones (unless you never mess with it or do anything weird that could compromise the SD card).
Cynagen said:
Not possible/also not a good idea at all to swap the SDs. The only way you can get a "hybrid" system like what the OP suggests is either the actual fusion of the hardware with special custom firmware which handles the offloading of these tasks of moving the most used sectors of data to the faster medium, OR, a custom file system that is drive agnostic and can address multiple storage devices, consistently test their access speeds to assess performance, and intelligently offload data and traffic to the correct disk. Seeing as we have neither in any Android device that I know of, this feat is practically impossible until somebody compiles a new kernel with a file system plugin that does exactly this. It's a great idea, don't get me wrong, however it's going to be a total pain to accomplish, and secondly, removing the external storage, or god-forbid the SD card fails, and the entire checksum for the larger virtual disk has now failed and you've lost all your data. It's a bad idea when you're talking about mobile devices that you depend on daily like this, great for tablets and stuff, but bad for phones (unless you never mess with it or do anything weird that could compromise the SD card).
Click to expand...
Click to collapse
Uhh...the script for both the SGS3 and the SGS3mini only works if there's an SDcard in the phone, so it is very much possible.
Sent from Spaceball One.
blackknightavalon said:
Uhh...the script for both the SGS3 and the SGS3mini only works if there's an SDcard in the phone, so it is very much possible.
Sent from Spaceball One.
Click to expand...
Click to collapse
If there is a script for it, awesome, I wouldn't do it myself though, not with only 8gb usable space, I'll burn through that in no time flat. I'm biding my time for 64gb before I invest in a new S4. Back on the topic of the "hybrid"/"fusion" drive, my statement still stands. It's not possible without a file system driver that supports it, or the hardware+firmware to support it (like those hybrid SSD-HDDs on the market).
Cynagen said:
If there is a script for it, awesome, I wouldn't do it myself though, not with only 8gb usable space, I'll burn through that in no time flat. I'm biding my time for 64gb before I invest in a new S4. Back on the topic of the "hybrid"/"fusion" drive, my statement still stands. It's not possible without a file system driver that supports it, or the hardware+firmware to support it (like those hybrid SSD-HDDs on the market).
Click to expand...
Click to collapse
The reasoning is this: The "virtual SD card" is the default storage space. All you'd have to do is apply the script, switch everything over to download into /sdcard, and leave the external SD card alone. For example, this would perpetually leave 9GB of hard drive space open on my phone while it thinks there's 64GB of space to play with.
As I said, it works perfectly on the SGS3mini.
blackknightavalon said:
The reasoning is this: The "virtual SD card" is the default storage space. All you'd have to do is apply the script, switch everything over to download into /sdcard, and leave the external SD card alone. For example, this would perpetually leave 9GB of hard drive space open on my phone while it thinks there's 64GB of space to play with.
As I said, it works perfectly on the SGS3mini.
Click to expand...
Click to collapse
So the script disables the /external_SD and makes it think that the SD card is actually the internal storage, leaving the internal storage alone? Not just swapping them like it sounded? Not bad, that I can see being beneficial with a fast enough SD card in place, however, only in that scenario.
Cynagen said:
So the script disables the /external_SD and makes it think that the SD card is actually the internal storage, leaving the internal storage alone? Not just swapping them like it sounded? Not bad, that I can see being beneficial with a fast enough SD card in place, however, only in that scenario.
Click to expand...
Click to collapse
Have you ever had an older Android device like a G1 or the original MyTouch? The A2EXT hack worked in a similar manner, but this doesn't involve partitioning anything, and a class 4 card could work.
Sent from Spaceball One.
Sorry Cynagen....what I'm talking about requires no special firmware or hardware. It's a unix/linux script that tells the system to read both drives as one. It's not a solution for world hunger or anything, but rather a cool project I plan to work on. Hopefully some smarter people can make it more usable for mass consumption, but I honestly don't care lol. XDA was founded on crazy ideas not intended for the masses anyways
KillaHurtz said:
Sorry Cynagen....what I'm talking about requires no special firmware or hardware. It's a unix/linux script that tells the system to read both drives as one. It's not a solution for world hunger or anything, but rather a cool project I plan to work on. Hopefully some smarter people can make it more usable for mass consumption, but I honestly don't care lol. XDA was founded on crazy ideas not intended for the masses anyways
Click to expand...
Click to collapse
SKIP TO THE BOTTOM FOR THE MOST BASIC OF SCRIPTS TO ACCOMPLISH YOUR GOAL!
Long-winded, drawn-out-explanation:
It requires a whole new file system for a TRUE hybrid system which intelligent offloads the most used files to the fastest media available. You can do a JBOD RAID to do the same thing, but Android doesn't support RAID, and again, that's a "firmware" type thing where the RAID hardware/software translates your calls for sector 6689544 (doesn't exist in the 8gb usable space) to sector 2593544 of your SD card. There is no script that can accomplish this without maintaining an insanely large journal of where everything is located. I thought about this, but it would literally require a faux drive location, an extra service running on Android to listen for the system requesting files (presenting the faux drive location), and then making the appropriate call to the right drive. Wikipedia "File system"
Here's the basics of what happens when a file is requested by an application on ANY operating system:
1. File request to OS
2. File system opens journal (table/list) of files, finds match starting at sector 6689544.
3. File system opens appropriate drive location to retrieve sector 6689544, locks the sector and any other sectors with data for the file (prevent write and corruption of the data)
4. Read-ahead buffers data from subsequent sectors with continued data stream for the requested file
5. A. Returns either data stream if file is larger than buffer size, repeats steps 4 and 5 until finished; B. If smaller than max buffer size, entirety of the file
6. Releases lock on data sector(s) (to prevent corruption during read by an opposing write operation to the same location)
Now, that's just the basics, if you get to the nitty gritty, when you're addressing multiple volumes as one larger volume, this requires intersecting the request for data either at step 2 with replacing the file system, OR providing the original file system a faux "virtual" disk to address as mentioned on Wikipedia:
Some file systems are "virtual", in that the "files" supplied are computed on request (e.g. procfs (Wikipedia)) or are merely a mapping into a different file system used as a backing store.
Click to expand...
Click to collapse
Either way, there has to be something to intelligently keep track of the location of the files, and with a Hybrid system like you're talking about, the best and fastest way would be a whole new file system. Creating a procfs "virtual" service is also possible, but is likely going to be much more prone to bugs and failures unless maintained very heavily. Porting an existing file system that can do this would be much much more feasible and can be built into the kernel directly. A simple script cannot accomplish this without just blindly mapping the SD card into the internal storage file structure.
Short and simple hack to accomplish what you want:
This is called a "symlink" which can already be accomplished quickly with the following command: "mkdir /storage/sdcard0/ext; ln -s /storage/sdcard1 /storage/sdcard0/ext"
There's the script you're talking about, but it's a dirty hack and yes, it'll work provided the "LN" command is available, but again, it's really dirty (I guess most don't care?)
If "mount" and subsequently "umount" are available commands in the Android terminal, something like this should work to completely remove the external SD mapping: (This is based on the Galaxy S II JB file system mappings:
umount /storage/sdcard1
mkdir /storage/sdcard0/ext
mount /dev/emmc /storage/sdcard0/ext
Now this is just a rough sketch of what you want to do, if you could provide me with a dump of a couple things, I can write up a script for you no problem. I'll need the following:
A listing of /dev: "ls /dev" output
The contents of /etc/fstab: "cat /etc/fstab" output
And the information on the "source folder" for the external SD card: "stat /External_SD" (or whatever folder it is)
hope you maje this
LIL_ROOKIE said:
hope you maje this
Click to expand...
Click to collapse
Cynagen said:
I'll need the following:
A listing of /dev: "ls /dev" output
The contents of /etc/fstab: "cat /etc/fstab" output
And the information on the "source folder" for the external SD card: "stat /External_SD" (or whatever folder it is)
Click to expand...
Click to collapse
I don't have this information, I need it to proceed. Pull this data from an ADB connection as root, and dump it to a text file like so:
"ls /dev > /external_sd/dev.txt" (or whatever /external_sd is for the S4's SD card)
"cat /etc/fstab > /external_sd/fstab.txt"
"stat /external_sd > /external_sd/stat.txt"
Then zip those text files and send them to me so I can dissect.
It's fairly simple to use a loop device, a simple chroot environment, and mdraid (reason for chroot) to test this out. You'd use an image file and create a loop device so it can be file system independent. Problem is kernel support for md_raid and loop devices... But I tested this out. .. results weren't that great... But they weren't awful. I used a 64gb SanDisk class 1 billion. . Or whatever that crap is labeled.
I also used rxdsk/rxadm (compiled for armel, obviously) to make a ramdisk. That was quick. That also requires chroot, custom kernel..
Edit: In terms of garbage collection. It's beneficial to have more free space than none. Is there an allotment of hidden space dedicated to this, would increasing the size of that space be beneficial, I don't know.
Heres a little piece from Micron.. What I'd like is info on the (presumably Samsung) nand and if it has said overallotment.
http://www.micron.com/~/media/Docum... Flash/tn2960_garbage_collection_slc_nand.pdf
Blades said:
It's fairly simple to use a loop device, a simple chroot environment, and mdraid (reason for chroot) to test this out. You'd use an image file and create a loop device so it can be file system independent. Problem is kernel support for md_raid and loop devices... But I tested this out. .. results weren't that great... But they weren't awful. I used a 64gb SanDisk class 1 billion. . Or whatever that crap is labeled.
I also used rxdsk/rxadm (compiled for armel, obviously) to make a ramdisk. That was quick. That also requires chroot, custom kernel..
Edit: In terms of garbage collection. It's beneficial to have more free space than none. Is there an allotment of hidden space dedicated to this, would increasing the size of that space be beneficial, I don't know.
Heres a little piece from Micron.. What I'd like is info on the (presumably Samsung) nand and if it has said overallotment.
http://www.micron.com/~/media/Docum... Flash/tn2960_garbage_collection_slc_nand.pdf
Click to expand...
Click to collapse
They're looking to make the EMMC an accessable folder within the internal NAND file structure is what it seems. What I originally thought was they wanted to make a hybrid drive like they were originally mentioning where we could offload the most accessed sectors to the (presumably faster) NAND and relegate all other requests to the slower SD card. Providing a large contiguous drive seamlessly. They just want the dirty hack to accomplish this, and that's their choice. Honestly, I'd rather have the whole package like what you're (and I was previously) aiming for to have the best of both worlds.

Categories

Resources