[DEV][Q] SU call immediately after boot hangs sometimes - SuperSU

Hi!
First a BIG thank-you for this indispensable application and the amount of good work that you do with and around it!!
I also have a question:
I have developed a widget-based app which checks for root access after being activated (by APPWIDGET_ENABLE or BOOT_COMPLETED).
It issues a really small su call changing the permission of a file (on the main file system, in the app data folder).
There are never any problems when placing the widget, and also on MOST boot-ups.
Sometimes however, this first su call hangs after booting (testing on a Nexus 10).
I suspect a timing problem - is there some setting up going on after boot with SuperSU as well?
Should I add a delay for the root check?

Related

phone crashes when making phone calls

whenever i attempt to make a phone call the dialer screen crashes and gives this error. com.sec.android.app.dialertab. only thing i have done to the phone is root it i installed launcher pro juice defender and setcpu both of which are no uninstalled now. i also did the settings.db mod to allow non market apps and i removed a few of the att bs apps but nothing that has to do with the phone. mostly the ones they want you to pay month fee for.
When I had task panel set to auto kill when the phone slept.....every phone call dropped as soon as I put it up to my face and the screen blacked out. I uninstalled my task killer and it solved my problem. Not the same circumstances that you have but......just a thought.
Unroot your phone or try to obtain an unmolested settings.db.
What ROM you are on...
Chances are high that you deleted something that was required by the dialer. Crashing can occur when a program (in this case, the dialer) relies on another program for pieces of information or to carry out specific tasks on its behalf, and that program is no longer present on the device.
You can test this by running the dialer while having your phone connected by usb with debugging enabled (settings>applications>development>usb debugging). If you have the android SDK installed, go to the platform-tools directory and type 'adb -d logcat'. You should see the system log being dumped to the screen. If you run the dialer and it crashes, the log will reveal why in the stack dump (most likely the dialer fired an intent and there was no application that could handle it - in other words, something that used to be there that the dialer relied on was deleted).
The easiest solution in your case is to either restore the files you deleted, or to simply back up your apps and data with titanium backup, then flash the stock rom or a custom rom and restore your apps.
Also, please keep things like this in the appropriate subforum from now on (Q&A or General).

[FIX] Bulletproof Background Apps!

