Pushing hosts file restarts device - EVO 4G Android Development

I'm trying to play around with the hosts file through adb. I'm new to android from WinMo and trying to learn a few things but couldn't figure this one out.
when I push a new hosts file with:
Code:
adb push hosts /system/etc/hosts
a few seconds later the evo restarts and reverts back to the old hosts file with only localhost listed in there.
I ran into one tutorial that showed the person booting into recovery mode and moving the hosts file from the sdcard to the etc dir:
Code:
adb shell
mount /system
mount /sdcard
cp /sdcard/hosts /system/etc/hosts
exit
Does the hosts file have to be modified via recovery mode or am I doing something wrong by pushing it?
Any help or input is greatly appreciated.

Incase you dont know yet in the hundreds of post all over the rooting threads system is only writable in recovery. /system is nand locked when the OS is running.

ah ok. thanks.

now I'm a bit confused.
when in recovery mode after invoking
Code:
adb reboot recovery
I can't start a remote shell. I get the following error message:
Code:
D:\adb shell
- exec '/system/bin/sh' failed: No such file or directory (2) -
--EDIT--
Guess I just had to run the batch file toast put together. [http://link.geekfor.me/evorecovery]

Related

[DEV] Apps2SD and Darchstar-2.1 ROM

The focus of this thread is to sort out the Apps2SD issue in cyanogenmod-darch 2.1 ROM (like the title says). Please do not post here unless it relates to this issue.
That being said, here is where I was at in the original darchstar 2.1 thread:
watzone69 said:
Taken from the instructions darchstar gave in the first post of his thread...
Code:
adb remount
adb push e2fsck /system/bin
adb shell
cd /system/bin
chmod a+x e2fsck
a2sd
reboot
First, the "chmod a+x e2fsck" command doesn't work for me (EDIT: I discovered that it WILL work in recovery mode). I had to use "chmod 777 e2fsck". After entering "a2sd" it gets enabled. After rebooting, apps2SD is NOT enabled anymore. I realized this by doing this test:
Code:
adb shell
cd /data/app
pwd
If your apps2sd is enabled, you will get "/system/sd/app" returned to you.
If you get "/data/app" returned instead then apps2sd is NOT enabled!
Click to expand...
Click to collapse
Gbhil then replied...
gbhil said:
After you restart, can you re-enable a2sd by running a2sd from a terminal as root?
If so, do all your apps still appear and are they usable?
If the above is true, try adding this to the end of gumbo.sh
Code:
su -C a2sd
for a quick fix.
Start a thread (to keep things less cluttered) about it and I'll help you guys dig into the boot image and see why it's not sticking.
Click to expand...
Click to collapse
So, I rebooted and tried to run "a2sd" from the android terminal but it spits out a long string of errors:
Code:
--- Checking ext filesystems
e2fsck 1.41.6 (30-May-2009)
ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/block/mmcblk0p2 is mounted.
/dev/block/mmcblk0p2: clean, 13/249856 files, 31387/499713 blocks
mount: permission denied. (are you root?)
chown: /system/sd: Read-only file system
chmod: /system/sd: Read-only file system
mkdir failed for /system/sd/app, Read-only file system
chown: /system/sd/app: No such file or directory
chmod: /system/sd/app: No such file or directory
cp: cannot create '/system/sd/app/android.tether.apk': No such file or directory
cp: cannot create '/system/sd/app/android.tether.usb.apk': No such file or directory
cp: cannot create '/system/sd/app/at.abraxas.mountusb.apk': No such file or directory...
(etc.)
...rm: cannot remove '/data/app/org.gmote.client.android.apk': Permission denied
rm: cannot remove '/data/app/org.hermit.substrate.apk': Permission denied
rm: cannot remove '/data/app/org.iplatform.android.apk': Permission denied
rm: cannot remove '/data/app/org.mikeyin.livewallpaper.apk': Permission denied
mkdir failed for /system/sd/app-private, Read-only file system
chown: /system/sd/app-private: No such file or directory
chmod: /system/sd/app-private: No such file or directory
cp: can't open '/data/app-private/com.android.aldiko.apk': Permission denied
cp: can't open '/data/app-private/com.protocol.x.su.fbs.apk': Permission denied
cp: can't open '/data/app-private/com.rerware.android.MyBackupPro.apk': Permission denied
rm: cannot remove '/data/app-private/com.android.aldiko.apk': Permission denied
rm: cannot remove '/data/app-private/com.protocol.x.su.fbs.apk': Permission denied
rm: cannot remove '/data/app-private/com.rerware.android.MyBackupPro.apk': Permission denied
ln: /data/app/app: Permission denied
ln: /data/app-private/app-private: Permission denied
+++ Apps-to-SD successfully enabled
So, there is no "app" or "app-private" in the "system/sd". Is a2sd supposed to generate those directories or are they supposed to be there before hand?
Anyway, the result is that I lose all of my shortcuts to the apps and market shows them as not installed even though they are.
BTW, I am not a dev or even that great at code or linux but I can usually pick stuff up fairly quickly. Just want to help fix this!
EDIT: The only thing I have found to work is to flash this kernel:
http://forum.xda-developers.com/showpost.php?p=5712377&postcount=1406
However, some people get stuck in a boot loop after flashing this.
Running into the same issues as Watzone so I can confirm that he is doing it correctly. =P
Here are all of the related commands that have been suggested whenever the question of apps2sd has come up in the darchstar 2.1 thread.
Code:
adb remount
adb shell
mkdir /system/sd
Code:
adb remount
adb shell
busybox --install /system/xbin
a2sd
Code:
cd C:\android-sdk-windows\tools
adb remount
adb shell
chown system.system /data/app
chmod 0771 /data/app
For the next command, boot into recovery and do the following:
Code:
adb shell
mount /system
exit
adb push e2fsck /system/bin
adb shell
cd /system/bin
chmod 777 e2fsck
Now, boot normally and go back to your CMD prompt...
Code:
adb remount
adb shell
a2sd
EDIT: In other threads I have seen the command...
Code:
apps2sd on
...used to enable apps2sd.
Doing all of these WILL allow the final "a2sd" command to enable (testing with the "pwd" command) but it all goes KAPUT after a reboot.
why it's not being enabled at boot time is because the init.rc isn't calling /system/etc/init.d/04apps2sd . I'll be sure that we fix that in my next release
And there you go.
It works here, but now I know why. I'm still using an old version of the boot image that looks for /system/bin/a2sd to load it, and an older version of the ROM. No sense in me to keep flashing fixes until I'm done tweaking the kernel. When darch says the kernel is good, then I'll catch up lol.
We might as well use this thread to learn to play with the boot image though, that is if you guys want to.
Awesome can't wait for the next release then! Lotsa apps out there calling out to me! Thanks guys =)
gbhil said:
We might as well use this thread to learn to play with the boot image though, that is if you guys want to.
Click to expand...
Click to collapse
You bet. It's about time I got my hands dirty.
I'm game let me know if you need me to test anything!
Cool deal. You need Linux to extract and compress the boot.img, and you need to be current with Perl and running jre5 or higher.
Ubuntu 9.04+ is set up out of the box, but any version can be made to work.
Then grab these files from Lox -
http://forum.xda-developers.com/attachment.php?attachmentid=231902&d=1254004933
http://forum.xda-developers.com/attachment.php?attachmentid=234040&d=1254622769
and extract them into your sdk/tools dir. (or any dir in your path)
get all that, then pick a boot.img from a rom and put it in a work folder.
Holler when you get that far, or if you have any q's.
I wanna learn myself. This should apply to mac os as well?
I have Mint on another machine. Gimme a bit to get caught up...
david279 said:
I wanna learn myself. This should apply to mac os as well?
Click to expand...
Click to collapse
Darwin might work. Never tried
watzone69 said:
I have Mint on another machine. Gimme a bit to get caught up...
Click to expand...
Click to collapse
np. I'm @work so going slow is better anyway lol.
ok i just ran the files in terminal. so i guess it might work.
I'm back
Inisde the work folder you dropped the boot.img into, run this from a term:
extract-kernel.pl boot.img
extract-ramdisk.pl boot.img
it will give you several files and a new directory. That dir is the unpacked ramdisk. The init.rc file is the one we're looking for. Open it with a Unicode editor and read it. It has it's own syntax, but it's almost like bash and not too hard to figure out. Hopefully you loaded a bootimg that has a2sd in it. Look near the bottom of the file for the a2sd start up line. It will have a2sd, apps2sd, a2sd004 or something like that. Once you find it so you can see the name used, search the rest of the file for that name.
Those lines will show you how a service gets declared and called at boot time.
I'm up and running now. I downloaded python 2.6.4. Do I need to install it or just extract it somewhere? Please forgive my linux noobness.
The other 2 zip files are extracted and in my tools folder. I'm getting the boot.img now.
idk if this will work as i too am a newb to android and the way they deal with the boot process is somewhat a bit different from what i'm used to, but heres a new boot.img if you guys want to flash it to see if apps2sd works. note, this is not a zip, remove that suffix.
to flash it to your phone just move the boot image to your sdcard then reboot into recovery. from there go into adb and mount your sdcard, then flash the new boot image.
Code:
adb shell
mount /sdcard
flash_image boot /sdcard/newBoot2.img
reboot
tell me if it fixes your apps2sd problem or not.
watzone69 said:
I'm up and running now. I downloaded python 2.6.4. Do I need to install it or just extract it somewhere? Please forgive my linux noobness.
The other 2 zip files are extracted and in my tools folder. I'm getting the boot.img now.
Click to expand...
Click to collapse
try it without doing anything to Python first....especially since I meant perl
Just try my last post and see if it works for ya. I'll edit my first post
gbhil said:
try it without doing anything to Python first....especially since I meant perl
Just try my last post and see if it works for ya. I'll edit my first post
Click to expand...
Click to collapse
Nope, I got "command not found" both times.
darchstar said:
idk if this will work as i too am a newb to android and the way they deal with the boot process is somewhat a bit different from what i'm used to, but heres a new boot.img if you guys want to flash it to see if apps2sd works. note, this is not a zip, remove that suffix.
to flash it to your phone just move the boot image to your sdcard then reboot into recovery. from there go into adb and mount your sdcard, then flash the new boot image.
Code:
adb shell
mount /sdcard
flash_image boot /sdcard/newBoot2.img
reboot
tell me if it fixes your apps2sd problem or not.
Click to expand...
Click to collapse
Thanks darchstar, I'll try that in a bit.
watzone69 said:
Nope, I got "command not found" both times.
Click to expand...
Click to collapse
you gotta make it executable
inside the directory with the perl scripts do this
Code:
chmod a+x ./

[SMPLTUT] Easy Text2SD (And whatever else you want)

This is a very simple way to do Text2SD if a few steps!
It can be extremely useful to keep all of your texts between flashing roms or nandroids or a general screw up
1) Create a folder on your sdcard, you can name it whatever you want but I decided to name it Text2SD and put it in the data folder.
2) This will move your message database to the folder you chose
Code:
adb shell mv /data/data/com.android.providers.telephony/databases/mmssms.db /mnt/sdcard/*folder*/ (ie /mnt/sdcard/data/Text2SD/)
2b) Verify the file has been moved
Code:
adb shell ls /data/data/com.android.providers.telephony/databases/ (Should return telephony.db)
adb shell ls /mnt/sdcard/*folder*/ (Should return mmssms.db, aside from whatever else you might have in there)
3) This will create a soft symlink from the database file on your sd card to the directory on your phone. It has to be a soft link because a hard link cant cross 2 different drives
Code:
adb shell ln -s mnt/sdcard/Text2SD/mmssms.db /data/data/com.android.providers.telephony/databases/
3b) Verify the file has been linked
Code:
adb shell ls /data/data/com.android.providers.telephony/databases/ (Should return mmssms.db and telephony.db)
4) Reboot just to be sure and enjoy!
Code:
adb reboot
You can apply this to pretty much any other file and have things like bootanimation.zip2sd or build.prop2sd or whatever, I cant think of any good examples right now
Code:
argument explainations
mv: move or rename files (depending on inputs)
ls: list files in a directory
ln: make hard symlink
ln -s: make soft symlink
EDIT- Im having issues with messages force closing even after restoring the original file. You probably shouldnt try this unless you know what your doing
EDIT2- I was able to make it work again by fixing the permissions to rw-rw-rw- when i copied the file back. i cant get the permissions to be set right though since you cant change permissions linux style on fat fs. this can probably be fixed with an ext partition but i dont feel like copying everything off my sd card formatting and copying back on. maybe later or if someone can test

