In the process of trying to move apps to the SD card, I've mucked something up.
I did:
cp -rp /data/data /system/sd/data
Then, just for safekeeping, I moved the /data/data directory to /data/data.test just in case.
I then did a symlink as follows:
ln -s /system/sd/data /data/data
Upon reboot, I get the flashing android screen. I do not have a nandroid backup (yeah, I know....I really should do that one of these days), but I think all my data should still be there. I just need to remove the symlink and move /data/data.test back to /data/data and all should be well.
How can I do this? Wish there was a sticky thread on how to recover from stuff like this. Digging through all these threads is time consuming and difficult.
well.. from y own experiencie while the phone is stuck on the android flashing screen i am able o access it from my pc using adb so try that
adb shell rm -rf /data/data
than rename data.test to data
adb shell mv /data/data.test /data/data
should work
Ah...didn't realize I could connect via adb at that stage....guess I should have tried it.
That did indeed work. Thanks!
Related
Alright, I've been posting this all over trying to help people figure out how to do this and figured it's time to make a dedicated thread. If at any point you get an error DON'T PROCEED. See if I referenced the error you're getting and, if so, do what I suggested. If not, post your error here and I'll try to get back to you ASAP.
NOTE: This can now also be done through my appstoSD app posted on this forum!!!! It will do everything for you.
This tutorial assumes you have:
A: A micro-sd card with 2 partitions, the first must be FAT32 and the second must be ext2.
B: Your phone must have one of the apps-to-sd ROM's installed.
C: Busybox installed into the /system/xbin directory. For steps on this please reference Darkrift's thread.
Before we start, let's make sure your phone is set up to handle this. Open up the terminal emulator app(available in the market) and type:
Code:
su
busybox df -h
If /system/sd doesn't appear, something is wrong. Either your sd card isn't partitioned correctly or your phone has a ROM that doesn't have apps to sd enabled. If /system/sd does show up then you're set and can start the tutorial
NOTE: Moving the cache is highly unstable and works for some people but not for most. I don't recommend trying unless you have a good idea of how to get your phone back to a usable state if it starts boot looping.
Now, for the first step you need to copy all the apps over to the sd card. To do this type(still in the terminal emulator)(The third and fourth lines are for cache to sd only):
Code:
busybox cp -a /data/app /system/sd/
busybox cp -a /data/app-private /system/sd/
busybox cp -a /data/dalvik-cache /system/sd/
busybox cp -a /data/data /system/sd/
exit
exit
Once the terminal emulator app closes, power off your phone. Then, turn it on in recovery mode by holding down the home button and then pressing the power button. Continue holding the home button until the "T-Mobile G1" icon goes away and a menu comes up. Then press Alt-x to go to recovery terminal. Press enter and a prompt should come up with a "#". Now type(If you only want your apps on your sd card and not the caches, skip steps 6-9)
Code:
mount data
rm -rf /data/app
ln -s /system/sd/app /data/app
rm -rf /data/app-private
ln -s /system/sd/app-private /data/app-private
rm -rf /data/data
ln -s /system/sd/data /data/data
rm -rf /data/dalvik-cache
ln -s /system/sd/dalvik-cache /data/dalvik-cache
reboot
And... you're all set! Your phone might take a while at the android screen since it has to populate the apps tray. If it lasts >5-10 minutes then something likely went wrong. Make sure you did all the steps correctly and if you did try the steps in the recovery terminal section of this tutorial again. If it still doesn't work, post here and we'll try to get it sorted out. That aside, enjoy having your apps on SD card and the permanent 72-73MB available!
EDIT: forgot the app-private directory. Thanks, LucidREM!!!
Maximus is the man.
[email protected] said:
Now, for the first step you need to copy all the apps over to the sd card. To do this type(still in the terminal emulator)(The second and third lines are for cache to sd only):
Code:
busybox cp -a /data/app /system/sd/
busybox cp -a /data/dalvik-cache /system/sd/
busybox cp -a /data/data /system/sd/
exit
exit
Once the terminal emulator app closes, power off your phone. Then, turn it on in recovery mode by holding down the home button and then pressing the power button. Continue holding the home button until the "T-Mobile G1" icon goes away and a menu comes up. Then press Alt-x to go to recovery terminal. Press enter and a prompt should come up with a "#". Now type(If you only want your apps on your sd card and not the caches, skip steps 4-7)
Code:
mount data
rm -rf /data/app
ln -s /system/sd/app /data/app
rm -rf /data/data
ln -s /system/sd/data /data/data
rm -rf /data/dalvik-cache
ln -s /system/sd/dalvik-cache /data/dalvik-cache
reboot
Click to expand...
Click to collapse
i see a missing step here .. what about /data/app-private
LucidREM said:
i see a missing step here .. what about /data/app-private
Click to expand...
Click to collapse
RIGHT! I keep forgetting that one cause that folder pisses me off and I move all the apps there to the normal app folder lol. Will fix in 5, 4, 3...
EDIT: 2,1,0
cp: cannot stat '/data/davlik-cache': no such file or directory
whats up?
NEVERMIND. i need to go back to spelling class.
I'm sure its been asked and answered but I'll ask again! I understand it can take quite a few minutes to boot but is this every time you reboot or just the first time?
Thanks
DynaMight said:
I'm sure its been asked and answered but I'll ask again! I understand it can take quite a few minutes to boot but is this every time you reboot or just the first time?
Thanks
Click to expand...
Click to collapse
just the first time. its moving all the apps and cache from phone to sd card during that first reboot.
won't that slow down the phone even more?
the first time takes much longer. Subsequent reboots are of normal duration, comparable to the standard build.
Smokuevo said:
won't that slow down the phone even more?
Click to expand...
Click to collapse
if you use a class six sdcard, the apps will load faster. i believe that class 6 flash media is faster than the phones flash.
stogchris81 said:
if you use a class six sdcard, the apps will load faster. i believe that class 6 flash media is faster than the phones flash.
Click to expand...
Click to collapse
Pushing (writing) a 2MB file through adp push seems a bit faster to the SDCARD compared to the internal memory.
-> rough average for SDCARD : 1200 KB/s
-> rough average for system storage : 1000 KB/s
Regarding pulling (reading), internal seems faster :
-> rough average for SDCARD : 1247 KB/s
-> rough average for system storage : 1250 KB/s
These tests are everything but serious.. This is using the famous SanDisk 8GB Mobile Ultra (class 6).
To conclude I'd say that speed is almost the same, sometimes a bit faster for SDCARD.
i have one question
i tried to read through the thread but it was waay to large and long
if u do install apps to the sd card
when u install a newer rom on it does that mean the apps are automatically installed once again? i would like to do this because haykuro's roms are released once a week and i dont like reinstalling apps over and over again...
bigballa said:
i have one question
i tried to read through the thread but it was waay to large and long
if u do install apps to the sd card
when u install a newer rom on it does that mean the apps are automatically installed once again? i would like to do this because haykuro's roms are released once a week and i dont like reinstalling apps over and over again...
Click to expand...
Click to collapse
Unfortunately the answer is "sorta". The apps will still be on your sd card in the same places you put them. BUT all the symlinks will be gone so it'll look like they all dissapeared. You'll have to repeat the recovery terminal part of the tutorial, but all the stuff before it will be unnecessary.
i keep getting /system/sd/app is not a directory but when i run mkdir /system/sd/app it says that the file already exists.
the one time i got adb to work i did the steps through it to get apps to sd but the i had to wipe my phone. do i have to do the steps in the first post or recreate the symlinks?
wizern23 said:
i keep getting /system/sd/app is not a directory but when i run mkdir /system/sd/app it says that the file already exists.
the one time i got adb to work i did the steps through it to get apps to sd but the i had to wipe my phone. do i have to do the steps in the first post or recreate the symlinks?
Click to expand...
Click to collapse
In terminal emulator do this:
Code:
su
cd /system/sd
ls -l[CODE]
And put what it says on the line with "app" in it here. If it says "app ->" and has something after the arrow(my guess would be /data/app) then you put the symlink the wrong way. Make sure you do ln -s /system/sd/app /data/app, not the other way around. Let me know what your results are
[email protected] said:
In terminal emulator do this:
Code:
su
cd /system/sd
ls -l[CODE]
And put what it says on the line with "app" in it here. If it says "app ->" and has something after the arrow(my guess would be /data/app) then you put the symlink the wrong way. Make sure you do ln -s /system/sd/app /data/app, not the other way around. Let me know what your results are[/QUOTE]
huh? can you repeat that because i didnt understand what you were saying
im at the first step anyway. and thats when it says /system/sd/app is not a directory. my other question is is do i have to use
rm -rf /data/app
rm -rf /data/dalvik-cache
rm -rf /data/app-private
to re-establish the symlinks or did the steps through adb i used get erased when i wiped it.
Click to expand...
Click to collapse
[email protected] said:
In terminal emulator do this:
Code:
su
cd /system/sd
ls -l[CODE]
And put what it says on the line with "app" in it here. If it says "app ->" and has something after the arrow(my guess would be /data/app) then you put the symlink the wrong way. Make sure you do ln -s /system/sd/app /data/app, not the other way around. Let me know what your results are[/QUOTE]
i had the same problem. it said /system/sd/app is not a directory even though it already existed. when i used your code above this was my result:
drwx----- root root 2009-04-12 20:11 lost+found
-rw-r--r-- system system 29303 2009-04-11 11:56 app
Click to expand...
Click to collapse
wizern23 said:
huh? can you repeat that because i didnt understand what you were saying
im at the first step anyway. and thats when it says /system/sd/app is not a directory. my other question is is do i have to use
rm -rf /data/app
rm -rf /data/dalvik-cache
rm -rf /data/app-private
to re-establish the symlinks or did the steps through adb i used get erased when i wiped it.
Click to expand...
Click to collapse
Umm I wouldn't proceed cause if /system/sd/app isn't a directory then you're gonna have lots of problems. I need to know what it says after you type
Code:
su
cd /system/sd/
ln -s
Specifically, there'll be a line of output that has the word "app" towards/at the end. I need to know what's in that line. If the line doesn't start with a 'd' then app isn't a directory and something happened and you need to remove /system/sd/app by typing this in the terminal emulator:
Code:
su
busybox rm -rf /system/sd/app
and then restart the process from the beginning.
it says that /system/sd/app is not a directory but when i do mkdir /system/sd/app it says the file already exists.
the line with app in it says
-rw-r--r-- system system 29303 2009-04-14 17:27 app.
okay removing that made it work.
[edit] Thank you so much. it finally worked. i now have 73mb free on the phone.
glad I could help. On a side note Apps to SD app is now live
My apps are still on my sd card, how do I link them back to my phone, I had Jf's 1.5 I wiped after a bad theme install, now I moved to Lucids mod, and is there a way to recall my apps from my sd card again.
they should show up after symlinks are created again and a reboot........all of mine showed back up
just do the system links again and they should all come back, if it hangs try this:
Code:
adb remount
adb shell
cd /system/sd
mv app app1
mv app-private app-private1
do the sys link again busybox cp; rm -r ln -s, yada yada then restart ur phone
then do this
Code:
adb remount
adb shell
cd /system/sd/app1
install *.apk /data/app
wait for a while depending on how many apps u have then
Code:
cd /system/sd/app-private1
install *.apk /data/app-private
reboot
Will this method also add all your apps to the "My Downloads" section?
dasoccerbomb said:
Will this method also add all your apps to the "My Downloads" section?
Click to expand...
Click to collapse
No it will not. In order to have my downloalds back in the market you first have to backup the my downloads. Someone gave the instructions for this here
http://forum.xda-developers.com/showpost.php?p=3655174&postcount=44
The script does a one time copy of the apps from /system/sd to /data for mytouch phones (since we don't need a2sd!). After that, a2sd is just disabled
Attachment: Update zip (takes about 20sec lol)
Pastebin: http://pastebin.com/d108b98f8
Rough info:
Cyanogen & Twisted A2SD modded for Hero (by Maxisma)
Remodified for CM 4.2+ by Wes Garner
This finds out if it is running on Magic or G1 and decides if A2SD is used or not
Mounts EXT for Magic and G1
Or you could just delete your ext2 partition...
but then no userinit
Didn't work for me. I have CM 4.2.5, downloaded mt3g-noa2sd-signed.zip and flashed it in recovery. Then when I rebooted I got to the CM bootscreen, after a few seconds the screen went black. I let it load for 45-60 minutes (watching tv) but nothing happened. Tried to flash again and the same thing.
ls -l in /data showed app and app-private was still linked to sd. I removed the links, made the directories and copied over the data from sd. Then it worked.
Kaptur said:
Didn't work for me. I have CM 4.2.5, downloaded mt3g-noa2sd-signed.zip and flashed it in recovery. Then when I rebooted I got to the CM bootscreen, after a few seconds the screen went black. I let it load for 45-60 minutes (watching tv) but nothing happened. Tried to flash again and the same thing.
ls -l in /data showed app and app-private was still linked to sd. I removed the links, made the directories and copied over the data from sd. Then it worked.
Click to expand...
Click to collapse
I'm having the same issue here, after flashing, I get Cyanogen boot screen and then it moves to black and sits there - since there's no way it's taking that long to copy the data, I'm guessing this script is broken as of 4.2.5.
From CyanogenMod Wiki http://wiki.cyanogenmod.com/index.php/Removing_Apps2SD
Removing Apps2SD
From CyanogenMod Wiki
Jump to: navigation, search
You'll probably have to re-install any paid apps (app-private) but normal apps should run fine after this.
For Terminal Emulator
Code:
su
mount -o rw,remount /system
Then proceed to the ADB instructions from after 'adb shell'
ADB Instructions
Code:
adb remount
adb shell
Code:
rm /data/app
mkdir /data/app
cp /system/sd/app/* /data/app/
rm /data/app-private
mkdir /data/app-private
cp -r /system/sd/app-private/* /data/app-private
rm /data/dalvik-cache
mkdir /data/dalvik-cache
reboot recovery
In Recovery Mode console, you will have to delete the ext partition:
Code:
parted /dev/block/mmcblk0
rm 2
quit
Note: If you had a 3rd partition for swap it will now be partition 2. Adjust your userinit.sh accordingly.
After rebooting, you can confirm that it worked by running:
ls -l /system
From Terminal Emulator (no need to remount/su) and you should see 'app' and 'app-private' as directories (and not app -> /system/sd/app).
Click to expand...
Click to collapse
yea oops, forgot to delete old symlinks on it
It doesn´t work for me...
I´m trying to disable A2sd because of my partition layout (Swap+Fat32) on my HTC Magic 32B but nothing happens after applying the update. My phone it just keeps in the bootloop forever....
Ok. I just wanted to enter and understand the ANDROID FILE SYSTEM. For sometime i was trying to do things like copy/paste/delete to the system folders.
Im aware of what im doing. I shouldn't delete the original contents of /system partition unless im experimenting with it.
OK. My problem is , I WANTED TO DELETE AN ENTIRE FOLDER AT A TIME INSIDE THE /SYSTEM PARTITION THROUGH ADB. Donot recommend root explorer because while experimenting it is useless when the device won't boot. Even though I can mount the /system through recovery and play with adb. But what all i want is deleting the entire folder (with its contents) at a time. Just because it takes lot time to delete each and every file inside it.
I tried the shell "rm" command but it works only for individual files. So, pls help. Much appreciated and thanks in advance.
rm -rf /foldername (e.g rm -rf /system/testfolder will remove 'testfolder' and everything inside)
-r = recursive -f = force
if rm -rf complains about the -rf part, run: busybox rm -rf /foldername
** NOTE: there is no warning to remove the entire folder, once you hit enter it's gone. **
manual page for RM: http://unixhelp.ed.ac.uk/CGI/man-cgi?rm (one of many copies of this page)
*-f may be optional, but I'm always sure in what I am deleting.
sirmx said:
rm -rf /foldername (e.g rm -rf /system/testfolder will remove 'testfolder' and everything inside)
-r = recursive -f = force
if rm -rf complains about the -rf part, run: busybox rm -rf /foldername
** NOTE: there is no warning to remove the entire folder, once you hit enter it's gone. **
manual page for RM: http://unixhelp.ed.ac.uk/CGI/man-cgi?rm (one of many copies of this page)
*-f may be optional, but I'm always sure in what I am deleting.
Click to expand...
Click to collapse
Thank you very much. Will try that when I get back to my pc ASAP.
EDIT: Worked perfectly as said. No complaining about -rf part also. Thanks again for saving my time really.
Sent from my HTC Wildfire using XDA App
bharatgaddameedi said:
Thank you very much. Will try that when I get back to my pc ASAP.
EDIT: Worked perfectly as said. No complaining about -rf part also. Thanks again for saving my time really.
Sent from my HTC Wildfire using XDA App
Click to expand...
Click to collapse
Dude, he put some time into this post hit the THANKS button!!
Turducken said:
Dude, he put some time into this post hit the THANKS button!!
Click to expand...
Click to collapse
OOPS.. just a mistake (accessed the thread from phone only).. Thank u too.
Ok. Another thing....
--- is it possible to delete all the files inside the folder without deleting the actual folder itself. Ok this is not much necessary..
--- is it possible to access sd-ext partition through adb. And is it possible to push and pull files into that for general storage / other things.
I have add busybox to cmd but it still say error device or resource busy, can't delete system folder even use Root Explorer mounted R/W. Only can wipe with TWRP. <-Bad English
Hi all--in need of some help here--have been crusing the forums for three days and still hitting a brick wall...
Have a rooted (and minimally modded) Atrix 4g in serious need of a hard reset and all the pain that comes with as nearly every app force closes on startup.
Hoping to backup some of my data (contacts, SMS, etc), but unable to do so my usual way (an app, root explorer, or the like), so I'm attempting to use ADB pull to grab the .db files. I'm relatively comfortable with linux, but running into a problem with ro/rw permissions (I think).
have tried the following:
adb pull /data/...../mmssms.db (yields Permission Denied)
# cp /data/....mmssms.db (appears to copy, but no file in destination, and can't copy out of shell)
have been able to remount /system as rw, but not /data where the files are located.
Anybody have suggestions? I'd be most apprecative!
Copy the the files as superuser to your sdcard first and adb pull them from there.
Unfortunately, the whole reason I'm needing to reset is that every app (incl superuser accesses) force closes on start--no chance to move through the phone itself. Since the .db files are not in the usb-accessible file structure I'm thinking that ADB is the only way to access.
Does that make sense?
Hi, OP here--anybody else have a suggestion? Getting a little desperate here... Any thoughts would really be appreciated!
im assuming your accessing ADB via recovery?
You should be able to use su without superuser.apk's permission in that case - however, theoretically, you should not need to use su in recovery anyway.
you can try running
Code:
adb shell ls -l /data/data/*tele*/databases/mmssms.db
and see what you get permissions wise, maybe a chmod could fix it?
Otherwise you could try
Code:
adb shell mount -o remount,rw /data
Another alternative to cp and adb pull is cat
Code:
adb shell cat /path/to/mmssms.db > /path/to/destination-file.db
might copy remote mmssms.db to a local file, while
Code:
adb shell
cat /path/to/mmssms.db > /path/to/destination-file.db
exit
would copy remote to remote
Is /data mounted at all?
This is strange, you should have read access to everything, especially in recovery.
What phone and what recovery?
Its not something as simple as geting the URIs the wrong war round ('cmd local remote' vs 'cmd remote local')?
So, still tinkering... Will give it one last try before I call it quits and just wipe the bloody thing. So, your thoughts were spot on--its probably me missing something.
Quick data dump on progress to data:
Phone: Rooted Motorola Atrix running 2.2
no trouble accessing shell or via ADB
/data is mounted, though only in Read Only mode--can't seem to change, have tried several ways in various modes (shell, su, etc)
Permissions for mmssms.db are: -rw-rw---- radio radio
chmod 777 of the file yields: "Read-only file system," which makes sense since I can't seem to change /data... to rw
Tried to remount rw:
adb shell mount -o remount,rw /data
and
mount -o remount,rw -t yaffs2 /dev/block/mmcblk0p11 /system (for systeem
but get "Operation not permitted" in both cases.... UGH!
Hadn't thought of cat--great idea. Still no real joy however.
I seem to have managed a copy to /system, but can't seem to get it off the device or onto the SD card.
Thanks much for your help so far. Any final thoughts?
SO CLOSE!!!! (and yet...)
crags said:
Hadn't thought of cat--great idea. Still no real joy however.
I seem to have managed a copy to /system, but can't seem to get it off the device or onto the SD card.
Click to expand...
Click to collapse
SO FRUSTRATING!!!! so close, but not quite there--HELP!!!
As noted at the end above, have been able to copy the mmssms.db file to /system/ after remounting as RW
Can't seem to copy or pull off the device--still getting "Permission Denied" no matter which course I try!?!?!
It sounds as if your doing this while booted into the ROM, and (maybe) without su (root)?
su-ing might help, just type su and hit return to enter a root shell
alternatively, going in through recovery ('adb shell reboot recovery') might help as most recoveries ignore permission rules - make sure to mount the partitions your using though.
It almost sounds like the sdcard has no write permissions - you can get the NAND partitions to mount rw, but cant copy to the sdcard.
On my Desire, there is (at least) two mount points: /sdcard and /mnt/sdcard - maybe on your phone only one of your mount points has write permissions?
Otherwise i suggest going in via recovery. You can still use adb (will have to manually mount - 'mount /system' 'mount /date' and 'mount /sdcard' usually work, otherwise use the menu item in recovery )
When in recovery, and after mounting partitions/card, try adb pull, cp /sdcard and cat > sdcard (and if possible cat > computer) plus anything else i forgot (quite tired )
if these dont work something is messed up somewhere in the ROM, or likely kernel and so without ideas a reflash would be the only real solution :/
I did have a bare-minimum+apps recovery script (attached) which might be worth a read to see if your forgetting something obvious - it works on my desire