UPDATE: Try BulletProofing Apps with my latest V6 SuperCharger Script! Use the following link OR use the link in my signature
I didn't want to risk making the SuperCharge & Bulletproof thread too confusing so I figured it best to make a "sister" thread.
This is a work in progress.
But if this information is helpful, please click the thanks button
HUGE thanks to Feeyo and Bear in NM for helping me figure out a workable solution on locking a background app in memory on boot up.
Feeyo gave me the gist of it but it wouldn't work on boot.
After posting in this thread at Droid Forums, things got rolling - with alot of help from Bear in NM.
Create a Unix script file with no extension (I named it 97oom) with Notepad++ and put it in your i/system/etc/init.d/ folder and put this inside:
Code:
#!/system/bin/sh
sleep 60
PPID=$(pidof [B]com.estrongs.android.safer[/B])
echo "-17" > /proc/$PPID/oom_adj
Permissions: chmod 755 /system/etc/init.d/97oom (same as 10overclock)
You can also do it on the phone itself:
1. Make a copy of 10overclock
2. Renamed it to 97oom (I have a 98governor and a 99complete so...)
3. Deleted the text and put the text you see above
4. Set permissions
Then reboot to test!
You can check to see if it worked with either Auto Memory Manager (AMM) or AutoKiller Memory Optimizer (AKMO).
The bold text in the above code is the process name of the app that you want to protect!
Note: You can get the process name from most process monitors or with AKMO or AMM.
That command "as is" will give ES Security Manager the highest priority of -17.
AKMO shows it as being ignored by the OOM killer
At first it wasn't working on boot because ES Security was not yet loaded in memory.
The "sleep 60 "command fixes that by waiting 60 seconds to execute the command
You can also do this in GScript Lite with this:
Code:
PPID=$(pidof com.estrongs.android.safer)
echo "-17" > /proc/$PPID/oom_adj
This comes in handy for apps that don't load on bootup - just run a GScript for those apps
I suggest you get Busybox Installer and have it install the latest BusyBox (v1.19).
This ensures GScript doesn't spit out ugly stderr: messages.
GScript Tip: 1. Make a file (with any text editor) with the commands
................. 2. Rename it with an .sh extension (example 97oom.sh)
................. 3. Put it in sdcard/gscript folder
................. 4. Run GScript, Menu key, Add script, and click Load file, select a script and Save (leave SU checked)
Even better, you can make shortcut for any GScript.
Long press desktop > Shortcuts > GScript Lite > Select... BOOYA!
As I said, this is a work in progress.
Taming the OOM Killer explains that an app will be ignored by the OOM killer if it has the -17 priority.
The problem is that Android will still shuffle it's priority downwards like it does with any inactive app.
If that happens, then the app reverts to it's usual priority.
This is why ESS will lose it's -17 after a couple of hours. It just sleeps ALL the time.
My thinking that if a more active background app, such as an SMS app or a music app is given the -17, it won't lose it's priority at all.
Feedback with results is more than welcome!
No need to set a variable, just use back-ticks:
Code:
echo -17 > /proc/`pidof [B]com.estrongs.android.safer[/B]`/oom_adj
Although that may be a little too complicated for some people to type in. Best to keep it simple I suppose...
That's pretty cool.
I figure most people would copy/paste the whole thing and replace the process name.
So maybe the back ticks wouldn't be a big deal.
That is why I try and avoid putting any code I use on forums. Someone who actually knows what they are doing will always come along and whack me ;^)
Seriously, good work Zep.
Craig
I don't mind.
That's all a part of learning so it's always good that there's somebody around that's "smarter" at something than me.
For example... this script I'm trying to get working for supercharging stock phones...
On custom roms, CM and FroyMod at least, I'd modify /system/etc/rootfs/init.mapphone_umts.rc
I flashed stock telus 2.2 and the path seems to be just /init.mapphone_umts.rc
I don't see rootfs anywhere
But there is a rootfs is mounted
To mount as rw, "mount -o remount,rw /system" doesn't work
In gscript, I'm getting "sed not found" errors too.
grrr...
how well do you think this would work with handcent? it's a little laggy to load up on my phone, but i want to try it out more. will keeping handcent in memory eat up ram that i need otherwise? and do you think it will be active enough to keep it's -17 after a few hours? thanks
edit: i was trying it out, it disappeard from processes withing a few minutes. oh well, maybe it doesnt need to be running anyway
Did you check with AMM to see if handcent had the high priority or if it really got killed?
ya, i checked. it was set to -17, then next time it refreshed it was gone. then i opened handcent, went back, and the process had a different pid, not oom level. oh well
damn
Maybe some apps are too prone to get killed off and the only way to keep them alive is with multitasking friendly minfree values
zeppelinrox said:
damn
Maybe some apps are too prone to get killed off and the only way to keep them alive is with multitasking friendly minfree values
Click to expand...
Click to collapse
Yes, I've seen the same happening with the stock SMS app. I did not receive SMS anymore so I decided to look at it a bit closer (using adb logcat). I started the SMS app, noted down the PID and set the oom_adj value to -17 using adb shell. A few seconds later it was killed. Setting the minfree values back to system default allows me to receive SMS again. Also whatsapp, gtalk and push mail now work reliable. With high minfree values I could see in the logs that, when a message arrived the app is started and immediately killed afterwards. So, I was never notivied that a SMS or whatsapp message had arrived. With default minfree values it seems to work more reliable.
But it all depends on how you use your phone, I guess. I'm using it as my communication central and don't want to miss any message. If you use it more as your mobile gaming or surfing device you might still be better off with high minfree values.
I agree.
That's why I made 6 different profiles.
The multitasking and balanced 2 settings, for example, will leave you with more free ram but are actually more background app friendly than stock google/android values.
zeppelinrox said:
I agree.
That's why I made 6 different profiles.
The multitasking and balanced 2 settings, for example, will leave you with more free ram but are actually more background app friendly than stock google/android values.
Click to expand...
Click to collapse
I see. I did not realize that. It seems I've been reading your post too superficially.
I'll give those settings a try. I've just lost another SMS (this time with the default setting)
If I can't get this under control I might go back to CM6. I understand this is not as memory hungry as CM7 is.
Well, handcent is a giant pain in the ass.
I'm running stock telus froyo and the thing doesn't even stay loaded and I'm not even doing anything.
I run it.
Try and bulletproof it with a gscript (and sometimes handcent is even killed off if I take too long opening gscript lol)
The script won't even change the priority of hancent.
It stays at an 9 or 10 in the content provider grouping.
But the thing is a pig anyway.
20+ mb of ram used up and the app itself is close to 5 mb.
Maybe froyo has a reason to not like it? LOL
very very important and informative post!
thank you!
one question: any idea why "Auto Memory Manager" isn't avialable to
milestone according to market?
I can't install it from market site and wasn't able to find it in market application?
zeppelinrox said:
Create a Unix script file with no extension (I named it 97oom) with Notepad++ and put it in your i/system/etc/init.d/ folder and put this inside:
Code:
#!/system/bin/sh
sleep 60
PPID=$(pidof [B]com.estrongs.android.safer[/B])
echo "-17" > /proc/$PPID/oom_adj
Permissions: chmod 755 /system/etc/init.d/97oom (same as 10overclock)
You can also do it on the phone itself:
1. Make a copy of 10overclock
2. Renamed it to 97oom (I have a 98governor and a 99complete so...)
3. Deleted the text and put the text you see above
4. Set permissions
Click to expand...
Click to collapse
I did it, and after reboot stock sms app (com.android.mms) is killed, I cheched in AKMO, and that fix didn`t help, so I set default minfree values in AKMO (although the previous settings weren`t so strict)
Ok, first off, I am a UK Milestone, running Cyanogenmod 7 RC4. I am trying to raise the oom_adj of COM.ANDROID.MMS and I just used the method zeppelinrox posted instead of the proposed alternative (though I did try that too) and the startup command seems to do nothing. So I decided to try the GScript way and I get this:
Code:
stderr:
stderr:
stderr:
stderr:
stderr:
stderr: cannot create /proc//oom_adj: directory nonexistent
stderr:
stderr:
stderr:
I have never used GScript before and maybe I am doing something wrong here, but I am running it the script as superuser, I have exactly what zeppelinrox has (except a change for the messaging app process name) and I am at a total loss here. Other methods worked fine on my RC3 and keep Messaging as a "Foreground Group" app, but in RC4 it is an "Empty" and that means it will likely get killed a lot. I am using stock minfree values, just using AMM to check oom. I don't want to be missing texts, so any help would be greatly appreciated. Let me know if you need anything else.
You get that "directory nonexistent" error because the app was already killed so there is no PID anymore.
I suggest you get Busybox Installer and have it install the latest BusyBox (v1.19).
This ensures GScript doesn't spit out ugly stderr: messages.
I finally installed CM7 for the first time and RC4 at least does have the option to lock messaging app in memory.
It's sitting in the foreground with a 0 priority
I thought that maybe it was killed already also, but I opened Messaging -> checked System Panel to ensure it was running -> ran the GScript (which failed as noted before) -> and checked System Panel once more and it was still running. Maybe I am crazy here..
I am using the "Lock messaging in memory" but "Messaging" process is still killed by the stock manager, is it still alive in some separate process? It certainly is not 0 priority in Foreground, still sitting in "Empty" at something generally over 4 priority.
I will probably just switch back to the previous build as all was well there, though I would like to be able to keep up with the newest features.
Thank you for the Busybox link, I will try that.
That's strange.
Maybe that setting needs a reboot?
I remember seeing messaging in content provider earlier and then I was actually surprised to see it in the foreground.
I actually checked to see if I still had the 97oom file in the init.d folder but it's not there.
But it should be immediate because if I uncheck Lock messaging in memory, it gets instantly killed.
I run it, check lock messaging again, and AMM shows it in the foreground group again.
Stderrs... now I dunno what's going on with that
GScript was working perfectly in stock Telus rom without stderrs after installing busybox (to get certain commands to work).
But in CM7, after updating busybox, stderrs all over the place.
Now I have to figure this out.. those stderrs are annoying as hell
zeppelinrox said:
You get that "directory nonexistent" error because the app was already killed so there is no PID anymore.
I suggest you get Busybox Installer and have it install the latest BusyBox (v1.19).
This ensures GScript doesn't spit out ugly stderr: messages.
I finally installed CM7 for the first time and RC4 at least does have the option to lock messaging app in memory.
It's sitting in the foreground with a 0 priority
Click to expand...
Click to collapse
What am I missing here? I'm looking at my CM7 Milestone right now with the "lock messaging app in memory" selected. And the messaging app is sitting in "background". Then I set the oom_adj value to -17 and a few minutes later messaging is gone. I'm starting to become desperate.

