How to make bash the default shell on ICS? - Android Q&A, Help & Troubleshooting

Hi. I'm using ICS (AOKP with some CM9 patches). I'd like "adb shell" to bring up bash instead of mksh. Is there any way to do this? I tried linking /bin/sh to `which bash`, but that caused system problems--I lost USB debugging completely and had to restore from nandroid backup.
Anybody figure this out yet?

fenstre said:
Hi. I'm using ICS (AOKP with some CM9 patches). I'd like "adb shell" to bring up bash instead of mksh. Is there any way to do this? I tried linking /bin/sh to `which bash`, but that caused system problems--I lost USB debugging completely and had to restore from nandroid backup.
Anybody figure this out yet?
Click to expand...
Click to collapse
in /etc/mkshrc add to the end:
bash
exit

tgwaste said:
in /etc/mkshrc add to the end:
bash
exit
Click to expand...
Click to collapse
Thanks, that worked! But a note for anybody else reading this: You should absolutely, absolutely add this line WITHOUT the "exit" for testing purposes first. Bash may not be present during boot (/system/xbin may not be part of the path during boot, for example). After you test it and it works, you can write "exec bash" instead of "bash; exit" because it means you won't have one extra mksh process running and doing nothing.

Related

Removing App Registry?

Hi,
A few months ago I uninstalled an older version of the free mybackup Pro app which I had as at the time as I wasn't going to use it, but have decided that with the upcoming (hopefully) 2.1 update I would back up my phone however when I tried to install and run it, it would not let me use and told me to update to the full version.
How can I remove the older registry files to enable me to back up on the free version for the time being if at all?
Cheers
there is no such thing as a registry. uninstalling apps also removes the settings for the app, everything is gone then.
kendong2 said:
there is no such thing as a registry. uninstalling apps also removes the settings for the app, everything is gone then.
Click to expand...
Click to collapse
Thats what I thought but it still wont work?
choccy31 said:
Thats what I thought but it still wont work?
Click to expand...
Click to collapse
execute this in adb shell, does it give any output?
Code:
ls -1 /data/data/ | grep -i backup
if so try to delete the file.
kendong2 said:
execute this in adb shell, does it give any output?
Code:
ls -1 /data/data/ | grep -i backup
if so try to delete the file.
Click to expand...
Click to collapse
How do I access adb shell?
you need to have downloaded the sdk software, once you have setup file associations its a matter of opening up a command prompt, changing to your tools directory
c:\>cd \sdk\tools
C:\sdk\tools>
Then type the code above,
akhtar1817 said:
you need to have downloaded the sdk software, once you have setup file associations its a matter of opening up a command prompt, changing to your tools directory
c:\>cd \sdk\tools
C:\sdk\tools>
Then type the code above,
Click to expand...
Click to collapse
thanks for that, will take a look.

[Q] Questions on the custom boot and system.ext2 images