[Q] Simple adb question (or perhaps not?) Permission Denied

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

[Q] NEED HELP LG Optimus Elite Virgin Mobile

Hello Forum!
So i am currently using a Virgin Mobile LG Optimus Elite.
After 2 days of refuge here on the forums i amazingly found a small little program that was intended to root p500 devices and worked for mine.
I did run root checker and all plus i have root access so it is rooted.
My problem is,
1.) I cannot edit my build.prop
2.) Install Xbox Smartglass (which is the whole reason i'm killing myself for all this right now)
I'm running 2.3.7 gingerbread, and the smartglass app requires 4.0 and up.
I am certain this phone can run the app.
From the very beginning i tried to take the easy path out by manually downloading the .apk from an outside source but when i try to install it
i get an error stating that it had a problem "parsing" the info.
Running my little research i found you could edit the build.prop file to make the play store think you were running another device that was compatible. Then realizing my device must be rooted first, began my 2 days long journey to root the stubborn thing.
After root success, I installed ES File Explorer. From there, i went to my build.prop, proceeded to edit it with the ES text editor. Re-wrote the 2 lines required then when i went to save, "Error occurred when trying to save the file. It will not be saved." And just left me hanging after that.
In a quick desperate attempt, i found QtADB, which i thought would allow me to edit the system files. It only allowed me access to a hand full of the root directories. I downloaded the newest android dev kit (obviously you need it to run QtADB) so i don't know what exactly the problem here is.
For my absolute last desperate attempt i decided to do it manually. I took the build.prop and edited it manually through wordpad. (NOTE: i backed up the original) I named it "copy.build.prop" and placed it back in an easy to find directory. I then opened up ES file explorer, located the file and tried to copy it to the original location but no matter what i name it or what i do in general it will not move. It keeps failing and just telling me the file cannot be moved.
I am at my last legs with this to the point where i may just give up.
I dont know what to do and was hoping someone on here would.
If there was another way to install the app? If i could install it manually? Something to get me around all these utterly frustrating and annoying errors. I've ran from error to error, fixing it then coming to another. And at this point i just dont know what to do.
The help and replies would be much appreciated! Thanks in advanced!
The build.prop file is located in the /system partition, which is by default mounted as read-only (and for good reason).
Here are some simple steps to modifying the build.prop file.
1) Fire up an ADB shell ("adb shell" from a command prompt without quotes)
2) Within the ADB shell, execute "mount -o rw,remount /system /system" without quotes. This will remount your /system partition in read-write mode
3) Open a new command prompt and CD to an easily accessible directory (e.g "cd ~/Desktop" if on a Linux box)
4) Execute "adb pull /system/build.prop" without quotes
5) Edit the build.prop file as needed with a good text editor (DO NOT use Wordpad or Notepad, I prefer Notepad++ on Windows and Geany on Linux)
6) Execute "adb push /path/to/your/edited/build.prop /system/build.prop" without quotes. This will copy your modified build.prop back into the /system partition
7) In the ADB shell prompt, execute "mount -o ro,remount /system /system" without quotes. This will remount your /system partition read-only (never leave it read-write that is bad)
8) Reboot your phone
9) Profit!
As far as the Smartglass app goes, there is likely a good reason it requires ICS and above, and simply modifying your build.prop may not be enough. Don't take my word for it though, try the above steps and see what happens.
Cheers!
drewwalton19216801 said:
The build.prop file is located in the /system partition, which is by default mounted as read-only (and for good reason).
Here are some simple steps to modifying the build.prop file.
1) Fire up an ADB shell ("adb shell" from a command prompt without quotes)
2) Within the ADB shell, execute "mount -o rw,remount /system /system" without quotes. This will remount your /system partition in read-write mode
3) Open a new command prompt and CD to an easily accessible directory (e.g "cd ~/Desktop" if on a Linux box)
4) Execute "adb pull /system/build.prop" without quotes
5) Edit the build.prop file as needed with a good text editor (DO NOT use Wordpad or Notepad, I prefer Notepad++ on Windows and Geany on Linux)
6) Execute "adb push /path/to/your/edited/build.prop /system/build.prop" without quotes. This will copy your modified build.prop back into the /system partition
7) In the ADB shell prompt, execute "mount -o ro,remount /system /system" without quotes. This will remount your /system partition read-only (never leave it read-write that is bad)
8) Reboot your phone
9) Profit!
As far as the Smartglass app goes, there is likely a good reason it requires ICS and above, and simply modifying your build.prop may not be enough. Don't take my word for it though, try the above steps and see what happens.
Cheers!
Click to expand...
Click to collapse
I'm having problems setting a custom directory now... im on a windows 7 pc. I'm using the Qtabd shell, and at first it stated to give the CD a home, i've tried a million combinations and i just cant get one to work!!!