Default Busybox install directory laggy - faster from /system/bin/?

Something I noticed last night while trying to troubleshoot why AndGuard Pro (w/IPtables) wasn't working properly (losing settings):
It was really laggy when applying settings (compared to my OG Droid). I double checked my Superuser binary and re-ran Stericson's Busybox Installer, but this time I selected /system/bin/ instead of the default /system/xbin/. When I returned to <app> the lag was gone and settings were applied near instantaneous.
I'm not sure why this is, and AndGuard would still lose its settings either immediately on reboot or sometime shortly after -- checking recent comments in the market shows a lot of people complaining that the latest update is causing a lot of problems for a lot of people, so I'm guessing it's something that will need to be addressed by the developer.
It's hard to say, but this may have helped with speed in other apps relying on root. Since AndGuard Pro was so bad, the difference was incredibly obvious.
Maybe this will help someone experiencing lag in other apps...

Wif Nag & Boot Sound

1) Anyone know how to disable the AT&T boot sound. ? I tried the Wanam Xposed pluggin, but it does not seem to work.
2) And wifi-connected nag ... Would love to see that gone !
Any feedback is appreciated. Thanks !
Me too... more the At&t sound....f-ing hate that sound. Low tech is to mute your phone or I was reading about https://play.google.com/store/apps/details?id=com.antweb.silentboot Silent Boot in the play store, but haven't installed it yet.... would like it to be a setting or module. The camera click sound isn't gone either (so annoying).
nicetucu said:
Me too... more the At&t sound....f-ing hate that sound. Low tech is to mute your phone or I was reading about https://play.google.com/store/apps/details?id=com.antweb.silentboot Silent Boot in the play store, but haven't installed it yet.... would like it to be a setting or module. The camera click sound isn't gone either (so annoying).
Click to expand...
Click to collapse
I don't like using apps like silent boot... instead, go to the source of the annoyance.
The boot sound is /system/media/audio/ui/PowerOn.ogg. Don't know what will happen on this phone, but on my LGOG, you could just remove the boot sound file altogether (I renamed mine) and have a nice silent boot. What I would actually do here for safety is make a backup copy of it, then put in its place a new PowerOn.ogg that I created myself that is half a second of silence. Just in case something really doesn't like the file to be missing altogether.
Of course, you have to be root to do this; get a shell (using terminal, adb, run an ssh daemon or whatever), and remount /system read-write before you will be able to write there.
as @jdock said, it is the poweron.ogg file. you can indeed get rid of this file or make your own without any negative effect to your gs5. i made my own and replaced it (need root) and set permissions to what most the other files in that location are.
what i would like to do is change the bootanimation so that it only does the samsung one and the bright white at&t one doesnt pop on. i have found that the samsung and at&t one are all one boot animation. so i'd have to edit the qmg file and take out the at&t pics. still trying to find out how to edit a qmg. the bootsamsungloop.qmg file is the at&t logo only file. i've moved those loop.qmg files out of the media folder but the bootsamsung.qmg STILL plays the at&t animation for some reason. the at&t animation has to be a part of the bootsamsung.qmg.
edit: the bootsamsungmini.qmg is the samsung only animation but the pics are not right. the samsung logo is not stretched out enough.
Thanks all !
jdock said:
I don't like using apps like silent boot... instead, go to the source of the annoyance.
The boot sound is /system/media/audio/ui/PowerOn.ogg. Don't know what will happen on this phone, but on my LGOG, you could just remove the boot sound file altogether (I renamed mine) and have a nice silent boot. What I would actually do here for safety is make a backup copy of it, then put in its place a new PowerOn.ogg that I created myself that is half a second of silence. Just in case something really doesn't like the file to be missing altogether.
Of course, you have to be root to do this; get a shell (using terminal, adb, run an ssh daemon or whatever), and remount /system read-write before you will be able to write there.
Click to expand...
Click to collapse
I was able to turn off the sound by adding ".disabled" to the end of the poweron.ogg.. So mine now reads PowerOn.ogg.disabled
And it works for me
freebee269 said:
as @jdock said, it is the poweron.ogg file. you can indeed get rid of this file or make your own without any negative effect to your gs5. i made my own and replaced it (need root) and set permissions to what most the other files in that location are.
Click to expand...
Click to collapse
SWEET I got The Doctor LOL I used ROM Toolbox Pro to update my boot animation, but it's really tiny.
I should search out an animated Tardis LOL

[Q] Nook HD Cyanogenmod 11 superuser permission lost

This also happened on my N2A card for Nook HD too, just not as sever in the fact that it just disappeared in settings. So, I can use the root permission for apps for a while. Then, I can't tap the button "allow" to allow an app super user permission. (I use it for Avast firewall) But then it all of a sudden disappeared in settings to check any superuser stuff at all. Crazy! Also, similar to above, after a while I can't install apks, mainly after a certain amount of time. It won't let me tap the "install" button, like that part of my screen is unusable when it is. But then it usually get fixed after a while, but my Nook has to be shut down for 10 hours (I kept track because I am desperate). Is this a ROM issue since this also happened on my old N2A card (with cyanogenmod 11)? Thanks for anyone's help.
Sidenote: apparently someone had the same issue as me, concerning the can't install apks part, so maybe you should look at this other thread to understand me better: http://forum.xda-developers.com/showthread.php?t=2325626
Fixed the root permission... had to install superuser app by clockworkmod to update the superuser binary files....but I still have an issue with the apks.

Categories

Resources