I read in the bootloader development thread that it'd reached a level where it could almost boot into a custom system image stored on the SD card. Some questions about that:
1. The creation of that image, is it similar to how it's done for use with the XDAndroid project? (The porting of Android to HTC WinMo devices)
2. Is there a way to avoid having to reflash the device after every attempt? It looks like the boot-scripts take control pretty early in the process so having a choice if you want to proceed would be awesome, especially since I can't figure out how to get hold of a bootlog.
Thanks
ddewbofh said:
1. The creation of that image, is it similar to how it's done for use with the XDAndroid project? (The porting of Android to HTC WinMo devices)
Click to expand...
Click to collapse
I have no clue how they do it for XDAndroid, but here's how I created mine:
dd if=/dev/zero of=rootfs.ext2 bs=1M count=512 (for 512Mb fixed size)
mkfs.ext2 rootfs.ext2 (press y to accept)
mount somewhere
copy your stuff into
umount
ddewbofh said:
2. Is there a way to avoid having to reflash the device after every attempt? It looks like the boot-scripts take control pretty early in the process so having a choice if you want to proceed would be awesome, especially since I can't figure out how to get hold of a bootlog.
Click to expand...
Click to collapse
You don't need to re/flash at all. Pressing any key during the bootup will cancel the script and get you back into old good SE's 1.6
zdzihu said:
You don't need to re/flash at all. Pressing any key during the bootup will cancel the script and get you back into old good SE's 1.6
Click to expand...
Click to collapse
I've tried hammering all the keys without any success, since it works for you maybe I'm doing it at the wrong time. Where in the boot process do you do it?
And thanks for the tip about the image, didn't want to risk messing something up since I had to reflash after every try.
ddewbofh said:
I've tried hammering all the keys without any success, since it works for you maybe I'm doing it at the wrong time. Where in the boot process do you do it?
Click to expand...
Click to collapse
Bash them for a while as soon as you see SE logo appearing
ddewbofh said:
And thanks for the tip about the image, didn't want to risk messing something up since I had to reflash after every try.
Click to expand...
Click to collapse
Make sure you either name your image rootfs.img (not .ext2) or edit the init in the ramdisk accordingly.
Cheers
Thanks, that should make things much, much easier.
zdzihu said:
I have no clue how they do it for XDAndroid, but here's how I created mine:
dd if=/dev/zero of=rootfs.ext2 bs=1M count=512 (for 512Mb fixed size)
mkfs.ext2 rootfs.ext2 (press y to accept)
mount somewhere
copy your stuff into
umount
You don't need to re/flash at all. Pressing any key during the bootup will cancel the script and get you back into old good SE's 1.6
Click to expand...
Click to collapse
is there different form flash?
I've figured out why my phone refuses to go back to normal after testing the chroot. It needs grep and the standard sh doesn't provide it nor is there a grep symlink/binary in /system/bin so I'll add those manually.
Anyways, if anyone has a script or something to do all this it would be very helpful. I'm not looking forward to going over tons of symlinks manually.
ddewbofh said:
I've figured out why my phone refuses to go back to normal after testing the chroot. It needs grep and the standard sh doesn't provide it nor is there a grep symlink/binary in /system/bin so I'll add those manually.
Anyways, if anyone has a script or something to do all this it would be very helpful. I'm not looking forward to going over tons of symlinks manually.
Click to expand...
Click to collapse
How about busybox --install -s /your_destination_dir ?
zdzihu said:
How about busybox --install -s /your_destination_dir ?
Click to expand...
Click to collapse
Awesome, thanks. My knowledge about busybox is limited at best so when I saw install listed as a busybox function I assumed it was the "normal" install command.
In the quest for finding a way to use custom kernels I'm playing around with the splboot module but I need to find a way to get hold of dmesg or kmsg from failed attempts. Is there a reliable way to get any of these logs?
I've tried adding a line in the mount_iso script which cats kmsg to a file right before executing the splboot but I'm seeing nothing that would indicate that I'm running anything but the stock kernel.
Any ideas?

Sysctl access

Hey guys
One of the things im working on atm, having a bit of trouble trying to get a sysctl.conf I am working on to be loaded at startup
I've managed to generate the file, edit what i want, gotten it into /etc, but therein lies the problem
when i try to run systl -p, it keeps telling me the following:
sysctl: error setting key <insert sysctl key here>: Permission Denied
How can i overcome this? As soon as ive finished the work on this file, I'll be happy to share it with everyone
so no ideas?
Do you have superuser permissions (su, command prompt #) ?
When trying with this:
-p
Load in sysctl settings from the file specified or /etc/sysctl.conf if none given.
Perhaps this helps ?
-e
Use this option to ignore errors about unknown keys.
I try running su from command prompt
after using adb shell, all i get after running su is this
Brief 5sec delay, and permission denied. Thats what i dont get, I've Rooted the phone using the guide on the forums and everything went to the letter
*Shrugs* I dunno, tried the -p, thats what gives me the error i get.
Nutterpc said:
I try running su from command prompt
after using adb shell, all i get after running su is this
Brief 5sec delay, and permission denied. Thats what i dont get, I've Rooted the phone using the guide on the forums and everything went to the letter
*Shrugs* I dunno, tried the -p, thats what gives me the error i get.
Click to expand...
Click to collapse
Look at your phone to allow Superuser permission after entering su in the terminal or command
Sent from my X10i using XDA App
had a bit more of a fish round the net to see if anyone else ham similar issues
seems i was able to find the eventual root cause of it, was /system/bin/sh was set to secure mode, so i downloaded root explorer and changed the permissions
now the only thing is, how do i actually get the sysctl.conf im working on to be loaded at start, when i turn the phone on?
You might find something useful in this thread:
http://forum.xda-developers.com/showthread.php?t=523707

[Q] Imoseyon leanKernel V2.4

So I feel like a total Noob, which i am, but I cannot get this new Kernel to work for me. I do the following steps:
1) Open Terminal Emulator (install it from market if you don't have it).
2) Type "su" (without quotes) and hit enter.
3) Type "speedtweak.sh" (without quotes) and hit enter.
When I type in and I get speadtweak.sh and i get Speedtweak.sh not found... what in the world am I doing wrong?
when terminal boots up I get:
$ export PATH=/data/local/bin:$PATH
$
when your terminal boots up-
$ export PATH=/data/local/bin:$PATH
$
-- You need remember ALWAYS lower sensitive case characters
type su hit return
it will come up #
then
type speedtweak.sh hit return
There you will access the dialog output from speedtweak.sh.
Good luck
You have to install BusyBox. If you haven't it'll show up as "not found".
Having same issue. Busybox is installed even tried using adb shell. Any advice?
Did you install the kernel through Rom Manager or through Recovery? If it was through Rom Manager it could have been a bad flash.
Also, you can try this
I found this thread through google, searching for "speedtweak.sh not found." I dislike necroposting but I tried various suggestions found on multiple websites and none of them worked for me. I kept getting the same error code. Hopefully this will help someone else with the same issue. I don't know much about Linux/Unix so I am always extremely methodical about typing in commands precisely as they're posted, double-checking each step so I'm certain I did everything correctly.
I finally solved the issue for me by entering in the following in Terminal Emulator.
su
/sbin/speedtweak.sh
Typing in the full path for the speedtweak script worked for me. Perhaps someone with more experience can explain why that was necessary. Were we working in DOS, I'd know to add C:/sbin/ to the autoexec.bat path line... :silly:
Terminal emulator from the market had something changed in the last update so for some reason now you have to manually enter it or change the path in the settings.
Sent from my ADR6400L using Tapatalk 2

