[Q] Busybox + bootanimation - Galaxy S I9000 Q&A, Help & Troubleshooting

Hi
Quick RFI...
I'm rooted and running hardcore's 'Speedmod' kernel quite happily.
I've got a problem with custom boot animations, and it seems similar to a lot of other users. Basically the 'blank screen' problem.
When I run '/sbin/bootanimation.sh' from the shell I get the following errors:
[: not found
[: not found
Which explains the blank screen on startup. The file is being found but the script is failing. There's nothing wrong with the default bootanimation.sh script itself.
However, when I run 'busybox sh /sbin/bootanimation.sh' whatever animation I have in /data/local/bootanimation.zip plays fine on the screen.
So I guess there is a problem with the default shell implementation on the phone, and busybox is not being used by default. I've got /system/xbin/ containing all the links to the busybox binary in /sbin and my /init.rc looks the same as the various examples I've found from successful bootanimation users.
Does anyone have a hint as how I can get busybox working as the default shell, or make the inbuilt shell behave itself?
Thanks!

Check the first line of bootanimation.sh. If it looks something like:
Code:
#!/system/bin/sh
then replace it with:
Code:
#!/system/xbin/busybox sh

Related

[Q] Compiling kernel modules

Hi
I'm a new owner to a Galaxy tab 8.9 and trying to make it able to mount NFS exports.
So I've rooted the device, installed SuperUser and terminal emulator. Then I downloaded the kernel source tree from Samsung, I compiled the NFS module on my desktop computer moved it to /system/lib/modules on the tab. But it doesn't work, when I do 'insmod nfs.ko' it gives back 'insmod: init_module nfs.ko failed (No such file or directory)'
Is it possible at all to add modules to the standard kernel that comes with the device?
Is my device completely rooted because when I try 'adb root' I get 'adbd cannot run as root in production builds'
me too...
I just encountered the exact same problem on my LG Revolution, except I'm trying to load nfsd.ko for server support.
I know I built it correctly because I've already succeeded in getting tun.ko working properly...
Code:
root # /system/bin/insmod /system/lib/modules/nfsd.ko
insmod: init_module '/system/lib/modules/nfsd.ko' failed (No such file or directory)
root # ls /system/lib/modules
... nfsd.ko
Very odd...
When you do the insmod are you actually in the /system/lib/modules directory? If not, you have to use the full path to the module.
The message with "adb root" is normal even on a rooted device. If you can do "adb shell" followed by "su" you should be ok.
edit...
Now that I think of it...that message usually means the module file was found but a dependency wasn't.
gtj0 said:
Now that I think of it...that message usually means the module file was found but a dependency wasn't.
Click to expand...
Click to collapse
Yep that was my problem. My nfsd.ko needed dependencies that didn't exist...
To the OP: try to insmod the nfs.ko module again and then look at the output of dmesg. You should see messages complaining about the dependencies required by the nfs module.
Then you ought to be able to either remove the requirement for them from your module (my nfsd.ko wanted posix_acl support so I just got rid of that option and rebuilt the module) or if it's something you need/want you might be able to add support for whatever it is as another module...
Good luck and I hope I didn't intrude upon your thread too much
Thanks, I had indeed a dependency problem. Now I managed to load nfs.ko and sunrpc.ko and lockd.ko that were needed because of dependency.
Although I'm still having problems at mounting an nfs export. Previously, before kernel module problem was solved, I got the error message 'No such device' when I tried to mount, now I get 'Invalid argument' instead.
I've tried commands like
busybox mount -t nfs 192.168.1.100:/mnt/raid/media /sdcard/nfs
and
busybox mount -o nolock,ro,hard,intr,vers=3 -t nfs 192.168.1.100:/mnt/raid/media /sdcard/nfs
Any thoughts?
NFS Share - Invalid Argument
Marlin79 said:
........... now I get 'Invalid argument' instead.
I've tried commands like
busybox mount -t nfs 192.168.1.100:/mnt/raid/media /sdcard/nfs
and
busybox mount -o nolock,ro,hard,intr,vers=3 -t nfs 192.168.1.100:/mnt/raid/media /sdcard/nfs
Any thoughts?
Click to expand...
Click to collapse
Seems like an Old thread, and I would assume you've gotten this fixed already, but in case it ISN'T fixed...
>Double check your NFS config (/etc/exports file) and confirm that you are sharing:
* /exports/mnt/raid/media *
If you specified something else in your /etc/exports file, check to make sure your Hard drive (I assume /mnt/raid/media) is soft-linked to the share name you wanted to give it, or that at least the subfolders/files you want shared are softlinked to the /exports/share directory.
**e.g.**
# ln -s /exports/media/ /mnt/raid/media
-OR-
# ln -s /exports/media/shared_media_1.mp4 /mnt/raid/media/actual_file.mp4

[GT-P3XXX] busybox + install-script [+cyanogen edition][2012-08-15]

Hi folks,
here's an easy-to-install busybox for your Galaxy Tab 2. NOW with Cyanogen Mod support.
ChangeLog:
BusyBox 1.21.0-git Nano1 (2012-07-28): initial release
BusyBox 1.21.0-git Nano2 (2012-07-29): applied various patches:
BUGFIX: flush all open files after listing them (ls)
BUGFIX: when setting hostname from file p**** whole name
COMPAT: ps now accepts (= ignores) all options a POSIX ps should
allow passing -mthumb to make
ash applet now exports HOME
silently ignore processes from inittab with terminal names without matching device file
default behaviour of 'showkey' applet changed from displaying interpreted keycode to decimals
do not show a message when testing an uninitialized variable
changed some terms in top applet output (rss vs. vsz)
BusyBox 1.21.0-git Nano3 (2012-08-05): major fix
NEW: rfkill applet¹
several minor modifications to applet
BUGFIX fixed a bug in busyinstall that left system without 'sh' upon uninstall²
provide busybox-patches to the world
BusyBox 1.21.0-git Nano4 (2012-08-15): minor fix / cm 10 edition
updated to latest git (some bugfixes)
BUGFIX: reading profile now works
BUGFIX: adjusted shell paths
BUGFIX: history now works
BUGFIX: no longer replace reboot on stock rom³
NEW: Cyanogen Mod edition (tested on cm10)
¹ Either redo 'busyinstall install', or do 'ln -sf /system/bin/busybox /system/bin/rfkill'
² You can find the original sh in you CWM backup, or here: http://www.nanolx.org/downloads/P3110/original-sh
If you didn't get /system/bin/sh.orig after 'busyinstall install', use this file as /system/bin/sh.orig
³ push new busyinstall into tablet to ensure future install/uninstall is fine. then do 'mv /system/bin/reboot.orig /system/bin/reboot'
from within 'adb shell' as root to get original reboot back.
Prerequisites:
* root access on your Tablet
Download:
busybox (normal): http://www.nanolx.org/downloads/P3110/busybox-nano4
busybox (debug): http://www.nanolx.org/downloads/P3110/busybox_unstripped-nano4
busyinstall (installer/stock): http://www.nanolx.org/downloads/P3110/busyinstall
busyinstall (installer/cm10): http://www.nanolx.org/downloads/P3110/busyinstall-cm
profile (optional): http://www.nanolx.org/downloads/P3110/profile¹
busybox (patches): http://www.nanolx.org/downloads/index.php?dir=P3110/busybox-patches/
¹ profile is a generic file, read on each startup of busybox. Mine sets HOME to /,
and puts /system/xbin/ in front of /system/bin/ in PATH. You can also adjust the
prompt (PS1) or whatever here, it's valid for all users. You could check for
'$(id -u) == 0' to adjust prompt for root, if not 0, for ordinary user.
Ordinary user should get 'busybox (normal)', rather than 'busybox (debug)'.
NEW INSTALLATION (STOCK ROM):
Putting busybox on internal sd-storage:
Code:
adb push busybox /mnt/extSdCard/
adb push busyinstall /mnt/extSdCard/
replace "extSdCard" if you saved busybox somewhere else
Code:
adb shell
su
chmod 0777 /mnt/extSdCard/busybox
chmod 0777 /mnt/extSdCard/busyinstall
/mnt/extSdCard/busybox remount -o rw,remount /system
/mnt/extSdCard/busybox mv -f /mnt/extSdCard/busybox /system/bin/
/system/bin/busybox mv -f /mnt/extSdCard/busyinstall /system/bin
busyinstall install
NEW INSTALLATION (CYANOGEN ROM):
Putting busybox on device:
in Settings > Development > set 'root access' to 'apps + adb'
Code:
adb root
adb shell
busybox mount -o rw,remount /system
exit
adb push busybox /system/xbin/busybox.nano
adb push busyinstall /system/bin/busyinstall
adb push profile /system/etc/profile # optional, if downloaded profile
adb shell
chmod 0777 /system/bin/busyinstall
busyinstall install
UPDATE:
Just download busybox, busyinstall and replace the ones in /system/bin/ - it will instantly work:
Code:
adb push busybox /system/bin/
adb push busyinstall /system/bin/
adb shell
su
toolbox chmod 0777 /system/bin/busybox # if you use windows, the executable bit might be missing in the uploaded file
chmod 0777 /system/bin/busyinstall
UNINSTALLATION:
Code:
ab shell
su
busyinstall --
That's it!
I tested everything and it does work perfect, either way a backup (CWM) is always recommened, when working around with stuff down the stack.
Suggestions welcome.
Out of curiosity, what is the difference between what this does and what BusyBox (by Stericson) from the Play Store does?
Sent from my MB855 using Tapatalk 2
Jleeblanch said:
Out of curiosity, what is the difference between what this does and what BusyBox (by Stericson) from the Play Store does?
Sent from my MB855 using Tapatalk 2
Click to expand...
Click to collapse
mine is a newer version
has all features of busybox (stericsons free version does not have all applets in busybox enabled, eg. 'sh' applet is missing)
installation 100% GT-P3XXX optimized
As of now, mostly personal preference I'd say.
Edit: But I'm currently applying stuff from busybox-power (maemo) which adds serveral bugfixes and stuff to busybox.
OK, improved version of busybox available in post 1 (+ changelog)
OK, thanks for letting me know!
I actually haven't done much with my Tablet lately as I've been busy with my phone as that now has CM10 too
But once I get my phone all set I'll use your BusyBox and give it a go!
Also, you said your busybox version is newer...but busybox via my phone is version 1.20.2. Just letting you know!
Thanks for this btw, I'd rather have a modified version optimized for my tablet versus a more universal version so to speak. Plus, with your updated applets! Thanks!
Sent from my MB855 using Tapatalk 2
Jleeblanch said:
Also, you said your busybox version is newer...but busybox via my phone is version 1.20.2. Just letting you know!
Sent from my MB855 using Tapatalk 2
Click to expand...
Click to collapse
Oh, ... mine is 1.21.0-git - fixed the typo
First,thank you for your work,second I've a question: I've an p3100 (wifi+gsm) ,it rooted on stock 4.0.4 ,and no busybox installed.It has 16gb onboard ,and I don't have at the moment any external microsd in slot,I've ordered an 32gb,but it hasn't come yet.Can you please tell me if it's safe puting your files in /sdcad (not ExtSdCard like you wrote) and give the commands using ''sdcard'' word ?
For e.g:
db shell
su
/mnt/sdcard/busybox remount -o rw,remount /system
I need busybox to backup my /efs folder ,but I don't want to screw something,so please tell me if it is safe to use internal memory (sdcard) for busybox install?Also ,when I'll receive the microsd ,I will need to install again busybox with your original commands from this topic ?
Thanks a lot!!
Best Regards!
viasat said:
First,thank you for your work,second I've a question: I've an p3100 (wifi+gsm) ,it rooted on stock 4.0.4 ,and no busybox installed.It has 16gb onboard ,and I don't have at the moment any external microsd in slot,I've ordered an 32gb,but it hasn't come yet.Can you please tell me if it's safe puting your files in /sdcad (not ExtSdCard like you wrote) and give the commands using ''sdcard'' word ?
For e.g:
db shell
su
/mnt/sdcard/busybox remount -o rw,remount /system
I need busybox to backup my /efs folder ,but I don't want to screw something,so please tell me if it is safe to use internal memory (sdcard) for busybox install?Also ,when I'll receive the microsd ,I will need to install again busybox with your original commands from this topic ?
Thanks a lot!!
Best Regards!
Click to expand...
Click to collapse
Of course you can. It does not matter where you put busybox. All that matters is, that you adjust the commands to your path.
In your you would push the files using ADB, like
Code:
adb push busybox /mnt/sdcard
adb push busyinstall /mnt/sdcard
also you don't need to re-do this when you got your sd-card, because during the steps you move busybox/busyinstall into /system/bin/.
Edit: updated instructions to clarify this.
Ok,thank you for your time,everything it's clear now.I'll try later,when I'm going home.
Cheers!
---------- Post added at 07:04 PM ---------- Previous post was at 06:11 PM ----------
OK,first problem:when I try to execute the first comand,it gives me ''permission denied'',so after a little reading,because my kernel it's stock,I've installed Chainfire's ''adbd Insecure v1.0 '' http://forum.xda-developers.com/showthread.php?t=1687590 to give me rights.After that I've no more errors,but,when I execute first command in adb,it says nothing,just hanging,and adb doesn't come back to # symbol ,and because of that I can't execute the next command.Any ideea what I'm doing wrong?Thanks!
What command failed?
Gesendet von meinem GT-P3110 mit Tapatalk 2
I don't know how to explain,it not really failed, but when I type
/mnt/sdcard/busybox remount -o rw,remount /system the adb doesn't return anything back,and doesn't come back to # symbol ,it just staying,nothing more,no response.I was waiting 2 minutes,and nothing ,doesn't return to # .I can type the next command
/mnt/sdcard/busybox mv /mnt/sdcard/busybox /mnt/sdcard/busyinstall /system/bin/
it's the same,no output,nothing.
Can you please tell me what I'm doing wrong?
Thanks again!
Now I'm stuck,even with adbd insecure activate I cannot execute commands:
C:\Documents and Settings\X\Desktop\ADB>adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
[email protected]:/ # /mnt/sdcard/busybox remount -o rw,remount /system
/mnt/sdcard/busybox remount -o rw,remount /system
/system/bin/sh: /mnt/sdcard/busybox: cannot execute - Permission denied
126|[email protected]:/ # /mnt/sdcard/busybox mv /mnt/sdcard/busybox /mnt/sdcard/busy
install /system/bin/
dcard/busybox /mnt/sdcard/busyinstall /system/bin/ <
/system/bin/sh: /mnt/sdcard/busybox: cannot execute - Permission denied
126|[email protected]:/ #
Maybe I need first to install Stericsson's busybox from Market?At the moment,as I said before I don't have busybox installed at all,only su.
One more thing,every time when I save from your link busyinstall,no matter what browser,the file is saved as busyinstall.txt
It is normal ,or I need to rename it?
Thanks a lot!
Hmm... seems I forgot a little thing.
do this after you put busybox on tablet, before anything else:
Code:
adb shell
su
chmod 0777 /mnt/sdcard/busybox
then follow the rest of the instructions.
/goingtofixfirstpost
Same story,take a look:
[email protected]:/ # chmod 0777 /mnt/sdcard/busybox
chmod 0777 /mnt/sdcard/busybox
[email protected]:/ # chmod 0777 /mnt/sdcard/busyinstall
chmod 0777 /mnt/sdcard/busyinstall
[email protected]:/ # /mnt/sdcard/busybox remount -o rw,remount /system
/mnt/sdcard/busybox remount -o rw,remount /system
/system/bin/sh: /mnt/sdcard/busybox: cannot execute - Permission denied
126|[email protected]:/ #
Hmmm... > could you provide me the details of 'adb logcat'? Ensure to run those commands while logging.
Gesendet von meinem GT-P3110 mit Tapatalk 2
I don't know if this is what you want,but here we go:
I'm going to check your logs soon and report back.
Meanwhile I updated to Nano3 - see first post.
I got no clue why it does not work for you, but me.
What boot image and ROM are you using? Default boot/ROM, rooted boot/ROM, cyanogen?
I only tested default ROM with my boot. Currently testing cyanogenmod 10, but except some adjustments to busyinstall it will work there, too.
Sorry for the late reply,I'm on vacation until Sunday,and my acces to internet it's very limited here.Now,regarding my problem,first when I got the tablet it was on stock 4.0.3 ,wich I rooted manually to keep the counter to 0 (for warranity) ,and after that I updated to stock 4.0.4 using Mobile Odin Pro,with Everoot option ( it's rooting the rom on the fly) .So now I'm rooted on stock 4.0.4 ,stock recovery, and no busybox installed.I fell more secure and want to install your busybox version,because it's specialy designed for tab2,and it's has features from Maemo (I'm a big fan,I owned an N800,and I've also an N900 ).Maybe,if you have the time and the skills,you can pack it on an .apk version,if it's possible,of course.I will try more Sunday,when I'll be back home.Thanks again for your patience and help.Best Regards!
It will be great if we have a kernel (even stock) with CWM and this busybox...
I am also rooted with flash counter 0 and stock recovery.
Sent from my GT-P3110 using Tapatalk 2
Maybe some contributor creates a flashable zip (for CWM).
So... uploaded 1.20.1-Nano4. See first post for changes.
This time an addtional install-script for cyanogen mod was added, along some fixes.
ah... and: 100th post

[tutorial] install bash command line on your android

it is not tested on galaxy mini so I will say it beta, please its a request to post a reply whether it is working or not
bash:- an advanced command line than sh, it is colorful so you can differentiate the commands easily
steps for installing bash if you have cwm and want automated process
1:- download the bash command line flashable zip from here
2. download bash enabler script from here
3. flash the bash command line dhlalit11.zip in cwm recovery
4. boot the device normally
5. with the help of script manager execute the bash install.sh script with su privilege
and you are done
Click to expand...
Click to collapse
steps for installing bash if you don't have cwm or want to do it manually
1:- download the bash command line flashable zip from here
2. extract the files to a folder
3. go to /extracted folder/system
4. copy all the files to your system as they are placed
5. open terminal and type chmod 0755 /system/xbin/bash
and its done
Click to expand...
Click to collapse
note:- running bash will not give you root privilege automatically, you will need to type "su -c bash" to go directly into bash with root
reserved
if you don't mind...you can add this line into your updater script
Code:
set_perm(0, 0, 0755, "/system/blabla-the file position");
this one will automatically change the file permission for you so that we don't have to run the script anymore. you can also add symlink("/system/bin/bash", "/system/bin/sh"); to replace our old sh with bash so that everytime we use sh command, we will run bash instead. I was using these trick on my old ROM. however, this step will erase our sh binary file. so we must use it carefully. I usually did these step on a fresh rom installation. you might want to test it by yourself to make sure everything is alright.
I like to make scripts and one more reason is the script first looks for bash in /system/xbin to ensure a proper flash, if bash is not found it will tell the owner
didn't wanted to replace sh
if the purpose is to check whether it was installed correctly or not you can use run_program command instead and make the installation a lot simpler. you can put the script temporary in cache and delete it after the installation complete. or else...you can play with aroma installer. you can design the UI with several option like
1. install bash
2. symlink bash to sh
3. check the bash installation status
4. etc etc (as you like)
aroma could make our usual installation stuff into sumething more fun and interactive ^,^v
anyway, this is only a suggestion. if you want to use aroma you can modify my multi tweak installer. you said that you like to make scripts. it will be easy for you to get the basic stuff on aroma and starting to made one for your self. the link is in my sig. check the akuro or one pack tweak thread and got the aroma from the latest version there.
script run in cwm do not print anything on the UI and the user will not see whether the it was done or not
and I had previously used aroma in my rom patch for galaxy s series but this is just a simple task to do
I will think about it, but sure it will take time and I don't have time as I wanted to update the sticky of this forum then I am working on two mods for my karbonn smart tab 1
but I will for sure figure it out
installing bash
hi i have a Galaxy Centura tracphone and i get this error after executing su-c bash into the cmd via adb......I have installed the flashable zip and ran the installer script....
255|[email protected]:/system/bin # su -c bash
su -c bash
link_image[1936]: 7974 could not load needed library 'libncurses.so' for 'bash
(load_library[1091]: Library 'libncurses.so' not found)CANNOT LINK EXECUTABLE
255|[email protected]:/system/bin #
any ideas?
Bash
Hi, I managed to install the ZIP file (Moto G XT1032) and the script worked as well but after it was done, bash didn't have 755.
I tried adding it manually (as root) but it fails with this error:
Unable to chmod /system/xbin/bash: read-only filesystem
I tried remount using this:
su mount -o remount,rw /
But still no luck, any suggestions?
---------------------------------------------------- UPDATE -------------------------------------------------------
managed to get it via ADB Shell with this commands:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
chmod 755 /system/xbin/bash
still not working because of not having "libncurses.so" which will try to install manually.
ThePlayer10 said:
Hi, I managed to install the ZIP file (Moto G XT1032) and the script worked as well but after it was done, bash didn't have 755.
I tried adding it manually (as root) but it fails with this error:
Unable to chmod /system/xbin/bash: read-only filesystem
I tried remount using this:
su mount -o remount,rw /
But still no luck, any suggestions?
---------------------------------------------------- UPDATE -------------------------------------------------------
managed to get it via ADB Shell with this commands:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
chmod 755 /system/xbin/bash
still not working because of not having "libncurses.so" which will try to install manually.
Click to expand...
Click to collapse
You didn't needed to type whole dev block address, what you were missing was
(su
mount -o remount,re /system)
You were actually mountung the root of your device instead of system partition, which was the reason of non-working

[Q][DEV] system() call fail when executing native app with su permission

Hi all,
I have run into very disturbing problem when developing a native app with NDK. When my program calls system(), popen() or other function of that kind the return value of system() call is 32512 (which is 127: "command not found"). popen() does not return error code but crashes when trying to read() (returns -1). I have tested this on basic commands such as ls, ps, etc. Tried to provide a full path to the binaries as well without success.
The issue appears only when executing binary with su (I have tried interactive su, su -c and many other variations- I run it via adb shell). When calling system() without su permission then commands are executed correctly. When programmatically reading files in /system/bin (when my program is run with su) I see all files and everything is accessible.
I have verified that su is installed correctly, I can do all kind of root-only stuff without any problem. My program when executed with su permission is able to enter protected areas of Android.
I have tried to switch context without any luck. There is no interesting logcat output that could point to any permission I could allow with supolicy.
This happens on Samsung S3 i9300, S4 i9505, S5 G900F, Note3 N9005...
Happens both on SELinux enforcing and permisive.
Code:
[email protected]:/ $ su -v
2.45:SUPERSU
[email protected]:/ # id
uid=0(root) gid=0(root) context=u:r:init:s0
Any help and clues are much appreciated.
Thanks,
Piotr.
Turns out that the reason is that fork() is prohibited when executable is not located under /system. When placed binary on /system/bin everything works fine.

Android bootanimation doesn't work (permissions error)

Recently I designed my own android bootanimation.zip file. I'm very proud of it and would like to make it my boot animation (the graphic that shows up when you start up your phone). However, I ran into a complication that I can't seem to solve or find any solutions to online.
Info: I'm running Cyanogen 12 on a Motorola Nexus 6. I placed my bootanimation.zip in the /system/media folder (and /data/local, but that didn't work).
The issue (read carefully please!): I have confirmed that my bootanimation.zip file IS formatted correctly and DOES display properly. When I enter my phone's shell as root I can properly execute the /system/bin/bootanimation command. This command simply previews bootanimation. However, I can't execute the binary as non-root (which I should be able to do). I even went as far as changing the ownership of bootanimation to the shell (non-root account). Basically, I see something like this.
Code:
shell> bootanimation #/system/bin/bootanimation should by in my $PATH
/system/bin/sh: bootanimation: not found
shell> cd /system/bin
shell:/system/bin> ls bootanimation
bootanimation: Permission denied
shell:system/bin> ./bootanimation
/system/bin/sh: ./bootanimation: not found
shell:system/bin> su #log in as root
root> cd /system/bin
root:/system/bin> ls -l bootanimation
-rwxr-xr-x shell shell 34252 2015-11-03 11:07 bootanimation
Finally, the device is clearly unable to execute this on startup because the boot animation is never displayed, instead a silver 'google' is displayed. I tried putting back the original cyanogen bootanimation (as well as other Nexus 6 bootanimations downloaded from xda), but alas to no success. I definitely muffed up something along the way.
I appreciate any input, thanks!

Categories

Resources