Related
(To any visitors to this thread,
Please Rate this thread based on your reading and tweaks that I provided. If the rate is too low, that means I'm doing a bad job in here! If the rate goes down below 4 stars, I'll stop providing these tweaks! So, please excuse me. Please don't rate this thread with the only reason that I do not provide the tweaks for your rom, which you are using! I'm using my own time for this just like lots of other users. Only the thing that makes me more happy and get focused on this would be your rates and 'thanks' on this thread)
** All the information in here is for informational purpose only. I'm getting lots of new requests and great feedbacks but I can't handle everything. Please don't ask me to do anything. If anything is causing a boot loop or force closing in here, I'll drop those contents. But be sure that any other rom users beside of rooted Stock ICS, don't try this and don't ask me to do anything.
Please don't post your battery life in here if it's not from the Stock ICS. This is not a place to show-up or for any competition. This is a place to show-up the battery life before and after the tweaks.
Currently supporting ROMS - Any sfhub's rom, any Calk's Rom, any Agat's rom, VeNuM_ICE_Rom_RL5.0, MIJJz BLEND ICS, AnaKonda Rom ICS, etc....
Now flashable zip files are available at http://forum.xda-developers.com/showthread.php?p=26201865#post26201865
*Note* Please read the second post also for quick install guide, Q/A, progress report, issues and change logs.
Maybe some of you already know that I was working on the tweaks to extend the battery life. In here, all the information is based on my experimental test and its result. Personally I spent lots of time for this stuff and to get the longest battery life. So, if you believe this information is not helpful, please don't blame me and don't even think about trying these tweaks.
But if you want to give it a shot, I would be more than happy to help you to get the better result.
Rule of thumb: Do it with your own risk and don't ask me to buy you a beer because you're doing it. But, if you like this info and/or you see any longer battery life of your phone, please don't hesitate saying 'thank you' and/or consider to buy me a beer.
I'm ok with not leaving any comments and just taking this tweak and recommendation but don't use this info in any other places with 'copy and paste' style.
OK. Now let's get started.
1. Who needs this tweak?
2. What do you need?
3. How to run init.d scripts?
4. what's in init.d scripts?
5. build.prop tweaks
6. Additional tweaks on your phone
7. Startups
8. Closing comments
1. Who needs this tweak?
If you are a heavy user or gamer, this place wouldn't be a right place for you. In here, I'm only focusing on extending battery life and keep it longer without recharging it under our daily usage.
Because it's really hard to save the battery during the screen on (awake status), I'm only focused on the battery savings during the screen is off or sleep (lazy) status. I've seen lots of battery drains during the stand-by mode and I tested lots of things to save the battery during this time frame.
Actually this was my first project working on this phone because I was never able to use my phone more than one day without recharging it before I started this project. In my location, almost everything is not good - so weak radio signal, 3G/4G is not enough to get the fast data speed.
Somehow, wifi is the biggest consumer of battery drain.
Guess what? I had to find out some way to extend my battery life.
I believe the information in here would be very helpful for the person who
keeps phone offline most of time
lives in bad signal area
reasonably think battery life is more important than performance (the performance with this tweak is still good but not best)
do not believe in battery saver apps
wants to experience the best battery life!
2. What do you need?
Most importantly your phone
init.d support (startup scripts during the boot)
Smanager if your kernel does not support init.d or install-recovery.sh
file editor like root explorer
root access, busybox (rooted phone)
init.d scripts and build.prop files (download)
3. How to run init.d script?
I've already posted one thread in here - http://forum.xda-developers.com/showthread.php?t=1610741 (thanks for the people who already left great feedbacks)
From there, you will find out how you can get the init.d script support during the boot and how to test whether it's working or not. If you don't have the Kernel that is not supporting init.d script or install-recovery.sh during the boot, you can also use the SManager tool to run the scripts in here during the boot.
4. what's in init.d scripts?
4.1 cpufreq_governor
21cpufreq_governor script sets the governor that contorls the CPU's thresholds and sampling_rates. I choosed ondemand governor and some values are changed from Calk's original script (big thanks to Calkulin and he provided some init.d scripts on his FD02 tweaked rom).
4.2 cpufreq_screenstate_scaling
31cpufreq_screenstate_scaling script defines the governor values and decides the actions based on the phone's state - conservative, ondeman, lazy, awake, sleep modes. I've changed lots of values from Calk's original script to save more battery power thru this script. As indicated in Calk's original thread for FD02, this script would not run if you have already installed some CPU control apps something like OC Widget, Quick Clock, SETCPU, and Android OC.
For both cpufreq_governor and cpufreq_screenstate_scaling scripts, I had to stay with maximum 1GHz CPU speed and it couldn't go down below 1GHZ because if it goes not below 1GHz, some of the apps could be force closed, frozen, or even you can see the random reboot. Especially, stock camera app and some other camera apps had issues running under 1GHz CPU speed (facebook camera, FX Camera Zoom). If you don't care about the camera apps and want to save more battery, then we can set up maximum CPU speed to 800 MHz and I had no issues with that except the camera apps. With 800 MHz setting, I saw more battery saving and battery life, but I'm not posting that script in here.
4.3 tweaks_kobridge
41tweaks_kobridge script has almost everything in it to improve the network speed, sdcard tweaks, other battery saving tweaks, VM management, Kernel, wifi tweaks, etc. For some of the values in here, there are some overlaps with build.prop tweaks. So, if you do not apply the tweaks to the build.prop file, many tweaks would still work.
4.4 zipalign
zipalign is an archive alignment tool introduced first time with 1.6 Android SDK (software development kit). It optimizes the way an Android application package (APK) is packaged. Doing so enables the Android operating system to interact with the application more efficiently, and hence has the potential to make the application and overall the whole system much faster. Execution time is minimized for zipaligned applications, resulting is lesser amount of RAM consumption when running the APK.
If less number of applications with an unaligned home application, you’d see slower application launch times. This is the best case scenario. For a worst case scenario, having a number of unaligned applications will result in the system repeatedly starting and killing processes, struggling with lags and huge battery drain.
4.5 Wifi Sleep Wait timer
In my original version of this tweak, it was required to manually insert the table row to use this tweak. But it's fixed and now you can use this tweak without manually handling the database.
What this tweak does is, it controls the time until wifi sleeps after the screen turned off. By default, it's 15 minutes. So, even you turned off the screen, by default, phone will wait for 15 minutes and then turn off the wifi. By using this tweak, you will have the control over wifi idle time until wifi sleeps.
5. build.prop tweaks
build.prop file is created while you flash the rom and /system folder will be totally replaced by your new rom. So, don't expect your tweak would be there forever even after you flashed a new rom (Every Rom format the /system partition before it's installed). If you have your own customized tweaks, then make backup those tweaks before you apply the new rom. After flashing new rom, those tweaks won't be there.
The file list needs to be backed up -
/system/etc/init.d folder and it's contents
/system/build.prop
/system/etc/install-recovery.sh (if it's there)
/system/etc/gps.conf (if you have GPS tweak)
Basically build.prop file defines lots of system values related to phone settings and those values are loaded to phone during the boot.
Because build.prop is created by rom, it holds some current rom's build related information. So, if you want to keep this file up to dated, whenever you flash the new rom, take the new build.prop file and compare it with this tweaked file.
Update the current rom's build.prop file based on your comparison -
1. don't update/replace any ro.build.xxxx and ro.product.xxx items
2. for any all other items, replace the lines with the items in tweaked file.
By doing above steps, I believe you've started already getting lots of battery savings. But there're some more critical things that could affect your phone's battery life. The below section is not directly related to init.d and build.prop tweaks but it's important as much as tweaks!
6. Additional tweaks on your phone
I've worked on this part so long time since I've started using ICS ROM. I also tried almost every battery saver apps but didn't get any better result using my own method because sometimes there are lots of overheads using it (I'm trying to avoid describing any individual app's pros and cons in here and just provide you the better way to configure your phone).
Currently I'm on FD26 rooted stock rom/modem/kernel. So, all the information in here is based on this rom but it's not limited to any specific phone or build. You could probably use it in anywhere.
1. Wifi
Some of you understand that wifi is faster than 3G and use less battery than 3G. You also say that 4G is the biggest monster consuming lots of battery. But that would be true and false.
Sometimes, wifi uses lots of battery to get the faster speed and keep the connection.
My suggestion is turning off wifi connection when you are in the area where wifi is not available and keep the 3G turned on. But if you are in the area where the wifi is available and connected, then you don't need to turn off the wifi.
Based on my and JC's test, turning on wifi (if you are connected to wifi), keeping wifi turned on during the standby or sleep mode does not affect the battery life a lot.
2. 3G
Keeping 3G turned on is a good habit. Because it covers wifi and 4G whenever those are not available. 3G uses battery a lot less than wifi and 4G.
Howto keep it on: setting -> more -> mobile networks -> check 3G DATA
3. 4G
Just like wifi, minimize turning on 4G network. This use a lot of battery if you are in the bad reception area. If the signal strength is really good, then it would be probably ok keeping 4G turned on. In some cases, 4G would be the only solution to watch the movies, streaming videos when the wifi is not available.
Based on my limited test, using 4G in good reception area is much better than using wifi with low/weak signal.
4. Call option
Mark checkbox for Turn on proximity sensor for your convenience even there would be a little battery drain. But if you are a heavy talker, then I recommend to uncheck this option.
5. Sound
Lower the sound/vibration level within the acceptable range for you. There would be some differences on battery behavior by turning off or on of sound/vibration. But I don't want to recommend anything in here because I don't want you to lose any incoming calls/messages/etc.
6. Display
Automatic brightness should be fine in most cases. It's really related to screen on time battery consumption. I don't want to deal with this option at this time.
Pulse notification light, display battery percentage - turn it on or off based on your preference. Battery consumption by turning on these options would be minimal. I saw that some people said that they recommend to turning off the 'pulse notification light'. But I don't agree with that. One blinking LED light almost does not use any battery!
display timeout - I set it with highest value provided. After using the phone, I manually press the power button to go to sleep mode. With short timeout value, I have to keep press the button or screen to keep the screen on. I don't like this method.
Turn on 'Auto adjust screen power'.
7. Power saving mode
I always keep this option off because I do not want to lose anything because of low battery. I would rather change the numbers in my tweak (battery profile 2 in scaling tweak).
8. Account and sync
Most of time, I keep this option turned off. This would be one of the battery eating monster. I would rather individually sync the apps whenever I need it or from the actual apps.
9. Battery
when you charge the battery and phone shows that 100% charged, unplug the cable few seconds and plug-in again to charger. Repeat this couple of times and your battery would be really fully charged. Many times, even phone shows 100% charged, it could be the minimum 100% range. Actually, there's some voltage allowed and considered as 100% charge. But by maximizing the voltage during the charge, your battery life could be extended.
10. Motion
Turn off this option if you don't need this.
11. email
If possible, turn off the option that pushing email immediately. Instead, put the retrieval interval as long as you can. Based on my test, it could extend your battery life as maximum as couple of hours. In my case, I put the 2 hours interval. By doing this, your phone is much easier to enter the 'deep sleep' mode.
7. Startups
For me, I don't allow the apps automatically start during the boot as much as possible. If it's the system app and critical app for the phone's normal operation, then you have to allow those startups but otherwise, you can disable the startup apps based on your test.
For this, I usually use Rom Toolbox and/or System Tuner Pro. These apps allow us to enable or disable the startup apps.
For any apps like I don't use frequently or at all, I disable the apps from the 'event' (rom toolbox) or startups (system tuner pro). Once you disable the startups, you may need some test to see what happens when you manually launch the apps. If your app does not start normally, then go back and enable the event again.
There's also one more battery eating moster - widgets (currently doing some experimental test on it)
Regardless of widgets are in foreground screen or just stays in widgets folder, almost same amount of battery could be used by widgets to make it upto dated and refresh the connections, etc.
So, if you don't need the widget or don't use, go to (from Rom Toolbox) Auto Start Manager -> Applications -> select app you want to check -> it will show that widget updating is enabled or not. If it's enabled and you don't want it, just disable it. Then the app is not going to use that specific widget and actually widget will disappear from widgets folder.
8. Closing comments
Thanks for reading my guide and tweaks. I hope everyone of you found some useful information in here.
I'm not perfect just like you. So, there could be some wrong information. If you find anything like that, please let me know.
Again,
Do it with your own risk and don't ask me to buy you a beer because you're doing it. But, if you like this info and/or you see any longer battery life of your phone, please don't hesitate saying 'thank you' and/or consider to buy me a beer.
I'm ok with not leaving any comments and just taking this tweak and recommendation but don't use this info in any other places with 'copy and paste' style.
What's in attachment:
all_in_here.zip First version of tweaks. build.prop is based on FD26.
70wifiSleepWait_kobridge.zip Tweak to handle the wifi lag time before sleep. Wifi will be turned on 10 seconds after the screen turned off. To make this tweak work, you will need sqlite3 and some manual task. Check here http://forum.xda-developers.com/showthread.php?t=1630792
FE07stock_build.prop.zip This is a build.prop file tweaked based on stock kernel FE07. This file would not work on other Roms but stock. You can use this on other stock based kernel but some information about the phone would be incorrectly displayed at settings > About phone. So, use the right version of build.prop. For any other Roms/Kernels, you can just keep your build.prop if you do not find any tweaked build.prop based on your kernel/rom.
init.d.v2b.zip Including CPU tweaks, additional tweaks, and wifi idle (lag) time tweak. Set to max cpu speed to 1Ghz on awake, max 500Mhz during the sleep. Fast and lots of power savings during the sleep mode.
init.dv2b2.zip Same as init.d.v2b scripts except some more CPU tweak changes. Same Max awake and sleep speed. Targeting more power save but no result yet. Experimental tweaks (you may experience a little slowness of phone with these tweaks).
Tweaked-FE10-build.prop.zip This is a tweaked Stock FE10 build.prop. This file would not work on other Roms but stock. Directly under /system folder and permission set to 644. Other init.d tweaks don't need to be changed.
zipalign.zip Two files included. zipalign goes to /system/xbin, permission 755, move the file if it's not there. 11zipalign goes to /system/etc/init.d. permission 755. If there is any apk files those are not zip aligned, this tweak will automatically align the apk files for better performance and battery savings.
zipalign.v3.1.zip 11zipalign modified a little to confirm the temporary APK file removal. If temporary APK is not deleted, it will be shown in log file and Temporary APK will be removed during the next boot.
init.d.v2.4.zip Complete set of init.d scripts. 41tweaks_other tweak changed a lot based on sysctl and fixed one error. 21&31cpufreq tweaks were also changed more aggressively. 11 & 70 are same. In the zip file, included sqlite3, busybox, zipalign executables in case you don't have it.
70wifiSleepWait_kobridge.v2.zip Check the section 4.5 from OP. Now this tweak works without any manual database handling.
Quick guide about how to install these tweaks :
Because many people asked me how to run these tweaks, I spent sometime to give you the quick instruction. To follow this instruction, you will need the following files downloaded and available at your sdcard.
Pre-requisite:
1. init.d scripts (able to download from op section). Download the zip file and unzip it. Save the files into your sdcard.
2. build.prop file (able to download from op section).
3. sqlite3 executable (just in case you want to use the tweak that updating wifi idle time before sleep). where to download and how to use it is here - http://forum.xda-developers.com/showthread.php?t=1630792
4. Get the install-recovery.sh from here if you are on the stock kernel (not repacked) - http://forum.xda-developers.com/showthread.php?t=1610741
If you have sfhub's auto root tool, then run the option 'E' to install the init.d support installed on your phone. Actually his tool will install the install-recovery.sh. (I assume that you've already have busybox installed, otherwise, you can download it too from above link)
Backup:
Do the backup for the following files -
1. /system/etc/init.d files - if there's any existing init.d scripts then back it up.
2. /system/build.prop - backup this file also for just in case
Now you are ready to start, follow these steps:
1. copy downloaded init.d script into /system/etc/init.d folder. If the init.d folder is not there, create the folder 'init.d' under /system/etc. Be sure that init.d folder permission should be 'rwxr_xr_x' (755). For the copied init.d scripts, check the permissions and changed it to same 755 (if it's not like that). If there's any script that you don't want to run during the boot, then change the permission to 'rw_r__r__' (644).
2. copy the install-recovery.sh file to /system/etc folder (only if you are on stock kernel or you've never installed sfhub's auto root tool (option 'E'). Change the permission to 'r_xr_x___' (550).
3. copy build.prop file to /system folder. Change the permission to 'rw_r__r__' (644).
4. Additional steps if you don't have sqlite3 or busybox.
copy the files to /system/xbin folder. permission 755.
5. You are done now. Reboot the phone.
How to verify that the script is running - the easiest way would be checking the Maximum CPU speed and SD tweaks applied to your phone. If you have any tool like Rom Toolbox (Pro) or System Tuner (Pro), then goto the options that showing CPU or SDcard (SD Boost), it will show the different values if you did not applied the tweaks previously.
Hope this help!
[Q/A]
On which Rom/Kernel this tweak is going to work?
The tweaks in here is mainly for the stock based ICS roms/Kernels only.
Any sfhub's rom, any Calk's Rom, any Agat's rom, VeNuM_ICE_Rom_RL5.0, MIJJz BLEND ICS, AnaKonda Rom ICS, etc....
init.d tweak files can be used for some other roms but it's not tested from my side. build.prop tweak is also mainly for stock roms and based on specific kernel version. If the kernel is upgraded, then you will need a different build.prop.
Can I try it on different rom and kernel?
Before applying the tweaks, make sure that you have the nandroid backup first and try it. If the phone is stuck on boot screen, you may need to flash your rom again thru the odin or CWM recovery.
(usually incorrect edit on build.prop file could cause a freezing on boot screen. So be sure that you know how to edit build.prop)
Does build.prop support different ROMs except the stock?
Basically, my answer is no. To make the build.prop working on different ROM, it needs to be modified based on your rom and kernel. Currently I have a few versions supporting stock rom and kernel - check the progress report and change log for any updates. For any other Roms, please check the same area also.
Progress report:
4/29/12 10:50 pm US EST I'm adding three more screenshots.
screenshot#4 : Lasting More than 21 hours and battery still left 52%
#5: showing screen-on statistics. In here, on battery time was reset somehow. But actual time is 21+ hours (same on screenshot #4,5,6)
#6: It shows which apps were running during the sleep mode and screen was off. If you wonder which apps are running when the phone is on sleep/deep sleep mode, you can check the apps thru this kind of tool (battery monitor widget). If you want to save more battery, you can change the options from each apps if it provides a such kind of options.
4/30/12 My first full battery cycle test was ended up with about 40 hours until battery capacity reaches to 30%. During my test, I found some apps were still running during the sleep mode and those were using lots of battery. In my case, some of those apps were touchdown (email), Kakao talk (sns), and facebook apps. In many cases, we are not able to control the method how the application run in foreground and background. Some apps provides us how to sync and when to sync but there are still lots of chances for those apps for the improvement at least in the perspective of battery consumption.
5/1/12 The second version tweak is coming soon -> done.
5/2/12 WiFi issue resolved. http://forum.xda-developers.com/showthread.php?t=1630792 and added one more tweak file. Before applying this file, read the attached thread first. You won't be disappointed.
5/4/12 Tested battery consumption with wifi turned on 24x7 (like JC's snapshot somewhere in this thread). Not bad at all. #7 snapshot shows that. About 19 hours and still 63% remaining (with on screen 30m, voice call 2m, lots of snapshots, lots of emails (100+), some SNS). Added snapshots #8 & 9.
5/5/12 Big Thanks to TeamERA and team member who converted build.prop for each Kernels. TeamERA provided build.prop files based on different Kernels(Roms). Check out the post #88.
Supported Kernel: AOKP CM9a3 (tested) CNA FD26 MIUI. For FD26, I've checked the items and values on it. There's some items sequence change made comparing build.prop in here and minor values changes - post #94.
So anyone who had issues on boot screen with build.prop that I posted, now you can try build.prop tweak based on your current rom.
5/6/12 GB Kernel Test - Blazer 4.1 EL29 - Not able to change the CPU frequencies and frequency change is causing phone freezing during the sleep & wakeup. No way to change this by init.d script so far. Only the way would be using Tegrak or System Tuner Pro tools. I tried System Tuner Pro and set the conservative governor (underclock to 1GHz) as on boot instead of init.d option. Working like a charm and no freezing yet.
Update: since applied, 19 hours and 70% of battery remaining. For more info, post your questions. Related post: http://forum.xda-developers.com/showthread.php?t=1625299&page=11 post #107.
5/8/12 Added FE07 Stock based tweaked build.prop. Only for Stock FE07 based Kennels.
5/9/12 Two more zip files added. init.d.v2b - moderate CPU tweaks. init.dv2b2 - agressive CPU tweaks (could save more battery).
5/10/12 Added AOKP FE07 version of build.prop at post #156.
http://forum.xda-developers.com/showpost.php?p=25907510&postcount=156
5/14/12 zipalign tweak added
5/16/12 wifiSleepWait tweak improved. Check the section 4.5 from OP. Now this tweak works without any manual database handling.
5/17/12 Now supporting flashable zip files. You may get customized flashable zip files based on your rom. Check out - http://forum.xda-developers.com/showthread.php?t=1658471
Issue Log:
5/1/12 a. It seems like changing the Wi-Fi option to 'Never' and pm.sleep_mode to 1 does not work. My previous test based on the 3G turned on always and minimized turning on wifi. Now I'm testing wi-fi options but status shows that wifi is turned on always. Checking more details... Checked with wifi fixer but wifi still does not sleep. Started removing anything related wifi, but no luck yet. Spending several hours but no luck. Going to test on fresh installed stock rom/kernel.
Status: Resolved. http://forum.xda-developers.com/showthread.php?t=1630792
b. AOKP Rom users or custom Kernel users - Do not sue these tweaks. Basically I cannot help any issues on AOKP because I'm not a user of AOKP. So far, it's known that 31tweak file is causing a boot loop on Samsung logo screen.
Change log:
4/29/12 41tweaks_kobridge tweak updated. changed value setprop pm.sleep_mode to sync with build.prop.
4/30/12 lcd_density value changed back to default 240. It's my mistake uploading the file based on my configuration and forgot to change it back to default. Thanks to TeamERA for findings. If anything else found, more updates will be added to build.prop.
Thanks again to TeamERA. He found another one - "In your kobridgetweaks script you have ring delay at 1000, and in build.prop 0, it should be 0". Updated attached zip file.
5/2/12 New wifi idle tweak init.d file attached (only for the update of existing table)
5/4/12 Added 11 email section.
5/6/12 Wrong link in wifi section corrected.
5/8/12 Build.prop created based on FE07. Rearranged tweaked items based on Stock sequence. Removed duplicates.
5/9/12 uploaded updated init.d scripts. CPU tweaks changed to deal with only ondemand governor. Fixed few errors on 41tweaks. Currently it's a beta version because very few times, I saw that wifi was not automatically reconnected after the sleep. I confirmed that it's the stock rom issue and it's not coming from the tweaks in here.
5/14/12 zipalign tweak updated to confirm the removal of temporary APK files.
5/15/12 Improvement on 41Tweaks_other tweak file (more tweaks based on sysctl). Fixed on error from previous file. 21&31 CPU tweak files were changed more aggressively.
5/16/12 70wifiSleepWait_kobridge version2 tweak uploaded.
I am basically running everything exactly as you mentioned with one exception... the wifi while I am asleep. I generally lose between 2 and 5% over eight hours but I am right next to the router. I never thought to try turning it off and letting the 3g sleep take care of things but I will definitely give it a shot since we are basically on the same page with sync, screen time out, etc. I do also have auto brightness off and slide across status bar to adjust but that wouldn't make an enormous difference. Also inverted apps really seem to get me on average an extra hour or so of screen on time. Very thorough info. I need to consider running my CPU at 1000 Max as well
Edit..all FD26 setup with init.d added by sfhub's auroroot option E
Sent from my SPH-D710 using Xparent Blue Tapatalk 2
JohnCorleone said:
I am basically running everything exactly as you mentioned with one exception... the wifi while I am asleep. I generally lose between 2 and 5% over eight hours but I am right next to the router. I never thought to try turning it off and letting the 3g sleep take care of things but I will definitely give it a shot since we are basically on the same page with sync, screen time out, etc. I do also have auto brightness off and slide across status bar to adjust but that wouldn't make an enormous difference. Also inverted apps really seem to get me on average an extra hour or so of screen on time. Very thorough info. I need to consider running my CPU at 1000 Max as well
Edit..all FD26 setup with init.d added by sfhub's auroroot option E
Sent from my SPH-D710 using Xparent Blue Tapatalk 2
Click to expand...
Click to collapse
Thanks John for the input! The easiest way to adding init.d support is adding his script (recovery-install.sh) into /system/etc folder with permission 550. recovery-install.sh is available thru my linked thread (just in case you don't have it).
Again thanks for trying and let me know your findings!
BTW the script is install-recovery.sh (not recovery-install.sh) I think you had it right in some sections but reversed it in others.
Also since we last discussed I made some improvements to the script. It is now compatible with other apps which like to use install-recovery.sh to get their stuff done like link2sd. The installer in Auto Root will move the existing install-recovery.sh to install-recovery-orig.sh and the install-recovery.sh (init.d version) will call install-recovery-orig.sh (if present) after it is done. The uninstaller will reverse the process.
Also install-recovery.sh will now defer to init.d support in the kernel regardless of which .rc file it was added to in the kernel. Previously it only looked in init.rc but I saw some repacked kernels were adding support in different .rc files (they also removed install-recovery.sh support from their .rc file, so it might be a moot point because install-recovery.sh might never get called)
Thanks kobridge. I think this script is just what I've been looking for and I'm going to give it a run.
sfhub, somewhat off topic, but continuing with kobridge's related thread, How to run init.d scripts on boot, how come chmod 755 is not expressed rwx-rx-rx instead of -rwxr-xr-x? Seems more logical to me.
sfhub said:
BTW the script is install-recovery.sh (not recovery-install.sh) I think you had it right in some sections but reversed it in others.
Also since we last discussed I made some improvements to the script. It is now compatible with other apps which like to use install-recovery.sh to get their stuff done like link2sd. The installer in Auto Root will move the existing install-recovery.sh to install-recovery-orig.sh and the install-recovery.sh (init.d version) will call install-recovery-orig.sh (if present) after it is done. The uninstaller will reverse the process.
Also install-recovery.sh will now defer to init.d support in the kernel regardless of which .rc file it was added to in the kernel. Previously it only looked in init.rc but I saw some repacked kernels were adding support in different .rc files (they also removed install-recovery.sh support from their .rc file, so it might be a moot point because install-recovery.sh might never get called)
Click to expand...
Click to collapse
Thanks so much sfhub!
It seems like I stayed too many nights awake. I corrected one place saying recovery-install.sh to install-recovery.sh.
Now I'm downloading your auto root package again and let me also correct the information accordingly.
RustedRoot said:
Thanks kobridge. I think this script is just what I've been looking for and I'm going to give it a run.
sfhub, somewhat off topic, but continuing with kobridge's related thread, How to run init.d scripts on boot, how come chmod 755 is not expressed rwx-rx-rx instead of -rwxr-xr-x? Seems more logical to me.
Click to expand...
Click to collapse
It's always rwxrwxrwx order.
rwx (read write execute) -> 4 + 2 + 1 -> 7
rw_ -> 4 + 2 + 0 -> 6
r_x -> 4 + 0 + 1 -> 5
r__ -> 4 + 0 + 0 -> 4
the second bit is always for w (write) permission. So, the order -rx is not possible.
Some basic binary calculation and permission related info:
The permission is consist of 9 bits for user, group, and other (each user group holds 3 bits).
With binary expression, it would be same
111 (user) 111 (group) 111 (other)
For first bit represent the read permision and the second is for write, third one is for execute.
so 755 equals in binary expression 111 101 101 (= rwxr_xr_x)
Thanks for the info kobridge, I still have not figured out why wifi causes a partial wake lock on ICS. But it plays much better with GB. Ive tested this also.
Sent from my SPH-D710 using xda premium
So these can be applied to gingerbread right?
Sent from my SPH-D710 using Tapatalk 2
Can we use this on aokp?
Transmission sent from my slim n trim Galaxy S II.
kobridge said:
It's always rwxrwxrwx order.
rwx (read write execute) -> 4 + 2 + 1 -> 7
rw_ -> 4 + 2 + 0 -> 6
r_x -> 4 + 0 + 1 -> 5
r__ -> 4 + 0 + 0 -> 4
the second bit is always for w (write) permission. So, the order -rx is not possible.
Some basic binary calculation and permission related info:
The permission is consist of 9 bits for user, group, and other (each user group holds 3 bits).
With binary expression, it would be same
111 (user) 111 (group) 111 (other)
For first bit represent the read permision and the second is for write, third one is for execute.
so 755 equals in binary expression 111 101 101 (= rwxr_xr_x)
Click to expand...
Click to collapse
Gotcha, with thanks.
Sent from my SPH-D710 using XDA
Pheno.menon said:
Can we use this on aokp?
Transmission sent from my slim n trim Galaxy S II.
Click to expand...
Click to collapse
It's not been tested on aokp. If the kernel is same, then there are high chances that this tweak would run. But, all the paths on this tweak needs to be verified and tested.
If someone want to run this from AOKP, please try it with scripting tool like SManager first before putting it into init.d folder.
Unfortunately, I don't use AOKP rom yet. Only the way, I can do the test would be downloading the rom and verifying the zip file manually. But if the kernel is different, then I couldn't do that because I don't know the command difference on AOKP rom.
TeamERA said:
Thanks for the info kobridge, I still have not figured out why wifi causes a partial wake lock on ICS. But it plays much better with GB. Ive tested this also.
Sent from my SPH-D710 using xda premium
Click to expand...
Click to collapse
To properly answer your question, we may need the kernel source to check the mechanism.
There are couple of options locking wifi (I think you already know about this, right?)
Sleep Modes: (pm.sleep_mode=)
This is supposedly for topaz/rhodium that I found on the xda wiki:
* '4' will do "wait for interrupt", no change in arm11's clock or voltage
* '3' will do "wait for interrupt and ramp clock", the arm11's clock is lowered to 20MHz instead of 300-500, and voltage is lowered too.
* '2' will do "app sleep", arm11 is still on, but put into low power mode (registers are still saved)
* '1' and '0' will totally power off the arm11 (so we have to restore registers and things ourself), don't know the differences between them
pm.sleep_mode=0 -> Power Collapse Suspend
pm.sleep_mode=1 -> Power Collapse (Provides best power savings)
pm.sleep_mode=2 -> Apps Sleep
pm.sleep_mode=3 -> Slow Clock and Wait for Interrupt
pm.sleep_mode=4 -> Wait for Interrupt
(http://forum.xda-developers.com/showpost.php?p=17680020&postcount=9)
The similar function is also provided by settings > wifi > menu > advanced > Keep wi-fi on during sleep options. There are three options, Always, Only when plugged in, and never.
If you set up above values in somewhere, partial wake up lock would be dependent on the values you've chosen. Aslo, if there is any application which is configured to use wifi for communication, you may also need to check the application if it's causing partial wakeup lock.
It seems like there's something needs to be tested from your side.
FYI, I set the pm.sleep_mode value to 1 in my tweak and build.prop.
Update: I just added some more screenshots on post #2. Check out screenshot #6 and comments on that.
sfhub said:
BTW the script is install-recovery.sh (not recovery-install.sh) I think you had it right in some sections but reversed it in others.
Also since we last discussed I made some improvements to the script. It is now compatible with other apps which like to use install-recovery.sh to get their stuff done like link2sd. The installer in Auto Root will move the existing install-recovery.sh to install-recovery-orig.sh and the install-recovery.sh (init.d version) will call install-recovery-orig.sh (if present) after it is done. The uninstaller will reverse the process.
Also install-recovery.sh will now defer to init.d support in the kernel regardless of which .rc file it was added to in the kernel. Previously it only looked in init.rc but I saw some repacked kernels were adding support in different .rc files (they also removed install-recovery.sh support from their .rc file, so it might be a moot point because install-recovery.sh might never get called)
Click to expand...
Click to collapse
Updated my thread based on your information! http://forum.xda-developers.com/showthread.php?p=25120392#post25120392
Thanks sfhub!
Updated info :
4/29/12 sfhub improved his auto root tool to support some other kernels, those are enabling init.d through different .xc files.
Stock kernels and some repacked kernels are supporting init.d scripts through init.xc and/or install-recovery.sh but some other repacked kernels are supporting init.d scripts running through different .xc files. So, sfhub made some modification on his script. Because he's adding a new install-recovery.sh file into /system/etc folder, if there's a existing install-recovery.sh file at the same location, the existing install-recovery.sh file will be replaced by his previous version of Auto Root Tool. To prevent the replacing existing install-recovery.sh file with his same named install-recovery.sh file which supports the init.d scripts, his tool now creates a copy of old file and create a new one. Old install-recovery.sh file will be named as install-recovery-orig.sh.
If you are enabling the init.d support by running his tool, be sure that the existing install-recovery.sh file was not created by his old Auto root tool nor you manually created it following this guide. If the file is the one you created by sfhub's tool or my guide in here, be sure that you remove the old file manually before you run his new Auto Root Tool. Otherwise, the init.d scripts would run twice whenever you reboot your phone.
If you just want to simply enable init.d support without using sfhub's tool, then download the new-install-recovery.zip file from my second post and unzip it. Like I explained above, if there's any existing install-recovery.sh file and it's not related to init.d support, then rename it to install-recovery-orig.sh and move the unzipped file to same directory (/system/etc). Assign the file permission 550 (r_xr_x___). New install-recovry.sh file will execute the init.d scripts (if it's there) and old install-recovery-orig.sh (if it's there) during the boot.
kobridge said:
If you are enabling the init.d support by running his tool, be sure that the existing install-recovery.sh file was not created by his old Auto root tool nor you manually created it following this guide. If the file is the one you created by sfhub's tool or my guide in here, be sure that you remove the old file manually before you run his new Auto Root Tool. Otherwise, the init.d scripts would run twice whenever you reboot your phone.
Click to expand...
Click to collapse
BTW the installer in Auto Root checks to see if the existing install-recovery.sh is the one that adds init.d support. If it is, it just overwrites it. Only if the existing install-recovery.sh has nothing to do with init.d support does it move it to install-recovery-orig.sh. The way it detects whether the existing install-recovery.sh is used for init.d support is the presence of the BusyboxBin string, which is the shell variable used to define the busybox location used by the script. The chances some arbitrary install-recovery.sh script defines that string is very low (but not zero)
So bottom line if Auto Root is working properly, it shouldn't be necessary to remove your existing init.d install-recovery.sh script as it will not cause a situation where init.d is run twice.
Also I forgot to mention that some people wanted to run init.d but didn't have busybox installed. I didn't want to clobber busybox for people that have installed it, so basically just had the init.d install-recovery.sh use /system/xbin/busybox-initd (which gets copied into place by the auto root installer) This makes it easier (more symmetrical) to remove init.d support and associated busybox-initd without worrying about who installed busybox to start with.
For the "new-install-recovery.zip" you should do a symlink from busybox-initd to busybox
Code:
su
cd /system/xbin
ln -s busybox busybox-initd
kobridge said:
It's not been tested on aokp. If the kernel is same, then there are high chances that this tweak would run. But, all the paths on this tweak needs to be verified and tested.
If someone want to run this from AOKP, please try it with scripting tool like SManager first before putting it into init.d folder.
Unfortunately, I don't use AOKP rom yet. Only the way, I can do the test would be downloading the rom and verifying the zip file manually. But if the kernel is different, then I couldn't do that because I don't know the command difference on AOKP rom.
Click to expand...
Click to collapse
didn't work for me. had to Odin a kernel and reflash. not sure which script as I tried all from the OP. tomorrow I can figure it out which.
anyway to delete init.d scripts via Odin if it fails to boot? I end up odining el26, wiping, and reflashing. :/
EDIT:
oops. I used the sh script.
want me to post the included fd26 aosp kernel from aokp?
gershee said:
didn't work for me. had to Odin a kernel and reflash. not sure which script as I tried all from the OP. tomorrow I can figure it out which.
anyway to delete init.d scripts via Odin if it fails to boot? I end up odining el26, wiping, and reflashing. :/
EDIT:
oops. I used the sh script.
want me to post the included fd26 aosp kernel from aokp?
Click to expand...
Click to collapse
Do you think aosp kernel works on stock rom? If it is, then I think I can make some test.
If init.d fails on boot, and boot screen is stuck on Samsung logo, then we would flash the rom again. Flashing kernel would not help because it does not delete the system partition. Once after the rom is flashed, do the nandroid recovery that you made before the init.d test.
kobridge said:
snip
Click to expand...
Click to collapse
Just curious if you are experiencing any Sleep of Death using the CPU screenstate settings you have, specifically enabling a powersave as the sleep governor with a cpu freq range of 200-500. A very common issue on the ICS builds so far is setting the max freq below 1ghz can cause Sleep of Death where the device will not wake from sleep and must be rebooted.
odub303 said:
Just curious if you are experiencing any Sleep of Death using the CPU screenstate settings you have, specifically enabling a powersave as the sleep governor with a cpu freq range of 200-500. A very common issue on the ICS builds so far is setting the max freq below 1ghz can cause Sleep of Death where the device will not wake from sleep and must be rebooted.
Click to expand...
Click to collapse
And I was curious if the undervolt or underclock have triggered any 4g reboots for you. A few of my friends were getting them on earlier ICS ROM and I had them delete the undervolt script and they stopped. Some people's phones just handle that stuff better than others though
Sent from my Nexus S 4G using Xparent Blue Tapatalk 2
Hello guys,
Just thought i'd share the source code with you and a tutorial on how to modify it to work with a rom with a modified ondemand governor by default. Or if you wanna change the values altogether you will be able to do so.
Also if any other devs wanna modify it to look better or anything feel free, we are a community
Right first off your gonna need
Eclipse properly set up to work with android and OpenSense SDK (i will not go through how to do this, google is your friend for that)
The Source Code provided in this post
An APK signer
Patience because if your not experienced this could take a while
Tutorial:
First off extract the .zip somewhere on your pc
Then your gonna want to open Eclipse, go to File/New/Project.
From there expand the android folder and select "Android Project From Existing Code"
Click Here For ScreenShot
On the next screen where it says "Root Directory", point it to where you extracted the source folder to.
If you have done it correctly your screen should look like this:
Click Here For ScreenShot
Click finish and the project will be open.
From there, at the top left you will see a section saying "Package Explorer".
Underneath you will see "com.ondemand.gaming.boost.OnDemandGamingBoostActivity".
Click the arrow to open it up.
Once opened you will see a lot more options, the one we need to worry about is"src", so go ahead and open that one up.
You will see another 2 options, go ahead and open up "com.ondemand.gaming.boost".
From there you will see "OnDemandGamingBoostActivity.java", double click that and it will open in the main window.
Click Here For ScreenShot
Right the bit we are after is about halfway down, so just scroll down till you find this section of code.
Click Here For ScreenShot
From here you will see that this is where all the commands get executed.
"ShellInterface.runCommand" basically tells the app to run a command.
The top half is the values to revert back to when you disable gaming boost, this is shown by the "preference.setSummary("Gaming Boost Disabled");" at the end of the commands. (Most likely this is just the section you will be editing, but the same would apply if you was changing the optimized values)
From here its pretty much self explanatory, you edit the values to whatever you want them to revert back to after you disable gaming boost.
Make sure you edit all the values, some commands appear twice so make your you edit every instance of the value you see, a good way to check is to search for the old value when you think you have finished to see if you have missed it anywhere.
Please Note: They have to match whatever your ROM Dev uses in his ramdisk, contact him if you dont know what they are or check/modify his ramdisk yourself.
The last thing you need to edit is the file the app checks for before allowing the changes.
Above all the commands you will see "String ODGBState = SubActivities.readFile(ODGB_File + "/up_threshold", true);"
This basically means the app will check the value of "up_threshold" and if the value in the app doesn't match the value in the ramdisk the app won't work.
This is where things may get a little confusing.
The value for the checkfile for when the app is disabled is actually found in the second block of commands, where the optimized values are.
Just above the commands you will see "int iDisabled = 85;"
The "85" is the value of the up_threshold you have just modified in the previous steps, so change that to match what you tweaked it to.
Exporting the APK.
Once you have done all the editing you want to export the apk for use.
On the left hand side pane, the 3rd from the bottom in list you will see "AndroidMnifest.xml". Double Click it.
In the main windows about three quarters of the way down you will see the "exporting" tab. Click on "export an unsigned apk"
Choose a name and where you want to save the app and click save.
A pop up will come up when its saved.
From there all you need to do is sign the APK and push it to system/app, or include it in your ROM ZIP.
This may not be a 100% perfect tutorial but its worked for me, i'm still learning.
If anyone see's any errors please point them out.
Thank you.
SOURCE CODE
hellow friends. today i tried to change my device's name+ model number by following this process : http://www.**********.com/change-android-device-model-name-on-marshmallow-and-nougat/. after that, terminal emulator from my device shows exatcly the same name that i modified just a moment ago, but after restarting my device, i can see that my device's name and model number hasn't changed at all. and cpuz and uc browser facebook browsing is still detecting my device's stock name and model number. how can i perfectly change my device name? i m using viper one m9 rom 4.3.0 .... thanks in advance
From /system/build.prop
But be careful, editing this file incorrectly will put your phone in a bootloop.
lucyr03 said:
From /system/build.prop
But be careful, editing this file incorrectly will put your phone in a bootloop.
Click to expand...
Click to collapse
i did that. but after restarting my device, CPUz app and my built-in "about" isn't showing that custom name and model ! btw, there is a build.prop.bak file also located at >system directory . one more help, i often use UC browser on my device and browse facebook through this. . so, when i am logged in my fb account on uc browser and scroll to the bottom at fb page, an yellowish quote says that "install facebook and browse faster on your m9" ! how to disable this? or how to change the model name of my device here ? thanks in advance !
The build.prop.bak is a backup file of the original build.prop
Look carefully in build.prop because are more than one lines containing "HTC One M9" and only one of them change the model, you can change them all anyway.
You need s-off to have the changes stick after a reboot or it will reset every time.
shivadow said:
You need s-off to have the changes stick after a reboot or it will reset every time.
Click to expand...
Click to collapse
That's only on the stock kernel, viper uses stock kernel with write protection disabled.
lucyr03 said:
That's only on the stock kernel, viper uses stock kernel with write protection disabled.
Click to expand...
Click to collapse
Yes, which allows you to change stuff on system. It still won't stick after a reboot if you're s-on. You cannot bypass s-on. You can only s-off.
shivadow said:
Yes, which allows you to change stuff on system. It still won't stick after a reboot if you're s-on. You cannot bypass s-on. You can only s-off.
Click to expand...
Click to collapse
Sorry but you're wrong, if you have kernel with system write protection removed you can change everything in system partition and the changes remains after reboot.
If you have stock kernel with protection enable you can also change files in system partition but they revert after reboot.
lucyr03 said:
Sorry but you're wrong, if you have kernel with system write protection removed you can change everything in system partition and the changes remains after reboot.
If you have stock kernel with protection enable you can also change files in system partition but they revert after reboot.
Click to expand...
Click to collapse
Correction. Although you are correct in the fact the changes do stick after reboot, the kernel is not stock. It is customised to use init.d.
Thanks for letting me know tho, very useful info!.
I found a permanent fix for the Bluetooth battery drain bug on stock 7.1, the last n108 release.
Root is required for this fix.
First, go to developer settings and enable Bluetooth hci Snoop log. Reboot. Then disable the Bluetooth hci log. Reboot.
Next, using a root file explorer (I used ES file explorer), navigate to /system/etc/Bluetooth/
Open bt_stack.conf
Near the top is "BtSnoopConfigFromFile=false"
Change it to true, then make sure the following two lines are set to false.
BtSnoopLogOutput=false
BtSnoopExtDump=false
Save the file and reboot.
After some browsing on the nextbit forums, someone had identified that the Bluetooth Snoop hci log was being written to the root directory of /sdcard/, causing significant battery drain. Their solution was to toggle the Bluetooth log on in developer settings, reboot, turn it off, then reboot again. It would always turn itself back on though. This prevents that.
(Bluetooth hci log is a file where android literally records all Bluetooth traffic information, which as you might imagine is CPU and I/o intensive. Normally used by devs for troubleshooting).
I decided to go back to stock due to constant bugs and freezes with the lineage 14.1 builds. Battery life has even been a little better on stock, with rock solid stability.
This prevents the battery drain aspect, but the battery settings still has a reporting error that attributes much more drain to Bluetooth than it should. I'm still getting 3-4hrs screen on time with lots of Bluetooth use after this fix. Better battery stats will provide accurate drain stats.
This is excellent information - thanks for posting - however, I get stuck when trying to save the proposed changes to bt_stack.conf; the file is read-only and I cannot figure out how to change it to allow me to save the changes. How did you do that on the stock ROM?
Bleser said:
This is excellent information - thanks for posting - however, I get stuck when trying to save the proposed changes to bt_stack.conf; the file is read-only and I cannot figure out how to change it to allow me to save the changes. How did you do that on the stock ROM?
Click to expand...
Click to collapse
Is your phone rooted? I used ES File explorer with "root mode" enabled. You can only make changes to the file with a root elevated program. There is also solid file explorer and root file explorer as other options that may work. I should have mentioned root is required.
I believe ES file explorer changes the permission automatically when in root mode, to allow changes. Other apps may require manually changing the permissions of the BT config file.
I did also run 'hide magisk manager" in the magisk settings.
boxes said:
Is your phone rooted? I used ES File explorer with "root mode" enabled. You can only make changes to the file with a root elevated program. There is also solid file explorer and root file explorer as other options that may work. I should have mentioned root is required.
I believe ES file explorer changes the permission automatically when in root mode, to allow changes. Other apps may require manually changing the permissions of the BT config file.
Click to expand...
Click to collapse
Hi @boxes,
No, it is not rooted. I will try ES File explorer. Thanks!
Bleser said:
Hi @boxes,
No, it is not rooted. I will try ES File explorer. Thanks!
Click to expand...
Click to collapse
You will need to be rooted to do this. If you root with magisk, then you can still pass the safetynet check.
Rooting the robin is very easy luckily.
Follow these steps to unlock the bootloader and flash TWRP.
https://forum.xda-developers.com/nextbit-robin/general/guide-install-twrp-root-robin-t3334171
(Use this TWRP rather than the one on that thread-)
https://forum.xda-developers.com/ne...recovery-twrp-3-0-0-0-touch-recovery-t3334152
Then download magisk from here-
https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445
Also download the magisk manager APK. Flash magisk from TWRP then install magisk manger in android.
boxes said:
Is your phone rooted? I used ES File explorer with "root mode" enabled. You can only make changes to the file with a root elevated program. There is also solid file explorer and root file explorer as other options that may work. I should have mentioned root is required.
I believe ES file explorer changes the permission automatically when in root mode, to allow changes. Other apps may require manually changing the permissions of the BT config file.
Click to expand...
Click to collapse
boxes said:
You will need to be rooted to do this. If you root with magisk, then you can still pass the safetynet check.
Rooting the robin is very easy luckily.
Follow these steps to unlock the bootloader and flash TWRP.
https://forum.xda-developers.com/nextbit-robin/general/guide-install-twrp-root-robin-t3334171
(Use this TWRP rather than the one on that thread-)
https://forum.xda-developers.com/ne...recovery-twrp-3-0-0-0-touch-recovery-t3334152
Then download magisk from here-
https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445
Also download the magisk manager APK. Flash magisk from TWRP then install magisk manger in android.
Click to expand...
Click to collapse
Thanks again for your help!
boxes said:
I found a permanent fix for the Bluetooth battery drain bug on stock 7.1, the last n108 release.
Root is required for this fix.
First, go to developer settings and enable Bluetooth hci Snoop log. Reboot. Then disable the Bluetooth hci log. Reboot.
Next, using a root file explorer (I used ES file explorer), navigate to /system/etc/Bluetooth/
Open bt_stack.conf
Near the top is "BtSnoopConfigFromFile=false"
Change it to true, then make sure the following two lines are set to false.
BtSnoopLogOutput=false
BtSnoopExtDump=false
Save the file and reboot.
After some browsing on the nextbit forums, someone had identified that the Bluetooth Snoop hci log was being written to the root directory of /sdcard/, causing significant battery drain. Their solution was to toggle the Bluetooth log on in developer settings, reboot, turn it off, then reboot again. It would always turn itself back on though. This prevents that.
(Bluetooth hci log is a file where android literally records all Bluetooth traffic information, which as you might imagine is CPU and I/o intensive. Normally used by devs for troubleshooting).
I decided to go back to stock due to constant bugs and freezes with the lineage 14.1 builds. Battery life has even been a little better on stock, with rock solid stability.
This prevents the battery drain aspect, but the battery settings still has a reporting error that attributes much more drain to Bluetooth than it should. I'm still getting 3-4hrs screen on time with lots of Bluetooth use after this fix. Better battery stats will provide accurate drain stats.
For extra security you can change the permissions of the .conf file to read only for all groups.
Click to expand...
Click to collapse
Bless you! I should have looked into this earlier but never got around to it, having just left Bluetooth off except when charging. Will see if I can do a bind mount over the file with Magisk so I can leave the system image read-only.
---------- Post added 3rd July 2018 at 12:00 AM ---------- Previous post was 2nd July 2018 at 11:57 PM ----------
In the process of looking this up, I discovered a Magisk module to fix the Bluetooth config problem already exists:
https://forum.xda-developers.com/apps/magisk/module-disable-bluetooth-hci-snoop-log-t3680223
You do not need to edit your system image, just install Magisk and then use Magisk Manager to install this module.
iscaela said:
Bless you! I should have looked into this earlier but never got around to it, having just left Bluetooth off except when charging. Will see if I can do a bind mount over the file with Magisk so I can leave the system image read-only.
---------- Post added 3rd July 2018 at 12:00 AM ---------- Previous post was 2nd July 2018 at 11:57 PM ----------
In the process of looking this up, I discovered a Magisk module to fix the Bluetooth config problem already exists:
https://forum.xda-developers.com/apps/magisk/module-disable-bluetooth-hci-snoop-log-t3680223
You do not need to edit your system image, just install Magisk and then use Magisk Manager to install this module.
Click to expand...
Click to collapse
I tried that and it didn't work for me, I replied to the thread a while back. At least with magisk v16.
Are you concerned about passing the safetynet check? I ran the check in magisk manager and passed, both ctsProfile:true and basicIntegrity:true
I'm still able to download apps from the play store that block rooted/modified devices. Magisk is masking the changes perhaps.
edit: I tinkered with magisk, enabling "hide magisk manager" and now it wont pass safetynet check. So I reinstalled magisk manager. This time I didnt "hide magisk manager", but I enabled "magisk core only mode" and checked the box for "Magisk Hide" and "Systemless Hosts" (I use adaway), now it passes the safetynet check again.
boxes said:
I tried that and it didn't work for me, I replied to the thread a while back. At least with magisk v16.
Are you concerned about passing the safetynet check? I ran the check in magisk manager and passed, both ctsProfile:true and basicIntegrity:true
I'm still able to download apps from the play store that block rooted/modified devices. Magisk is masking the changes perhaps.
Click to expand...
Click to collapse
After installing the module, I had to turn "Enable Bluetooth HCI snoop log" on in "Developer options", reboot, and turn it back off again, but it seems to have worked and /sdcard/btsnoop_hci.log stopped growing in size.
The file was also not recreated after I deleted it and rebooted one more time. So I think the extra steps are necessary whether using the module or editing the original file in the system image (there's lingering config data which could in theory be handled in the module as well if ).
boxes said:
edit: I tinkered with magisk, enabling "hide magisk manager" and now it wont pass safetynet check. So I reinstalled magisk manager. This time I didnt "hide magisk manager", but I enabled "magisk core only mode" and checked the box for "Magisk Hide" and "Systemless Hosts" (I use adaway), now it passes the safetynet check again.
Click to expand...
Click to collapse
I've had Magisk installed since I first got the phone and except for a brief period in mid 2017, SafetyNet checks have been passing with "Magisk Hide" alone, without selecting "core only mode" (which disables modules). I'm also using "Systemless hosts" for AdAway.
@iscaela
How long has it been since you did that? Just the process of enabling/disabling in dev options would fix it for a day or two in my experience.
boxes said:
@iscaela
How long has it been since you did that? Just the process of enabling/disabling in dev options would fix it for a day or two in my experience.
Click to expand...
Click to collapse
Just over 12 hours today. I've rebooted twice recently and it's stayed the same. I doubt there's a time component to it reverting, the config loading is pretty simple.
Interestingly, bluedroid is still listening on port 8872 as documented at https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/master/doc/btsnoop_net.md but isn't producing any traces.
iscaela said:
Just over 12 hours today. I've rebooted twice recently and it's stayed the same. I doubt there's a time component to it reverting, the config loading is pretty simple.
Interestingly, bluedroid is still listening on port 8872 as documented at https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/master/doc/btsnoop_net.md but isn't producing any traces.
Click to expand...
Click to collapse
So the most recent reboot did enable the setting and created /sdcard/btsnoop_hci.log again. The reason appears to be the module leaves BtSnoopConfigFromFile=false.
I'm going to update the module to edit this and report back.
Looks like the updated Magisk module works, I've posted it to the other thread:
https://forum.xda-developers.com/ap...bluetooth-hci-snoop-log-t3680223/post76987430
*****ONLY WORKS FOR FIREOS 5.6.2.0 OR LOWER*****
The title says it all. I've activated the stock global actions power menu. The options need tweaking a bit still, but this was too good to wait.
For the moment, without an Xposed module, the stock options are: Airplane Mode, Settings, Lock Now, and volume. With Gravitybox, you can add power (might be stock. I noticed this after gravitybox was installed), restart (which leads to soft reboot, reboot, recovery reboot and boot loader reboot).
How?
One minor edit to the framework was all it took. The menu was disabled, the value set to 0. Change the value to 1, and you get the menu. Simply long press the power button for a couple of seconds and it will pop up.
I have been trying for so long to get this to work. I looked at the configuration dozens of times and didn't figure out what it meant until today. This needs a bit more work and can probably be added to my settings.apk, but that's for another day.
Requirements:
Rooted HD 10 on FireOS ***5.6.1.0 or 5.6.2.0****
Windows PC with ADB
Installation:
1. Download and install adbd insecure.
2. Download and place the attached framework-res.apk in your ADB folder and plug your tablet into your PC.
3. Open adbd insecure and check the top box to make adb insecure. Open an adb window and type the following, hitting enter at the end of each line:
Code:
adb remount
adb push framework-res.apk /system/framework/framework-res.apk
adb reboot
4. Long press power button. Score. :highfive:
P.S. This framework also contains all previous modifications. References:
How to guide: Enable 'ok Google' to work from ANY screen
[ROOT] [HD 10 2017] FireTabletSettings.apk Rewritten [August 22, 2018]
[FIRMWARE] [STOCK] Pre-rooted, optimized, stock firmware for HD 10 Suez [APRIL 2019]
[Root] [HD 10 Suez] Remove parental control applications/restrictions [May 2019]
[TEST] [Flash Zip] [HD 10] [ROOT] All-in-1: The ultimate hacks, tricks & mods zip
[Root] [App] [All tablets] Disable & replace lock screen - set custom wallpaper
NO ROOT REQUIRED: Working Screen Mirroring
UPDATE (for 5.6.1.0):
June 1, 2019
- Increased default system volumes from -6 db to 8
- Set preference for 5ghz wifi to false. Setting this to true only allows 5ghz connections. 2ghz are ignored if set to true.
- Fixed typo in time server I found in the system logs.
- Extend network attributes (I don't know if these actually work but doesn't hurt either way)
- Wpa_supplicant_scan_interval by default is set to 15000.... milliseconds. Raised value to 150000000. This may have been the cause of disconnects on a constant level.
- preferences prefer dual pane set to true
- Bar separating notifications from system messages was narrow (set to true). Set it to false.
- Low battery warning is now 10% instead of 25%. Extreme low battery warning (almost dead battery) set at 5%
DragonFire1024 said:
The title says it all. I've activated the stock global actions power menu. The options need tweaking a bit still, but this was too good to wait.
For the moment, without an Xposed module, the stock options are: Airplane Mode, Settings, Lock Now, and volume. With Gravitybox, you can add power (might be stock. I noticed this after gravitybox was installed), restart (which leads to soft reboot, reboot, recovery reboot and boot loader reboot).
How?
One minor edit to the framework was all it took. The menu was disabled, the value set to 0. Change the value to 1, and you get the menu. Simply long press the power button for a couple of seconds and it will pop up.
I have been trying for so long to get this to work. I looked at the configuration dozens of times and didn't figure out what it meant until today. This needs a bit more work and can probably be added to my settings.apk, but that's for another day.a
Requirements:
Rooted HD 10 on FireOS ***5.6.1.0*** (5.6.2.0 comes soon. Possibly 5.3.x.x)
Windows PC with ADB
Installation:
1. Download and install adbd insecure.
2. Download and place the attached framework-res.apk in your ADB folder and plug your tablet into your PC.
3. Open adbd insecure and check the top box to make adb insecure. Open an adb window and type the following, hitting enter at the end of each line:
Code:
adb remount
adb push framework-res.apk /system/framework/framework-res.apk
adb reboot
4. Long press power button. Score. :highfive:
Click to expand...
Click to collapse
I have updated to the latest, 5.6.3.0 (erroneously called 5.3.6.4). I guess it is risky to do this until someone tries it and says it works? I've been using retyre's prerooted installs for the last couple of releases. So if this screws things up, I would have to adb sideload and root again, which I'd like to avoid.
Ignoring that issue, can the file just be copied into the correct folder with a file manager since I'm already rooted?
sga999 said:
The title says it all. I've activated the stock global actions power menu. The options need tweaking a bit still, but this was too good to wait.
For the moment, without an Xposed module, the stock options are: Airplane Mode, Settings, Lock Now, and volume. With Gravitybox, you can add power (might be stock. I noticed this after gravitybox was installed), restart (which leads to soft reboot, reboot, recovery reboot and boot loader reboot).
How?
One minor edit to the framework was all it took. The menu was disabled, the value set to 0. Change the value to 1, and you get the menu. Simply long press the power button for a couple of seconds and it will pop up.
I have been trying for so long to get this to work. I looked at the configuration dozens of times and didn't figure out what it meant until today. This needs a bit more work and can probably be added to my settings.apk, but that's for another day.a
Requirements:
Rooted HD 10 on FireOS ***5.6.1.0*** (5.6.2.0 comes soon. Possibly 5.3.x.x)
Windows PC with ADB
Installation:
1. Download and install adbd insecure.
2. Download and place the attached framework-res.apk in your ADB folder and plug your tablet into your PC.
3. Open adbd insecure and check the top box to make adb insecure. Open an adb window and type the following, hitting enter at the end of each line:
I have updated to the latest, 5.6.3.0 (erroneously called 5.3.6.4). I guess it is risky to do this until someone tries it and says it works? I've been using retyre's prerooted installs for the last couple of releases. So if this screws things up, I would have to adb sideload and root again, which I'd like to avoid.
Ignoring that issue, can the file just be copied into the correct folder with a file manager since I'm already rooted?
Click to expand...
Click to collapse
There was one report of it working a week or two ago. No one has said anything since. If it doesn't work, worst case is you need to flash back to 5.6.x.x
DragonFire1024 said:
There was one report of it working a week or two ago. No one has said anything since. If it doesn't work, worst case is you need to flash back to 5.6.x.x
Click to expand...
Click to collapse
1. If it fails, and I'm unable to boot, I will have to redo the sideload of the bin file. Then I have to reroot. As I said, I've just been using the prerooted version for the last couple of releases which means I don't have to go through extra steps to root. Since I am rooted, I just use Flashfire to flash the new prerooted version by retyre.
2. I was asking about copying the framework file that you put out there. If I ignore the problems of it possibly messing up my system, and I just want to try it anyway, why is it necessary to use Adb insecure and the PC? Since I'm rooted, can't your framework file just be copied to the correct folder?
3. Finally, can you tell me exactly what you changed in the framework? In your other thread about modifying the framework, you give some good instructions on how to decompile and recompile. I might want to try that instead of using the version that you have created here (since I'm on 5.6.3.0). Is it really just one boolean that needs to be changed?
sga999 said:
1. If it fails, and I'm unable to boot, I will have to redo the sideload of the bin file. Then I have to reroot. As I said, I've just been using the prerooted version for the last couple of releases which means I don't have to go through extra steps to root. Since I am rooted, I just use Flashfire to flash the new prerooted version by retyre.
2. I was asking about copying the framework file that you put out there. If I ignore the problems of it possibly messing up my system, and I just want to try it anyway, why is it necessary to use Adb insecure and the PC? Since I'm rooted, can't your framework file just be copied to the correct folder?
3. Finally, can you tell me exactly what you changed in the framework? In your other thread about modifying the framework, you give some good instructions on how to decompile and recompile. I might want to try that instead of using the version that you have created here (since I'm on 5.6.3.0). Is it really just one boolean that needs to be changed?
Click to expand...
Click to collapse
1. Yes
2. With a root explorer yes.
3. For this? An integer was all. Everything else? That's too much to type. Honestly I spend hours and days reading them testing and mostly failing. I can't tell you the amount of bookmarks i have, maybe close to 500 or more. A lot of times I have to mix together old tricks. you spend most time reading than anything.
DragonFire1024 said:
1. Yes
2. With a root explorer yes.
3. For this? An integer was all. Everything else? That's too much to type. Honestly I spend hours and days reading them testing and mostly failing. I can't tell you the amount of bookmarks i have, maybe close to 500 or more. A lot of times I have to mix together old tricks. you spend most time reading than anything.
Click to expand...
Click to collapse
I don't understand your answer to 3. I'm just interested in what you changed in the framework-res to get the advanced power menu. You said it's just an integer. If I decompile framework-res.apk, where is the integer that must be changed? When you said "everything else", maybe you mean all your changes in the thread about hacks, tricks, and mods? I'm not asking about those. I'm only asking about the advanced power menu that you are talking about in this thread.
sga999 said:
I don't understand your answer to 3. I'm just interested in what you changed in the framework-res to get the advanced power menu. You said it's just an integer. If I decompile framework-res.apk, where is the integer that must be changed? When you said "everything else", maybe you mean all your changes in the thread about hacks, tricks, and mods? I'm not asking about those. I'm only asking about the advanced power menu that you are talking about in this thread.
Click to expand...
Click to collapse
If you decompile it, it would be in res/values/integers. The config would be (paraphrasing) 'long_press_on_power'. Since in this AOSP framework the global actions are active, you have a choice of values of 0 or 1. 0 being no action, 1 being the action. It's a few lines away from 'long_press_on_home' which is supposed to be between 0 and 3. 2 would activate the voice assist. But for some reason I haven't figured out, setting that value does nothing one way or the other but gravitybox fixes it.
You can change around the global action menu too I saw, but didn't have time to experiment with that yesterday.
@DragonFire1024
Nice hack! Like your new power menu - always wanted something like that!
Now, given that it'd be such a burden to update this for every FireOS version, any chance you'd take a stab at putting this together as an Xposed module? Other rooted Fire tablets could use it too.
I recall sometime in the past there were modules designed for FireOS - if you find that on XDA, you could start from that one.
DragonFire1024 said:
If you decompile it, it would be in res/values/integers. The config would be (paraphrasing) 'long_press_on_power'. Since in this AOSP framework the global actions are active, you have a choice of values of 0 or 1. 0 being no action, 1 being the action. It's a few lines away from 'long_press_on_home' which is supposed to be between 0 and 3. 2 would activate the voice assist. But for some reason I haven't figured out, setting that value does nothing one way or the other but gravitybox fixes it.
You can change around the global action menu too I saw, but didn't have time to experiment with that yesterday.
Click to expand...
Click to collapse
Here's what is in my integers.xml file for 5.6.3.0. Are you saying I need to change 2 to 1 in the first one? And no changes to the others?
<integer name="config_longPressOnPowerBehavior">2</integer>
<integer name="config_shortPressOnPowerBehavior">1</integer>
<integer name="config_doublePressOnPowerBehavior">0</integer>
<integer name="config_triplePressOnPowerBehavior">0</integer>
@DragonFire1024, Have you edited smalis? It is for do it in the framework-res.apk of another tablet.
sga999 said:
Here's what is in my integers.xml file for 5.6.3.0. Are you saying I need to change 2 to 1 in the first one? And no changes to the others?
<integer name="config_longPressOnPowerBehavior">2</integer>
<integer name="config_shortPressOnPowerBehavior">1</integer>
<integer name="config_doublePressOnPowerBehavior">0</integer>
<integer name="config_triplePressOnPowerBehavior">0</integer>
Click to expand...
Click to collapse
Correct. First config set to 1 and leave the others as is, unless you want to test them out.
Rortiz2 said:
@DragonFire1024, Have you edited smalis? It is for do it in the framework-res.apk of another tablet.
Click to expand...
Click to collapse
I have not. I rarely touch that at least not Amazon smali. It doesn't translate well at all. And haven't really had to so far. And the framework is odexed...well the .jar in system/framework is, so they don't have smalis.
bibikalka said:
@DragonFire1024
Nice hack! Like your new power menu - always wanted something like that!
Now, given that it'd be such a burden to update this for every FireOS version, any chance you'd take a stab at putting this together as an Xposed module? Other rooted Fire tablets could use it too.
I recall sometime in the past there were modules designed for FireOS - if you find that on XDA, you could start from that one.
Click to expand...
Click to collapse
I was thinking about that however if gravity box works to bring out the rest (reboot etc) I imagine other power menu modules will also work now.
DragonFire1024 said:
I was thinking about that however if gravity box works to bring out the rest (reboot etc) I imagine other power menu modules will also work now.
Click to expand...
Click to collapse
Gravity box might work - AFTER your framework-res.apk replacement (which needs updating after each OS version). As is, for me Gravity does not bring anything out beyond the stock "Power off" option. It seems a module could simply patch framework with the correct flag, and then Gravity will do its thing. Same logic would apply to other features that Amazon might have chosen to disable.
bibikalka said:
Gravity box might work - AFTER your framework-res.apk replacement (which needs updating after each OS version). As is, for me Gravity does not bring anything out beyond the stock "Power off" option. It seems a module could simply patch framework with the correct flag, and then Gravity will do its thing. Same logic would apply to other features that Amazon might have chosen to disable.
Click to expand...
Click to collapse
Install framework in OP then you need to enable the advanced power menu in gravitybox, power tweaks. Then long press power button, tap restart, then you get your options for reboot.
Rortiz2 said:
@DragonFire1024, Have you edited smalis? It is for do it in the framework-res.apk of another tablet.
Click to expand...
Click to collapse
Also for the most part Amazon just moved configurations around maybe changed a few characters or couple of words. But for the most part a significant portion if not almost all of the Android source for this version was left inside these files. There are very few things I actually had to rebuild. The battery stats is one of those things. Other things are more difficult and require other pieces of software, for example specific apks. That took quite a lot of time to hunt down working versions of certain apks. Remember we are working with what is considered a stone age OS version. So we have to literally search for needles and haystacks just to find the one tiny thing that makes it all work... Well at least some of it
Gosh, I tried for a long time to decompile/recompile framework-res.apk (5.6.3.0)...no luck! I'm using your instructions in post 2 in the 7 wallpaper thread as a guideline. I can decompile successfully. Then, even without making any changes at all, recompile does not work. I won't bother to put the error display here unless you're interested. (systemui.apk fails on the recompile also, but in a different way). A "regular application" will decompile and recompile just fine.
So I have no idea what's wrong. I do have xposed/gravitybox installed, and I wonder if that causes the problem (but it sounds like have those also?). Or some change to 5.6.3.0 that you did not encounter with prior releases. I'm wondering if you can upload your framework-res.apk somewhere so that I can try that. At least that would narrow it down to the new release or my error.
There are lots of posts about this kind of problem, but they mostly talk about wrong paths, etc. That is definitely not my issue.
I had downloaded the most recent apktool, 2.3.4. Just for fun, I just tried 2.2.0. There are 4 warnings, but otherwise, it worked. I haven't tried to install the new framework, so I can't be sure all is okay, but it's certainly a good sign. I will also try more recent versions of apktool, i.e. ones between 2.2.0 and 2.3.4, and see where it went wrong.
EDIT: 2.3.2 and earlier are good, 2.3.3 and 2.3.4 are bad.
---------- Post added at 04:58 PM ---------- Previous post was at 04:55 PM ----------
If it ain't one thing, it's another! After changing the integer, I'm trying to drag and drop with 7zip from the new apk to the old, as you described in your other thread. For resources.arsc, it works as you said, i.e. it asks if I'm sure I want to copy. But for the res folder, it doesn't ask me anything and just starts extracting into the old. I cancel it before it can complete.
Do you recall doing something different for the res folder? I could be on a different 7zip version than you, of course. I've used 7zip, but I'm not that familiar with it.
EDIT2: I don't think a notification is done if my edit gets combined with my prior post. I tried both reply and quick reply, and both ended up combining. Can someone tell me how to make it do a new post? Or maybe I'm wrong and another notification occurs, in which case, ignore this!
sga999 said:
I had downloaded the most recent apktool, 2.3.4. Just for fun, I just tried 2.2.0. There are 4 warnings, but otherwise, it worked. I haven't tired to install the new framework, so I can't be sure all is okay, but it's certainly a good sign. I will also try more recent versions of apktool, i.e. ones between 2.2.0 and 2.3.4, and see where it went wrong.
EDIT: 2.3.2 and earlier are good, 2.3.3 and 2.3.4 are bad.
---------- Post added at 04:58 PM ---------- Previous post was at 04:55 PM ----------
If it ain't one thing, it's another! After changing the integer, I'm trying to drag and drop with 7zip from the new apk to the old, as you described in your other thread. For resources.arsc, it works as you said, i.e. it asks if I'm sure I want to copy. But for the res folder, it doesn't ask me anything and just starts extracting into the old. I cancel it before it can complete.
Do you recall doing something different for the res folder? I could be on a different 7zip version than you, of course. I've used 7zip, but I'm not that familiar with it.
EDIT2: I don't think a notification is done if my edit gets combined with my prior post. I tried both reply and quick reply, and both ended up combining. Can someone tell me how to make it do a new post? Or maybe I'm wrong and another notification occurs, in which case, ignore this!
Click to expand...
Click to collapse
Lol it's going to take a bit to get used to everything. I actually had messed around with apktool when I first started all this and got so frustrated I just stopped trying. 6 months after that I tried again and it took me a week or so before I successfully compiled and installed a system apk. My initial goal was to use this method to try and trick a non rooted tablet into thinking it was installing an update to a system app. Though it worked on rooted devices, I could never get it to work for non rooted ones. Don't give up,keep trying and re check everything, especially make sure your PATH to the proper tools is correct. I'll look at the latest fireOS framework tomorrow.
P.S. without any further modifications, I tested APM+ Xposed module and it works too. You can add and remove all the optioions plus add different ones depending on the module. No further tweaking needed on my end.
Okay, when dragging and dropping res, it does finally ask if I really want to copy AFTER it takes quite a while "extracting". I was confusing extracting with unzipping or unpacking...or some other term that would imply it was changing the format. I'm still not sure if it's doing it properly, but I'll keep trying. And I'd still like to know how to make these combined posts cause a notification, and if not, how can I force it to.