[Build.Prop] Xperia L

Hi there
I was messing with my build.prop to tweak and test it on my ROM and I got bootloop. I had to flash system again via ftf as I didnot make a backup on my PC. However, there are many ways to edit/flash build.prop again and thus if anyone of you have a problem while editing build.prop you can write it back to your device using ADB Shell commands.
Run Command Prompt where you have adb. You must have drivers installed properly. For drivers check into my forum :
http://forum.xda-developers.com/showthread.php?t=2493042
adb pull /system/build.prop C:\Users\user\Desktop
User is your user name on PC. You may copy it anywhere else by changing the location of the file.
"build.prop" on your desktop should appear. Open it with using a wordpad. Change what ever you want to.
adb push C:\Users\user\Desktop\build.prop /sdcard/build.prop
This will copy the build.prop on your sd card
ADB remount
ADB push c:\build.prop /system/ depending where your file is. In this case, I am trying to mount directly from C:/ to phone. If this doesnot work, you should use the above command to copy it in sdcard and then try to push it from sd card.
If suppose that doesnot work either, use adb shell
adb shell
A shell is used to run commands.
su mount -o remount,rw none /system
busybox cp /sdcard/build.prop /system/build.prop
mount -o remount,ro none /system
You are done ! Good Luck
UPDATE
I am unable to reach device using adb commands. Anyone who knows how can i push build.prop when my adb is not working and my phone is bootlooped

Categories

Resources