[Q] "Operation not permitted" trying to mount extSD as intSD

Hi, I've been trying to move all my game data from my internal SD card to my larger external SD card with no joy.
I have used condi's AIO tool to install init.d support, which reported as successful, but when I follow obicom's instructions as listed in POST #43 of this thread http://forum.xda-developers.com/showthread.php?t=1490116&page=5
I repeatedly receive the message "Operation not permitted."
I have used both ADB Shell and Terminal Emulator with the same result.
I'm obviously doing something wrong as other people appear to have had success with these instructions, I just don't know what.
Here's what I've done: (on rooted ICS from condi's AIO tool)
Installed init'd support "successfully"
Moved all data from sdcard/Android/data over to sdcard2/game_data
In ADB Shell/Terminal Emu. entered the following line;
mount -o bind /sdcard2/game_data /sdcard/Android/data
and this is where I get the "Operation not permitted" message.
Any ideas?
Once you're in shell, before running the mount command, run the command 'su' first (without the quotes). Your prompt should change from $ to # and try running the mount command again.
Explained: In most Linux systems, unless the fstab has been specifically setup to do it with the user option, filesystems can only be mounted by root. In rooted versions of Android, the normal user can elevate into a root prompt with su, then allowing you to mount and unmount any filesystems.
Ahaaa
Awesome! Can't believe it was something so simple, thanks, and thanks for explaining the reason.
I must have somehow totally missed the "su" instruction in the other thread.
Half of my games work, the other just seem to need re-installing which is no big drama.
Again, thanks, it's much appreciated mate.
Script?
agc93 said:
Once you're in shell, before running the mount command, run the command 'su' first (without the quotes). Your prompt should change from $ to # and try running the mount command again.
Explained: In most Linux systems, unless the fstab has been specifically setup to do it with the user option, filesystems can only be mounted by root. In rooted versions of Android, the normal user can elevate into a root prompt with su, then allowing you to mount and unmount any filesystems.
Click to expand...
Click to collapse
Hi, is there a way I can create a script (or the like) that would do this, and other similar directory changes, at boot?
At present I need to enter these manually each time the tablet starts, which isn't too much of a drama for me but when other people use it they end up downloading the data all over again when they start a game.
Thanks
There is an app available on Google Play called Script Manager (which can be used to create scripts to run at boot as su (which mount command require), which should do what you need. You'll need to use a plain text editor (I believe there is one included with Script Manager) to enter each of the mount command you want to run on a separate line. Then set the file to executable (chmod +x scriptname), and add it to Script Manager.
Note that I haven't used it in a while, so follow whatever instructions Script Manager gives you. They're probably more up to date.
agc93 said:
There is an app available on Google Play called Script Manager (which can be used to create scripts to run at boot as su (which mount command require), which should do what you need. You'll need to use a plain text editor (I believe there is one included with Script Manager) to enter each of the mount command you want to run on a separate line. Then set the file to executable (chmod +x scriptname), and add it to Script Manager.
Note that I haven't used it in a while, so follow whatever instructions Script Manager gives you. They're probably more up to date.
Click to expand...
Click to collapse
Okay thanks, yet again, I'll give it a try today.
Operation not permitted
Hi,i wanted to change my mac address on phone and even with that su command i get "operation not permitted" (my phone is rooted)...even apk named overclock for android could not grant root acces...in root checker my phone is rooted(and i have been rerooting it but still same).AND THERE IS NO FIX ON INTERNET

Categories

Resources