Android Marshmallow Doze Settings Editor
Requires Root
This app is a simple editor of the settings or parameters which affect the operation of Doze.
If no root is available then it will offer an ADB command that will modify the doze settings.
Because there is no root on open it will always load the default settings.
Changelog - v6.0
You can now add your own custom profiles.
Added tuhinxp04's profile
Bugfix - No longer crashes when device settings unavailable. Will change to non root mode.
Bugfix - Info screen now shows default in current display type
Bugfix - Info screen now shows location accuracy with meters
Changelog - v5.0
New built in profiles
Bugfix - Back arrow in settings not closing activity
The next post contains descriptions of each parameter.
Source Code
https://github.com/p0isonra1n/Doze-Settings-Editor
Disclaimer
I accept no responsibility for any outcome that this app may cause. Use at your own risk.
Parameter Descriptions
These are all direct from the Doze source code.
Inactive Timeout - inactive_to
This is the time, after becoming inactive, at which we start looking at the motion sensor to determine if the device is being left alone. We don't do this immediately after going inactive just because we don't want to be continually running the significant motion sensor whenever the screen is off.
Sensing Timeout - sensing_to
If we don't receive a callback from AnyMotion in this amount of time + locating_to, we will change from STATE_SENSING to STATE_INACTIVE, and any AnyMotion callbacks while not in STATE_SENSING will be ignored.
Locating Timeout - locating_to
This is how long we will wait to try to get a good location fix before going in to idle mode.
Location Accuracy - location_accuracy
The desired maximum accuracy (in meters) we consider the location to be good enough to go on to idle. We will be trying to get an accuracy fix at least this good or until locating_to expires.
Motion Inactive Timeout - motion_inactive_to
This is the time, after seeing motion, that we wait after becoming inactive from that until we start looking for motion again.
Idle After Inactive Timeout - idle_after_inactive_to
This is the time, after the inactive timeout elapses, that we will wait looking for significant motion until we truly consider the device to be idle.
Idle Pending Timeout - idle_pending_to
This is the initial time, after being idle, that we will allow ourself to be back in the IDLE_PENDING state allowing the system to run normally until we return to idle.
Max Idle Pending Timeout - max_idle_pending_to
Maximum pending idle timeout (time spent running) we will be allowed to use.
Idle Pending Factor - idle_pending_factor
Scaling factor to apply to current pending idle timeout each time we cycle through that state.
Idle Timeout - idle_to
This is the initial time that we want to sit in the idle state before waking up again to return to pending idle and allowing normal work to run.
Max Idle Timeout - max_idle_to
Maximum idle duration we will be allowed to use.
Idle Factor - idle_factor
Scaling factor to apply to current idle timeout each time we cycle through that state.
Min Time to Alarm - min_time_to_alarm
This is the minimum time we will allow until the next upcoming alarm for us to actually go in to idle mode.
Max Temp App Whitelist Duration - max_temp_app_whitelist_duration
Max amount of time to temporarily whitelist an app when it receives a high tickle.
MMS Temp App Whitelist Duration - mms_temp_app_whitelist_duration
Amount of time we would like to whitelist an app that is receiving an MMS.
SMS Temp App Whitelist Duration - sms_temp_app_whitelist_duration
Amount of time we would like to whitelist an app that is receiving an SMS.
Extra Infomation
Difference: Doze and App Standby (developer.android.com)
Some tests and issues: code.google.com
Requires root.... so.... source code?
Going to play with this on my Oneplus one for some time.
Thanks for your work m8.
9THX!
Does it show the default numbers or does it read out the current settings?
E.g. can we see what is changed with aggressive doze from greenify?
Edit: aggressive doze seems not edit directly these strings ...
----------------------------------------------------------------------------------------------
note:
whitelist is only for app Standby!
Difference: Doze and App Standby (developer.android.com)
Some tests and issues: code.google.com
Some add links:
Power Management (source.android.com)
Doze and App Standby (developer.android.com)
Doze steps (xda)
Understanding what Doze mode means for your app - Pro-tip by +Joanna Smith (G+)
time explanation in more simple english (xda)
what we found out:
*timeout means not max. time - so the system check only from time to time if there are timeouts over, then it will stop - this is not exactly triggered (only linux sw timer)
** if e.g. sensing_timeout = 0 it will stop sensing after the next control cycle (SystemClock Interrupt AlarmTime) - although it is 0, it will check the motion sensor for few seconds
*idle mode (doze) stops if
**idle_to is reached or
**phone detect any significant motion (!)
**some tests from @italia0101
idle def (source code):
Code:
/** Device is in the idle state, trying to stay asleep as much as possible. */
Device idle controller (deviceidle) dump options:
(adb shell dumpsys battery unplug)
Code:
adb shell dumpsys deviceidle -h
Device idle controller (deviceidle) dump options:
[-h] [CMD]
-h: print this help text.
Commands:
step
Immediately step to next state, without waiting for alarm.
force-idle
Force directly into idle mode, regardless of other device state.
[B] Use "step" to get out.[/B]
disable
Completely disable device idle mode.
enable
Re-enable device idle mode after it had previously been disabled.
enabled
Print 1 if device idle mode is currently enabled, else 0.
whitelist
Print currently whitelisted apps.
whitelist [package ...]
Add (prefix with +) or remove (prefix with -) packages.
tempwhitelist [package ..]
Temporarily place packages in whitelist for 10 seconds.
[GUIDE][ADB]Easiest How to use adb, logcat, etc for noobs and newbies
adb shell dumpsys deviceidle - output:
Code:
adb shell dumpsys deviceidle
Settings:
inactive_to=+30m0s0ms
sensing_to=+4m0s0ms
locating_to=+30s0ms
location_accuracy=20.0m
motion_inactive_to=+10m0s0ms
idle_after_inactive_to=+30m0s0ms
idle_pending_to=+5m0s0ms
max_idle_pending_to=+10m0s0ms
idle_pending_factor=2.0
idle_to=+60m0s0ms
max_idle_to=+6h0m0s0ms
idle_factor=2.0
min_time_to_alarm=+60m0s0ms
max_temp_app_whitelist_duration=+5m0s0ms
mms_temp_app_whitelist_duration=+60s0ms
sms_temp_app_whitelist_duration=+20s0ms
Whitelist (except idle) system apps:
com.android.providers.downloads
com.android.vending
com.google.android.gms
Whitelist system apps:
com.google.android.gms
Whitelist (except idle) all app ids:
10008
10011
10020
Whitelist all app ids:
10011
mEnabled=true
mForceIdle=false
mSigMotionSensor={Sensor name="Significant Motion Detector", vendor="QTI", version=1, type=17, maxRange=1.0, resolution=1.0, power=0.3999939, minDelay=-1}
mCurDisplay=Display id 0: DisplayInfo{"Integrierter Bildschirm", uniqueId "local:0", app 1080 x 1823, real 1080 x 1920, largest app 1835 x 1769, smallest app 1080 x 1026, mode 1, defaultMode 1, modes [{id=1, width=1080, height=1920, fps=60.0}], rotation 0, density 360 (442.451 x 443.345) dpi, layerStack 0, appVsyncOff 7500000, presDeadline 12666667, type BUILT_IN, state OFF, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}, DisplayMetrics{density=2.25, width=1080, height=1823, scaledDensity=2.25, xdpi=442.451, ydpi=443.345}, isValid=true
mScreenOn=false
mCharging=false
mSigMotionActive=false
mSensing=false mNotMoving=false
mLocating=false mHaveGps=false mLocated=false
mState=INACTIVE
mInactiveTimeout=+5m0s0ms
mNextAlarmTime=+4m57s175ms
MOTION_INACTIVE_TIMEOUT
Code:
@Override
public void onTrigger(TriggerEvent event) {
synchronized (DeviceIdleController.this) {
active = false;
motionLocked();
}
}
@Override
public void onSensorChanged(SensorEvent event) {
synchronized (DeviceIdleController.this) {
mSensorManager.unregisterListener(this, mMotionSensor);
active = false;
motionLocked();
}
}
void motionLocked() {
// The motion sensor will have been disabled at this point
handleMotionDetectedLocked(mConstants.[B]MOTION_INACTIVE_TIMEOUT[/B], "motion");
}
void handleMotionDetectedLocked(long timeout, String type) {
// The device is not yet active, so we want to go back to the pending idle
// state to wait again for no motion. Note that we only monitor for motion
// after moving out of the inactive state, so no need to worry about that.
if (mState != STATE_ACTIVE) {
scheduleReportActiveLocked(type, Process.myUid());
mState = STATE_ACTIVE;
[B]mInactiveTimeout = timeout; [/B]
EventLogTags.writeDeviceIdle(mState, type);
becomeInactiveIfAppropriateLocked();
}
}
void becomeInactiveIfAppropriateLocked() {
if (((!mScreenOn && !mCharging) || mForceIdle) && mEnabled && mState == STATE_ACTIVE) {
// Screen has turned off; we are now going to become inactive and start
// waiting to see if we will ultimately go idle.
mState = STATE_INACTIVE;
resetIdleManagementLocked();
scheduleAlarmLocked([B]mInactiveTimeout[/B], false);
EventLogTags.writeDeviceIdle(mState, "no activity");
}
}
void scheduleAlarmLocked(long delay, boolean idleUntil) {
mNextAlarmTime = SystemClock.elapsedRealtime() + delay;
if (idleUntil) {
mAlarmManager.setIdleUntil(AlarmManager.ELAPSED_REALTIME_WAKEUP,
mNextAlarmTime, mAlarmIntent);
} else {
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
mNextAlarmTime, mAlarmIntent);
}
}
SENISING_TIMEOUT
Code:
switch (mState) {
case STATE_INACTIVE:
// We have now been inactive long enough, it is time to start looking
// for motion and sleep some more while doing so.
...
break;
case STATE_IDLE_PENDING:
mState = STATE_SENSING;
EventLogTags.writeDeviceIdle(mState, "step");
scheduleSensingAlarmLocked(mConstants.[B]SENSING_TIMEOUT[/B]);
cancelSensingAlarmLocked();
cancelLocatingLocked();
mAnyMotionDetector.checkForAnyMotion();
mNotMoving = false;
mLocated = false;
mLastGenericLocation = null;
mLastGpsLocation = null;
break;
case STATE_SENSING:
...
}
void scheduleAlarmLocked(long delay, boolean idleUntil) {
mNextAlarmTime = SystemClock.elapsedRealtime() + delay;
if (idleUntil) {
mAlarmManager.setIdleUntil(AlarmManager.ELAPSED_REALTIME_WAKEUP,
mNextAlarmTime, mAlarmIntent);
} else {
mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
mNextAlarmTime, mAlarmIntent);
}
}
// mAlarmManager.setIdleUntil * Schedule an idle-until alarm, which will keep the alarm manager idle until the given time.
// mAlarmManager.set * Schedule an alarm.; If the stated trigger time is in the past, the alarm will be triggered immediately.
//android/server/AnyMotionDetector.java
public AnyMotionDetector(AlarmManager am, PowerManager pm, Handler handler, SensorManager sm,
DeviceIdleCallback callback) {
mAlarmManager = am;
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mHandler = handler;
mSensorManager = sm;
mAccelSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mMeasurementInProgress = false;
mState = STATE_INACTIVE;
mCallback = callback;
mRunningStats = new RunningSignalStats();
mNumSufficientSamples = (int) Math.ceil(
((double)ORIENTATION_MEASUREMENT_DURATION_MILLIS / SAMPLING_INTERVAL_MILLIS));
}
private final class MotionListener extends TriggerEventListener
implements SensorEventListener {
...
}
private final SensorEventListener mListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
int status = RESULT_UNKNOWN;
synchronized (mLock) {
Vector3 accelDatum = new Vector3(SystemClock.elapsedRealtime(), event.values[0],
event.values[1], event.values[2]);
mRunningStats.[B]accumulate[/B](accelDatum);
// If we have enough samples, stop accelerometer data acquisition.
if (mRunningStats.getSampleCount() >= mNumSufficientSamples) {
status = stopOrientationMeasurementLocked();
}
}
if (status != RESULT_UNKNOWN) {
mCallback.onAnyMotionResult(status);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
private int stopOrientationMeasurementLocked() {
int status = RESULT_UNKNOWN;
if (mMeasurementInProgress) {
mSensorManager.unregisterListener(mListener);
mHandler.removeCallbacks(mMeasurementTimeout);
if (mWakeLock.isHeld()) {
mWakeLock.release();
}
long detectionEndTime = SystemClock.elapsedRealtime();
mMeasurementInProgress = false;
mPreviousGravityVector = mCurrentGravityVector;
mCurrentGravityVector = mRunningStats.getRunning[B]Average[/B]();
mRunningStats.reset();
status = getStationaryStatus();
if (status != RESULT_UNKNOWN) {
mState = STATE_INACTIVE;
} else {
/*
* Unknown due to insufficient measurements. Schedule another orientation
* measurement.
*/
Message msg = Message.obtain(mHandler, mSensorRestart);
msg.setAsynchronous(true);
mHandler.sendMessageDelayed(msg, ORIENTATION_MEASUREMENT_INTERVAL_MILLIS);
}
}
return status;
}
/*
* Updates mStatus to the current AnyMotion status.
*/
public int getStationaryStatus() {
if ((mPreviousGravityVector == null) || (mCurrentGravityVector == null)) {
return RESULT_UNKNOWN;
}
Vector3 previousGravityVectorNormalized = mPreviousGravityVector.normalized();
Vector3 currentGravityVectorNormalized = mCurrentGravityVector.normalized();
float angle = previousGravityVectorNormalized.angleBetween(currentGravityVectorNormalized);
if ((angle < [B]THRESHOLD_ANGLE[/B]) && (mRunningStats.getEnergy() < [B]THRESHOLD_ENERGY[/B])) {
return [B]RESULT_STATIONARY[/B];
} else if (Float.isNaN(angle)) {
/**
* Floating point rounding errors have caused the angle calcuation's dot product to
* exceed 1.0. In such case, we report RESULT_MOVED to prevent devices from rapidly
* retrying this measurement.
*/
return [B]RESULT_MOVED[/B];
}
long diffTime = mCurrentGravityVector.timeMillisSinceBoot -
mPreviousGravityVector.timeMillisSinceBoot;
if ([B]diffTime [/B]> [B]STALE_MEASUREMENT_TIMEOUT_MILLIS[/B]) {
return [B]RESULT_UNKNOWN[/B];
}
return [B]RESULT_MOVED[/B];
}
/** Current measurement state. */
private int mState;
/** Threshold angle in degrees beyond which the device is considered moving. */
private final float THRESHOLD_ANGLE = 2f;
/** Threshold energy above which the device is considered moving. */
private final float THRESHOLD_ENERGY = 5f;
/** The duration of the accelerometer orientation measurement. */
private static final long ORIENTATION_MEASUREMENT_DURATION_MILLIS = 2500;
/** The maximum duration we will collect accelerometer data. */
private static final long ACCELEROMETER_DATA_TIMEOUT_MILLIS = 3000;
/** The interval between accelerometer orientation measurements. */
private static final long ORIENTATION_MEASUREMENT_INTERVAL_MILLIS = 5000;
/**
* The duration in milliseconds after which an orientation measurement is considered
* too stale to be used.
*/
private static final int STALE_MEASUREMENT_TIMEOUT_MILLIS = 2 * 60 * 1000;
/** The accelerometer sampling interval. */
private static final int SAMPLING_INTERVAL_MILLIS = 40;
[B][/B]
/android/server/DeviceIdleController.java
motionLocked() https://android.googlesource.com/pl...android/server/DeviceIdleController.java#1402
scheduleAlarmLocked https://android.googlesource.com/pl...android/server/DeviceIdleController.java#1402
sensing scheduleAlarmLocked https://android.googlesource.com/pl...android/server/DeviceIdleController.java#1490
/android/hardware/Sensor.java
description of a significant motion trigger sensor (TYPE_SIGNIFICANT_MOTION = 17) https://android.googlesource.com/pl...er/core/java/android/hardware/Sensor.java#305
mPower: https://android.googlesource.com/pl...er/core/java/android/hardware/Sensor.java#721
SensorPrintString https://android.googlesource.com/pl...er/core/java/android/hardware/Sensor.java#848
/android/hardware/SensorManager.java
cancelTriggerSensor https://android.googlesource.com/pl...java/android/hardware/SensorManager.java#1534
/android/server/AnyMotionDetector.java
constant: https://android.googlesource.com/pl.../com/android/server/AnyMotionDetector.java#64
I think with the string sensing_to = 0 we could deaktivate any motion for doze.
Could that be right?
Im not sure if all settings (pic) make sense... :/
original:
test:
final:
I will try it (a better "aggressiv doze")
Are the numbers in this app in seconds?
Sent from my Nexus 6 using XDA Free mobile app
freebee269 said:
Are the numbers in this app in seconds?
Sent from my Nexus 6 using XDA Free mobile app
Click to expand...
Click to collapse
Milliseconds e.g. 600000 means 10min
If you have greenify beta installed you might want to disable doze setting as it may affect this app changes.
Sent from my Nexus 6 using XDA Free mobile app
freebee269 said:
If you have greenify beta installed you might want to disable doze setting as it may affect this app changes.
Sent from my Nexus 6 using XDA Free mobile app
Click to expand...
Click to collapse
I think greenify use such a code:
" adb shell dumpsys deviceidle force-idle" to (only!) force doze mode if screen goes off.
http://forum.xda-developers.com/nexus-6/general/doze-depth-t3234529
So I think we could combine both.
The command "dumpsys deviceidle disable" should disable Doze.
The app will read the current settings but will fall back to loading the defaults if it can't read the settings.
this is what i have so far. greenify uninstalled.
- inactive_to set to 600000 (10min) - the time i want my device to sit before it thinks about going into doze.
- locating_to set to 0 - going into idle (doze) right away
- sensing_to set to 0 - disabling motion and going into inactive right away
- location_accuracy not changed - doesnt matter because we are going into idle right away with locating_to set to 0
- motion_inactive_to set to 0 - disabling motion
- idle_after_inactive_to set to 0 - we are already waiting 10min with inactive_to, no need to wait any longer
- idle_pending_to set to 120000 (2min) - my phone can check for updates for 2min before going back into idle
- max_idle_pending set to 120000 (2min) - my phone can check for updates for 2min before going back into idle
- idle_to set to 1800000 (30min) - the time in idle before my phone can change to idle pending to check for updates
i wonder if these settings will revert to defaults if i reboot? if so, is there a way to automate these settings with initd?
They should stick through a reboot as they are saved in the global settings.
Mkkt Bkkt said:
Going to play with this on my Oneplus one for some time.
Thanks for your work m8.
Click to expand...
Click to collapse
which marshmallow rom are you using on 1+1 ? doze is marshmallow only JFYI
---------- Post added at 10:20 AM ---------- Previous post was at 10:14 AM ----------
freebee269 said:
this is what i have so far. greenify uninstalled.
- inactive_to set to 600000 (10min) - the time i want my device to sit before it thinks about going into doze.
- locating_to set to 0 - going into idle (doze) right away
- sensing_to set to 0 - disabling motion and going into inactive right away
- location_accuracy not changed - doesnt matter because we are going into idle right away with locating_to set to 0
- motion_inactive_to set to 0 - disabling motion
- idle_after_inactive_to set to 0 - we are already waiting 10min with inactive_to, no need to wait any longer
- idle_pending_to set to 120000 (2min) - my phone can check for updates for 2min before going back into idle
- max_idle_pending set to 120000 (2min) - my phone can check for updates for 2min before going back into idle
- idle_to set to 1800000 (30min) - the time in idle before my phone can change to idle pending to check for updates
i wonder if these settings will revert to defaults if i reboot? if so, is there a way to automate these settings with initd?
Click to expand...
Click to collapse
there will be tasker integration i'm sure and depending on ones skill it should be possible to set this up in tasker already, something like day and night profiles. this app will be a runner once people get aware of it. will replace amplify since doze in action beats amplify by far on my N6 and N5. Surprised how fast someone came up with such a thing even though it was clear from day one that it will happen LOL "CHAPEAU" to @p0isonra1n
would be interesting if it is possible to log the doze steps: (Doze - In depth)
*IDLE_PENDING
*SENSING
*IDLE
*IDLE_MAINTENANCE
to find out how doze exactly works with different settings
magnamentis said:
which marshmallow rom are you using on 1+1 ? doze is marshmallow only JFYI
---------- Post added at 10:20 AM ---------- Previous post was at 10:14 AM ----------
there will be tasker integration i'm sure and depending on ones skill it should be possible to set this up in tasker already, something like day and night profiles. this app will be a runner once people get aware of it. will replace amplify since doze in action beats amplify by far on my N6 and N5. Surprised how fast someone came up with such a thing even though it was clear from day one that it will happen LOL "CHAPEAU" to @p0isonra1n
Click to expand...
Click to collapse
I'm using experimental home build.
5% drain over 9hours of deep sleep.
6hours to 8hours SOT max. (Depends on usage..etc)
Mkkt Bkkt said:
I'm using experimental home build.
5% drain over 9hours of deep sleep.
6hours to 8hours SOT max. (Depends on usage..etc)
Click to expand...
Click to collapse
ok, thanks for the feedback
i get 1% drain in 9-10h idle with my nexus 5, 2-3% drain with nexus 6 due to LED always on and i think 5% is slightly on the high side depending.
the 1% on nexus 5 correlate with 0.09% awake which is an absolute record result. the N6 has not only LED always on but as well has wake gestures ( dt2w ) active at all times while the N5 switches that of off charger. unfortunately that tasker intent, albeit it works, cannot be used on N6 because for yet unknown reason it will cause a random reboot a minute or 2 after the intent was executed. still trying to get feedback from the kernel dev as to what could be the reason. congrates for having MM on OPO, my OPO is now used by my dad hence i wait a bit for things to settle until i shall flash MM on that device.
GeraldRudi said:
would be interesting if it is possible to log the doze steps: (Doze - In depth)
*IDLE_PENDING
*SENSING
*IDLE
*IDLE_MAINTENANCE
to find out how doze exactly works with different settings
Click to expand...
Click to collapse
The sequence starts with sensing and locating. Once those 2 timeouts have passed and have not been tripped then it goes to inactive. After inactive timeout passes then it goes into idle which is the actual doze. It periodically wakes itself from doze with idle pending setting for normal phone function then goes back into doze.
Sent from my Nexus 6 using XDA Free mobile app
I am using Cataclysm without root(office mail requirement) on my N6.
Is there a way that we can achieve this in TWRP?
Sent from my Nexus 6 using Tapatalk
Related
Seriously... does anyone besides me get super irritated when the G1 shuts the screen off during calls? When you are calling automated lines or checking voicemail it's like the biggest pain in the ass... anyone know of a setting or something to stop the phone from turning screen off during calls?
Closes app you can get now is Shake Awake. It won't keep your screen on, but it will turn it on when you move (shake) the phone http://www.cyrket.com/package/com.maplekeycompany.apps.shake
I have been griping about this very problem for almost a year now. Shake awake is nice, but how about just changing a setting so that the phone screen DOES NOT SLEEP during a call? Anyone know where this would be?
There is no such setting. That question has been asked many times before, I'm sure someone would have worked it out if it was possible.
OK. I think I have found the culprit. This is what happens when the screen is shutting itself off during a call:
D/PhoneApp( 185): updateWakeState: keepScreenOn = false (isRinging false, showingDisc false)
D/SurfaceFlinger( 134): About to give-up screen, flinger = 0x17b200
Just a few changes should do the trick. I'll try to work on this.
You'd be a hero for many people if you figured this out
Looking at PhoneApp.java, this seems to be getting closer:
559 /**
560 * Controls how quickly the screen times out.
561 *
562 * The poke lock controls how long it takes before the screen powers
563 * down, and therefore has no immediate effect when the current
564 * WakeState (see {@link PhoneApp#requestWakeState}) is FULL.
565 * If we're in a state where the screen *is* allowed to turn off,
566 * though, the poke lock will determine the timeout interval (long or
567 * short).
568 *
569 * @param shortPokeLock tells the device the timeout duration to use
570 * before going to sleep
571 * {@link com.android.server.PowerManagerService#SHORT_KEYLIGHT_DELAY}.
572 */
573 /* package */ void setScreenTimeout(ScreenTimeoutDuration duration) {
574 if (DBG) Log.d(LOG_TAG, "setScreenTimeout(" + duration + ")...");
575
576 // make sure we don't set the poke lock repeatedly so that we
577 // avoid triggering the userActivity calls in
578 // PowerManagerService.setPokeLock().
579 if (duration == mPokeLockSetting) {
580 return;
581 }
582 mPokeLockSetting = duration;
583
584 // This is kind of convoluted, but the basic thing to remember is
585 // that the poke lock just sends a message to the screen to tell
586 // it to stay on for a while.
587 // The default is 0, for a long timeout and should be set that way
588 // when we are heading back into a the keyguard / screen off
589 // state, and also when we're trying to keep the screen alive
590 // while ringing. We'll also want to ignore the cheek events
591 // regardless of the timeout duration.
592 // The short timeout is really used whenever we want to give up
593 // the screen lock, such as when we're in call.
594 int pokeLockSetting = LocalPowerManager.POKE_LOCK_IGNORE_CHEEK_EVENTS;
595 switch (duration) {
596 case SHORT:
597 // Set the poke lock to timeout the display after a short
598 // timeout (5s). This ensures that the screen goes to sleep
599 // as soon as acceptably possible after we the wake lock
600 // has been released.
601 if (DBG) Log.d(LOG_TAG, "setting short poke lock");
602 pokeLockSetting |= LocalPowerManager.POKE_LOCK_SHORT_TIMEOUT;
603 break;
604
605 case MEDIUM:
606 // Set the poke lock to timeout the display after a medium
607 // timeout (15s). This ensures that the screen goes to sleep
608 // as soon as acceptably possible after we the wake lock
609 // has been released.
610 if (DBG) Log.d(LOG_TAG, "setting medium poke lock");
611 pokeLockSetting |= LocalPowerManager.POKE_LOCK_MEDIUM_TIMEOUT;
612 break;
613
614 case DEFAULT:
615 default:
616 // set the poke lock to timeout the display after a long
617 // delay by default.
618 // TODO: it may be nice to be able to disable cheek presses
619 // for long poke locks (emergency dialer, for instance).
620 if (DBG) Log.d(LOG_TAG, "reverting to normal long poke lock");
621 break;
622 }
623
624 // Send the request
625 try {
626 mPowerManagerService.setPokeLock(pokeLockSetting, mPokeLockToken, LOG_TAG);
627 } catch (RemoteException e) {
628 }
629 }
Click to expand...
Click to collapse
please please get this done... I'm even willing to donate I really want this... soooooooooooooooo tired of pressing MENU every time I need to get anywhere... and with some of these automated lines it can be like 10+ times each call...
Installing it on my phone now and keeping my fingers crossed...
I think there are more crossed fingers than just yours
derfolo said:
Installing it on my phone now and keeping my fingers crossed...
Click to expand...
Click to collapse
That's one long install. I hope you didn't completely trash your phone
I thought the Power Manager app had an option to keep the screen awake during calls...well at least the trial version DID (before it became a trial version)
damn wish i hadnt erased that ASTRO backup file...
I could be wrong but how can i check if I dont wanna buy the app.
dammit I want this!!! baaaaaaaaaaaad!!!
You should really try the power manager app like someone else mentioned. There is an option for keeping the phone awake, albeit only for 2 mins, but it should do the trick.
Hi all,
Sorry for the delay. I had two birthday parties to attend tonight, and my wife was not going to let me get out of it.
The short story is that my original hack did not work correctly. I incorrectly focused on the SHORT_TIMEOUT, when in fact the one that is happening during calls is the MEDIUM. The bonus is that I think I know what is going on at this point. I will keep trying tomorrow. When I am done, I will have a phone.apk that will replace the current one. oooh.
derfolo said:
Hi all,
Sorry for the delay. I had two birthday parties to attend tonight, and my wife was not going to let me get out of it.
The short story is that my original hack did not work correctly. I incorrectly focused on the SHORT_TIMEOUT, when in fact the one that is happening during calls is the MEDIUM. The bonus is that I think I know what is going on at this point. I will keep trying tomorrow. When I am done, I will have a phone.apk that will replace the current one. oooh.
Click to expand...
Click to collapse
I love you man
oneG said:
I thought the Power Manager app had an option to keep the screen awake during calls...well at least the trial version DID (before it became a trial version)
damn wish i hadnt erased that ASTRO backup file...
I could be wrong but how can i check if I dont wanna buy the app.
Click to expand...
Click to collapse
You'd spend a buck on snickers or coke without even thinking - why not buy .99 app?
But if you want to just test it, you can get it and then return it within 24 hours.
I didn't know it had that feature, but even now that I know it, I don't want a full-blown app just to change screen timeout.
exactly... I don't want an application slowing down my phone all the time and also messing with the boot just to have an option that should be on the phone already and most likely can be sorta easily changed...
Send me a patch when you've got it working and I'll add it to my build if you would like!
cyanogen said:
Send me a patch when you've got it working and I'll add it to my build if you would like!
Click to expand...
Click to collapse
EDIT: Got it done! See my post below for the Phone.apk attachment...
Cool %Battery Drain/Hr Widget using Tasker and Minimalistic Text
Minimalist widget that displays:
- % of battery drain or charge per hour... ie "-6.89 /hr"
- time in hours remaining till fully charged or discharged at the accumulated average % drain per hour... ie "14.2 hrs"
- % of battery lost or gained in hours since plugged in or unplugged... ie "-2% in 0.29"
Requires Minimalistic Text App from Market: https://market.android.com/details?id=de.devmil.minimaltext&hl=en
If anyone has any suggestions on how to simplify it... let me know.
4 Profiles Total:
Profile 1 - OnBoot - Clears and sets variables for new battery drain/charge stats
Profile 2 - PluggedIn (AC or USB) - Clears and sets variables for new battery drain/charge stats
Profile 3 - BattCharging - Calculates %charge/hr, time till 100% charge and %battery increase since start of charging
Profile 4 - BattDraining - Calculates %drain/hr, time till 0% charge and %battery decrease since start of discharging
The first two profiles are designed to clear and reset the battery% and timestart variables when the phone boots up or when the power profile changes. The first one is the OnBoot profile which is a useful profile to have in the first place. You can have your phone start a program or do some other useful task when your phone first starts up.
The second one will activate when the phone is plugged in either via usb or the wall plug. This is also a useful profile for other reasons... for example you can make your timeout longer when the phone is plugged in and make it go back to a shorter timeout when it's unplugged with the exit task.
I would imagine some people already have an OnBoot and a Charging profile, so just add the following tasklist to them to keep from cluttering up your tasks if it's viable, otherwise just create the profiles as they are below.
Profile 1: OnBoot
Context: Event > System > Device Boot
Task:
1. Variable Clear: %BATTSTART
2. Variable Clear: %TIMESTART
3. Variable Set: %BATTSTART To %BATT
4. Variable Set: %TIMESTART To %TIMES
5. Minimalistic Text: Configuration - %BATTDRAIN = Please
6. Minimalistic Text: Configuration - %BATTLEFT = wait...
7. Minimalistic Text: Configuration - %TIMEBATT = (blank)
Profile 2: PluggedIn
Context: - Choose State > Power > Power > Source: Any
Task:
1. Variable Clear: %BATTSTART
2. Variable Clear: %TIMESTART
3. Variable Set: %BATTSTART To %BATT
4. Variable Set: %TIMESTART To %TIMES
5. Minimalistic Text: Configuration - %BATTDRAIN = Please
6. Minimalistic Text: Configuration - %BATTLEFT = wait...
7. Minimalistic Text: Configuration - %TIMEBATT = (blank)
Exit Task:
1. Variable Clear: %BATTSTART
2. Variable Clear: %TIMESTART
3. Variable Set: %BATTSTART To %BATT
4. Variable Set: %TIMESTART To %TIMES
5. Minimalistic Text: Configuration - %BATTDRAIN = Please
6. Minimalistic Text: Configuration - %BATTLEFT = wait...
7. Minimalistic Text: Configuration - %TIMEBATT = (blank)
The next two profiles are where all the math is done. One profile is setup for when the phone is plugged in and charging. The other is setup for when the phone is unplugged and discharging. An IF statement was implemented because Tasker seems to track battery changes very frequently even when the actual battery percent hasn't changed. So a variable called %BATTPREV was created to do a quick check... If the battery % hasn't changed then it doesn't do anything until it does change. Also... I personally have the results written to a battlog.txt file because I found it handy to see a log of data.
I used the Variable Section task to drop one of the decimal points... Precision to 3 decimals is not necessary I don't feel, but there is no way to round it to 1 or 2 decimals yet. I think to the 10ths is plenty for this application.
Profile 3: BattCharging:
Context: Event > Power > Battery Changed
Context: State > Power > Power > Source: Any
Task:
1. If - %BATT !~ %BATTPREV
2. Variable Set: %BATTUSED To %BATT - %BATTSTART - Check "Do Maths"
3. Variable Set: %TIMEBATT To (%TIMES - %TIMESTART)/3600 - Check "Do Maths"
4. Variable Section: %TIMEBATT From 1 Length 4
5. Variable Set: %BATTDRAIN To %BATTUSED/%TIMEBATT - Check "Do Maths"
6. Variable Section: %BATTDRAIN From 1 Length 4
7. Variable Set: %BATTLEFT To (100-%BATT)/%BATTDRAIN - Check "Do Maths"
8. Variable Section: %BATTLEFT From 1 to Length 4
9. Minimalistic Text: Configuration - %BATTLEFT = %BATTLEFT hrs
10. Minimalistic Text: Configuration - %BATTDRAIN = +%BATTDRAIN /hr
11. Minimalistic Text: Configuration - %TIMEBATT = +%BATTUSED in %TIMEBATT
12. OPTIONAL - Write File: battlog.txt Append:On - Text:"CHG: %DATE, %TIME, %BATT, +%BATTDRAIN / hr %UPS"
13. End If
14. Variable Set: %BATTPREV To %BATT
Profile 4: BattDraining:
Context: Event > Power > Battery Changed
Context: State > Power > Power > Source: Any INVERT!!
Task:
1. If - %BATT !~ %BATTPREV
2. Variable Set: %BATTUSED To %BATT - %BATTSTART - Check "Do Maths"
3. Variable Set: %TIMEBATT To (%TIMES - %TIMESTART)/3600 - Check "Do Maths"
4. Variable Section: %TIMEBATT From 1 Length 4
5. Variable Set: %BATTDRAIN To (%BATTUSED/%TIMEBATT)*-1 - Check "Do Maths"
6. Variable Section: %BATTDRAIN From 1 Length 4
7. Variable Set: %BATTLEFT To %BATT/%BATTDRAIN - Check "Do Maths"
8. Variable Section: %BATTLEFT From 1 to Length 4
9. Minimalistic Text: Configuration - %BATTLEFT = %BATTLEFT hrs
10. Minimalistic Text: Configuration - %BATTDRAIN = +%BATTDRAIN /hr
11. Minimalistic Text: Configuration - %TIMEBATT = -%BATTUSED in %TIMEBATT
12. OPTIONAL - Write File: battlog.txt Append:On - Text:"CHG: %DATE, %TIME, %BATT, -%BATTDRAIN / hr %UPS"
13. End If
14. Variable Set: %BATTPREV To %BATT
Finally.... Create a Minimalistic Text Widget size of 1x1 to display the data on your homescreen
Setup a Custom Layout with 3 Levels...
Level 1: Add Local Variable from the Misc tab: Variable Name: %BATTDRAIN, Style: Normal Override Size: 15
Level 2: Add Local Variable from the Misc tab: Variable Name: %BATTLEFT, Style: Normal, Override Size: 15
Level 3 (OPTIONAL): Add Local Variable from the Misc tab: Variable Name: %TIMEBATT, Style: Normal, Override Size: 10
Thanks man.
You have no idea how long I was investigating somethig light and easy way to show discharge rate on the home screen.
I test your build and can confrim, that it works as prescribed even after 2 years you wrote first post.
Anyway I hope you did not stop to work on it and you can improve it. After few first days I am planning to study deeper your original work. I am new not new to Tasker but I never work with variables.
I would like to improve and add some stuff:
1. I want to see current discharge rate of last 1%.
2. show time in format "X hours X minutes"
Lol... blast from the past
Actually I still use it... but I've made some modifications and tweaks since.
I've simplified it a bit and changed what it watches for...
When it is draining it keeps track of:
Drain/hr... (ex) -2.5 %/h
Estimated time remaining: (ex) 10h 53m
Screen on time accumulated/total screen time expected: (ex) 0.48 / 4.58
When it's charging it keeps track of the first two things... charge per hour and estimated time till 100% and the bottom figure counts how many % have charged since plugged in and how long it's been.
Works reliably still... I've been meaning to program it in java and make a tiny app independent of these 3rd part apps... but eh.
Glad you like it.
Sent from my SM-N900T using Tapatalk
This is how it looks now while discharging.
Sent from my SM-N900T using Tapatalk
This is on my home screen
Do you mind sharing version with screen on time?
Give me a day or two and I'll write a detailed update for the profiles.
I really should just learn to program this sometime. It would be a lot easier.
Sent from my SM-N900T using Tapatalk
It's too much too type... I exported the profiles. Remember... you need minimalistic text to display the information on your home screen. I'm including the profiles and the minimalistic text profile as well. You can figure out how to import tasker profiles and the minimalistic folder is accessed from within the program... you have to save it to the sdcard/Minimalistic TextPreferences folder on your phone to be accessed.
Good luck!!
There are six profiles.
1. BatteryDraining - Tracks when your phone is unplugged and only performs a % drain / hour calculation when the battery % goes down and displays on the minimalistic text widget.
2. BatteryCharging - Tracks when your phone is plugged in and only performs a %charge / hour calculation when the battery % goes up and displays on the minimalistic text widget.
3. PluggedIn - Resets the variables used by the BatteryCharging profile in order to track charging % / hour statistics. When phone is unplugged variables are again reset for the BatteryDrain profile to track drain % / hour. (You may want to edit this profile because I have it set my screen time out to 15 minutes when it's plugged in and goes back to 30 seconds when unplugged. Also writes the stats to a text file on the phone storage... this is not necessary, but it's interesting for logging purposes to me.)
4. OnBoot - Resets all variables and will automatically calculate and display % drain or % charge wether phone is plugged in or not. (This profile also appends some information to the same battery log on the phone memory.)
5. ScreenOn - simple profile that sets the time that the phone screen is turned on
6. ScreenOff - another simple profile that sets the time that the screen is turned off and appends cumulative screen time and calculates an estimate of maximum screen on time which displays via minimlalistic text widget when phone is unplugged.
Alright... it works really well and I use it constantly. Next to zero battery drain because it only does anything when the battery actually changes. There is no active "monitor" mechanism.. it works entirely on reports of the system of battery changes.
Thanks for profiles, but i have a problem.
PluggedIn profile points to BattFull Profile Status...
I have exclamation mark on that profile, under Profile Status.
I set it to PluggedIn, and I'm testing it right now.
Will report later
It works fine, thanks again
Oh yeah... BattFull is another profile I created. It is very simple... when battery hits 100% it makes a sound and then turns itself off. When you plug in the phone it activates BattFull again. You can just delete that task... or make battful
Sent from my SM-N900T using Tapatalk
I'm not trying to do this exactly but something similar and maybe you can help me.
What I'm trying to do is make tasker alert me if my battery drops more than 2% per hour during my workday.
This is a little long so please bear with me:
I have 2 profiles. The first happens at 8:45 AM. The second happens every hour from 9:30AM to 4:30PM
Profile 1)
Variable Set %BATTLEVEL to %BATT
Profile 2)
Variable Set %CURRENTBATT to %BATT
Variable Set %BATTDIFF to %BATTLEVEL - %CURRENTBATT (do maths checked)
Alert - Notification LED - If %DIFFBATT > 2
This should happen at the 1/2 hour mark in each hour, but it is not performing the Variable Set tasks. The thing is I know these profiles are active and working because I have them doing other things like turing my data off, setting ringer volumes...and all those things are working.
The battery was at 56% at 2:15 PM when i set this up. So at 2:45PM I ran a test task Flash %BATTLEVEL, and Flash %CURRENTBATT, it gave me 56% for both. Then I purposefully drained it to 53% by 3:15PM so that I could test to see if it was working. I was expecting it to start flashing my notification light at 3:30PM. But it did not, so at 3:45 PM I checked the test task and the %BATTLEVEL and %CURRENTBATT are still at 56. So it just never ran the Variable Set commands. I don't understand why it wouldn't run those. Any suggestions?
Is that Calendar widget Tasker-based? If so, do you mind sharing?
Has anyone got a profile for estimating how long until the battery is fully charged?
Is there anyway to display the battery stats in a notification instead of a widget?
Please guide me how to add current mA to this settlement
Everyone wants to be connected, but save battery right?
I think this is the best solution we've got on kitkat 4.4 While still maintaining
google now/play/services and sync functionality.
(Also works well with most 4.x systems.)
I added updates to the second post. Thanks for visiting!
This tutorial will..
- Show you basics within tasker profiles
- Auto Sync Every 2 Hours (editable). Turns Data Off and On
- Auto airplane mode 12:30am to 5:30am - Mon, Tues, Wed, Thurs and Fri Mornings.
- Auto sound off at night Mon, Tues, Wed, Thurs
- Auto Backup Apps with TiBu at 4am
- Auto pattern lock on location, Disable @ Home
- Auto Turn PowerAmp on/off and set volume with headphone plugin/unplug
- Maps,Chrome,Tapatalk auto gps/data/wifi on/off "WIP"
- College/Home/Elsewhere Location profiles (set your own!)
- Allow google now/play services to hibernate
- Help fix broken .mp3 files (looping media scanner/server)
- Fix bad blocks in android
- Save you a ton of battery!
The following is done in Dalvik mode as ART is not supported by Xposed Framework just yet.
Apps Needed
- Root Access!
- Tasker (paid version) Free might work also.
- Greenify (paid version) to greenify system apps (google play services!)
- Xposed Framework 2.4.+ (enables airplane mode and greenify paid services)
- Secure Settings Plugin Secure Settings for GPS and Location Profiles (more to come)
- 4.1 helper! from within Secure Settings to enable features of Secure Settings in 4.4.x
- TaskKill Tasker Plugin [Root] To kill google play serivices
- Xposed Jelly Bean 4.x Airplane Mode Helper
- 7zip For extracting/repacking etc.
- Titanium Backup (paid version too for Auto)
And don't forget, to give many likes and donations to the OP'ers of these individual threads Thanks
Click to expand...
Click to collapse
I am not responsible for what you do with your phone, so take care
and understand these settings regarding kernel may fry your cpu if done wrong.
Also, DO NOT HIBERNATE CLOCK, PHONE or SMS!
Quick Notes
The worst this guide can do is turn the google now auto voice activation "OKAY Google" off yet google now will still function.
- Some apps like Whats App might not work correctly if hibernated by Greenify.
Be careful of what you hibernate and check How to Hibernate google play services and more! section.
- If you want to stay connected 24/7 via data, omit the Mobile Data = Off in the Exit task End Sync in Sync Every 2 Hours Profile.
- If %HOME ~ elsewhere
This checks to see what %HOME output is set to by reading the file in the current Profile
Example:
Home
- Read File
File Tasker/Home.txt To Var %HOME
- Enjoy!
Tasker Profiles
I'll share my Tasker profiles below in Downloads (if you don't know
what tasker is, check it out on google play and these XDA Youtube Tutorials may also help!)
To import Profiles from Downloads, hold the Home button in tasker.
Airplane mode
The Airplane mode profile turns airplane mode on automatically from
12:30am to 5:45am on Mon, Tues, Wed, Thurs and Friday mornings.
It then turns off airplane mode on exit.
(leaving Sat and Sun out of the list will keep you from missing those calls and texts when your out)
Tasks Used
Enter Task Auto Airplane Night Mode enables:
- Jeally Bean 4.x Airplane Mode Helper = On <--------You could use Secure Settings For this also. Maybe Reduce Battery usage.
- Secure Settings WiFi Scanning = Disabled
- Wait 17 Seconds
- Hibernate Now = All Greenified Apps
- Secure Settings Gps = Off
- Night Mode = On
Exit Task Airplane Mode Off enables:
- Jelly Bean 4.x Airplane Mode Helper = Off <--------You could use Secure Settings For this also. Maybe Reduce Battery usage.
- Secure Settings WiFi Scanning = Enabled
- Night Mode = Off
Click to expand...
Click to collapse
Airplane mode - Allow Family Call @ Night
This is the alternative to Airplane Mode for those of you that wish to save battery, yet
still keep your Cell Radio turned on for calls and VERY Important calls can be added to
IF %CNUM ~ ________________________1234567890 This will AIRPLANE Radio: WiFi, NFC, Bluetooth, WiMAX, WiFi scanning at night
but if (Caller 1234567890) calls, Turn audio on all fronts up to max Vibrate for six seconds and Take call if ringing for 7 seconds with Speaker Phone turned on!
If you don't get the call, then your way to tired.
Tasks Used
Enter Task Radio-Off enables:
- Secure settings Airplane Mode Radios: WiFi, NFC, Bluetooth, WiMAX = Off
- Secure Settings WiFi Scanning = Off
- Hibernate Now = All Greenified Apps
- If %CNUM ~ 1234567890, 0987654321 <----- if it does not work for two just take one number and the comma out and reduplicate this whole If statement.
- Haptic Feedback = On
- Silent Mode = On
- Secure Settings Airplane Mode = Off
- Vibrate 6 seconds or so
- Ringer Volume = 7
- Notification Volume = 7
- Media Volume = 15
- In-Call Volume = 5
- Take Call = IF %TIMES ~ 7 <------7 seconds call gets answered.
- Speaker Phone = On
- End If
Exit Task Airplane Mode Off enables: Yes same exit as the original Airplane Mode.
- Jelly Bean 4.x Airplane Mode Helper = Off <--------You could use Secure Settings For this also. Maybe Reduce Battery usage.
- Secure Settings WiFi Scanning = Enabled
- Night Mode = Off
Click to expand...
Click to collapse
Sync_Every_2_Hours
Sync every 2 saves battery and keeps productivity high.
This Turns Data Off/On to Sync data for 25 Seconds.
From 06:00 every 2 hours Till 00:00
Tasks Used
Shared with FB, Tapatalk and Chrome On/Off
Enter Task Data On enables:
- Mobile Data = On
- Auto-Sync = On
- Mobile Data = Off If %Home !~ elsewhere <------Data off if %HOME is set to anything other than elsewhere
- Secure Settings GPS = On If %HOME ~ elsewhere <------ GPS on if %HOME output matches elsewhere
- WiFi = On
- WiFi = Off If %HOME ~ elsewhere
- Wait 25 Seconds
Exit Task End Sync enables:
- Mobile Data = Off
- Secure Settings Gps = Off
- Auto-Sync = Off
- Wait 11 Seconds
- Hibernate Now = All Greenified Apps
Click to expand...
Click to collapse
Screen Off Hibernate Lock
This profile used to only Hibernate all Greenified Apps.
In addition, it will now check VAR %HOME to see if you are at #Home, #College or #Elsewhere.
Turn on pattern lock, and select a pattern to use. (pattern is the choice secure settings uses)
- You can also go and remake the secure settings options and select pin I believe.
- You can also turn it all off by just leaving Hibernate as the only task on screen off.
It will use Secure Settings to Enable: Lock Device/Enable Pattern on screen off,
IF #College or #Elsewhere Profiles are enabled.
Example:
If %HOME ~ home <--- if %home output is set to home from Tasker/home.txt Secure Settings will Disable Pattern Lock.
Tasks Used
On screen off
Exit Task Hibernate enables:
- Hibernate Now = All Greenified Apps
- If %HOME ~ elsewhere, college
Secure Settings = Lock Device/Enable Pattern Lock
Vibrate Time = 30
- Else If %HOME ~ home
Secure Settings = Pattern Lock Disabled
End If
You can also add whatever you want to turn off.
Click to expand...
Click to collapse
Facebook Data/WiFi on/off Fixing
There are tons of options when it comes to tasker. A favorite one of mine has to be launching facebook.
Tasks Used
Facebook On/Off
Enter Task Data On enables:
- Mobile Data = On
- Auto-Sync = On
- Mobile Data = Off If %Home !~ elsewhere <------Data off if %HOME is set to anything other than elsewhere
- Secure Settings GPS = On If %HOME ~ elsewhere <------ GPS on if %HOME output matches elsewhere
- WiFi = On
- WiFi = Off If %HOME ~ elsewhere
- Wait 25 Seconds
Exit Task Kill FB Data Off enables:
- Wait 25 Seconds
- Mobile Data = Off
- Auto-Sync = Off
- Hibernate Now = Facebook
Click to expand...
Click to collapse
Chrome Data/WiFi On/Off Fixing
Shared with FB, Tapatalk and Sync Every 2 Hours On/Off Profiles
Tasks Used
Shared with FB On/Off
Enter Task Data On enables:
- Mobile Data = On
- Auto-Sync = On
- Mobile Data = Off If %Home !~ elsewhere <------Data off if %HOME is set to anything other than elsewhere
- Secure Settings GPS = On If %HOME ~ elsewhere <------ GPS on if %HOME output matches elsewhere
- WiFi = On
- WiFi = Off If %HOME ~ elsewhere
- Wait 25 Seconds
Exit Task Kill Chrome Data/WiFi On/Off enables:
- Auto-Sync = Off
- Wait = 25 Seconds
- Mobile Data = Off
- Hibernate Now = Chrome
Click to expand...
Click to collapse
Tapatalk Data/WiFi On/Off Fixing
Just the same simple and effective. Save data and time.
Tasks Used
Shared with FB, Chrome and Sync Every 2 Hours On/Off Profiles
Enter Task Data On enables:
- Mobile Data = On
- Auto-Sync = On
- Mobile Data = Off If %Home !~ elsewhere <------Data off if %HOME is set to anything other than elsewhere
- Secure Settings GPS = On If %HOME ~ elsewhere <------ GPS on if %HOME output matches elsewhere
- WiFi = On
- WiFi = Off If %HOME ~ elsewhere
- Wait 25 Seconds
Exit Task Kill XDA enables:
- Wait = 25 Seconds
- Auto-Sync = Off
- Mobile Data = Off
- Hibernate Now = Tapatalk
Click to expand...
Click to collapse
PowerAmp on/off Headphone Plugin
I enjoy this as I listen to music a lot and it just simplifies things.
Tasks Used
On Headset Plugged = Any
Enter Task Volume Set enables:
- Media Volume = 6 or 7 <-------depending on your version
- Load App = Poweramp <-------Swap for whatever app you like.
Exit Task Kill Power Amp enables:
- Hibernate Now = Poweramp
- Stop Task = %MEDIASCAN
There's much more to add to this like kill media scanner/server, but I found it not so reliable on 4.3 (see fixing .mp3 below)
Click to expand...
Click to collapse
Auto Titanium Backup run/hibernate at 4am
This runs Titanium Backup at the selected time, around 4am for about 20 min (best done on power).
Just set the schedule in Titanium Backup a minute ahead of this Tasker Profile and let the process begin!
Tasks Used
From 4:28am to 4:40am, Mon, Wed, or Fri
Enter Task Titanium Backup enables:
- Load App = Titanium Backup <-------You have to set the scheduler on Titanium Backup to start app a minute ahead @ 4:27am
Exit Task Kill TiBu enables:
- Kill App = Titanium Backup - Use Root = On
- Hibernate Now = Titanium Backup
This process requires you to "Allow External Access"
by going into Tasker, Preferences, Misc tab. Run the exit task once to see that it works and allow Tasker SU access.
Click to expand...
Click to collapse
Night Sound Off
This is like Airplane Mode except it gives you the option of doing things with your phone and not disturbing anyone.
Tasks Used
Mon, Tue, Wed or Thurs - from 00:00 Till 05:30
Enter Task Sound Off enables:
- Notification Volume = 0
- Silent Mode = On
- Media Volume = 0
- Haptic Feedback = Off
- Ringer Volume = 0
- Alarm Volume = 5
- In-Call Volume = 4 <---- might need to adjust, personal preference with Quantum volume Boost.
- WiFi = Off If %HOME ~ elsewhere
Exit Task Sound On enables:
- Silent Mode = Off
- Media Volume = 9
- Notification Volume = 5
- Haptic Feedback = On
- Ringer Volume = 5
- Alarm Volume = 5
- In-Call Volume = 4
Click to expand...
Click to collapse
GoogleMaps+GPS Data/WiFi On/Off Fixing
Real simple, this profile starts by turning on data and gps when you click on google maps. On exit maps will hibernate
and data/gps will turn off. (Needs 4.1 helper! found in Secure Settings)
Tasks Used
Maps + GPS Profile
Enter Task Data Gps On enables:
- Mobile Data = On
- Mobile Data = Off If %HOME !~ elsewhere
- Secure Settings GPS = On
- Wait 25 Seconds
Exit Task Kill Maps Data Gps enables:
- Wait 25 Seconds
- Mobile Data = Off
- Hibernate Now = Maps
- Secure Settings Gps = Off
Click to expand...
Click to collapse
Auto Car_Docked
This Profile is a work in progress. Just something you can try out yourself.
Profile
Add Event, State, Bluetooth Connected.
Add by click and holding bluetooth State, Call, Any
Add by click and holding Call Any State, Hardware, Docked
Tasks Used
Enter Task Data Gps On enables:
- If %LOCSPDMPH > 5
- Tace Call
- Speakerphone = On
I didn't add a Exit task yet. Just something I'm working on besides the rest of this stuff. Your welcome to add to this!
Click to expand...
Click to collapse
Boot Minimizer
This Profile Kills Google Play Services before hibernating it which is an effective way of making it hibernate correctly
(It will turn back on but check the processes in Running Apps. See img below.)
Once you turn your screen off, it will hibernate Google Play Services again.
Boot Minimizer profile will most likely say, couldnt kill google, or hibernate.. turning this into a
User App usually reverts back to System in Titanium Backup.
Tasks Used
On boot Boot Minimizer enables:
- Wait 45 seconds
- TaskKill Extreme = Google
- Wait = 5 Seconds
- Hibernate Now= Google
- TaskKill Extreme = Kill Google Play Services
- Wait 10 seconds
- Hibernate Now = All Greenified Apps
If you watch running apps in Settings/Apps as this profile goes through the process, you’ll notice google play services
will stop the 4 or 5 processes it usually runs after a 60 second buffer to allow it to first boot up.
Google play services will hibernate accordingly there after via Sync Every 2 Hours profile.
Here is a screenshot
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
of what you’re processes should resemble after Boot Minimizer is finished.
Click to expand...
Click to collapse
How to set up #Home, #College and #Elsewhere Auto Location Profiles Requires home,college,elsewhere.txt files
Now this whole Home, College and #Elsewhere <--New! Profiles are still in Beta stages.
Not sure if this works as of yet, but I've had good feedback so far. Do let me know and we can work it out.
To use these profiles (Not provided since you need your own cell towers.
- Open Tasker
- Click + button on bottom
- Clicks are assumed.. Click on State
- Phone
- Cell Near
- Click Scan while walking around your home where you usually use WiFi. This process takes
all the cell towers in your location into account I found 8 in my apt, a very small area.
- Stop Scan and hit search/Magnify glass
- Click on all the towers to give them a check mark and go back.
- Add the Enter Task Home
Finally
- Do the same as #Homefor #College and #Elsewhere Location Profiles
using College_WiFi and Elsewhere
- For Elsewhere Profile, start it as if making Home but click revert at the bottom of the scan page in Cell Near
- Add Elsewhere as the Enter Task for #Elsewhere
"If CELL NEAR does not work like in a basement, try add WiFi Near to double up the Location Profile.
Click Hold on Cell Near to add."
Hope this isn't to complicated but just look at the way the tasks are used below.
Click to expand...
Click to collapse
#Home
This profile will use Cell Near and Home Task for location.
Tasks Used
Enter Task Home enables:
- Read File File Tasker/home.txt To Var %HOME <-----You will find this home.txt in zip. save it in Tasker folder, SD/Tasker
- Ringer Volume = 5
- Notification Volume = 5
Exit Task Elsewhere enables:
- Read File File Tasker/elsewhere.txt To Var %HOME
- Ringer Volume = 5
- Notification Volume = 5
- Media Volume = 6
Click to expand...
Click to collapse
#College
This profile will use Cell Near state for location the same as Home Profile.
Just duplicate the Home Profile when done, Rename it to College or work and change the enter task to:
Tasks Used
Enter Task College_WiFi enables:
- Read File File Tasker/college.txt To Var %HOME <------Save college.txt in Tasker Folder on your SD
- Notification Volume = 0
- Silent Mode = On
- Media Volume = 0
- Ringer Volume = 0
- Alarm Volume = 5
- In-Call Volume = 4
Use the same Exit task as Home Profile.
Exit Task Elsewhere enables:
- Read File File Tasker/elsewhere.txt To Var %HOME
- Ringer Volume = 5
- Notification Volume = 5
- Media Volume = 6
Click to expand...
Click to collapse
#Elsewhere
This profile will use Cell Near state for location the same as Home and College Profiles.
This time we use Elsewhere as the Enter Task for #Elsewhere Profile.
Same method as Home but Reverted.
EnterTask Elsewhere enables:
- Read File File Tasker/elsewhere.txt To Var %HOME <------ Save elsewhere.txt to your Tasker Folder on SD
- Ringer Volume = 5
- Notification Volume = 5
- Media Volume = 6
Might need to add GPS scanning or WiFi Near to these profiles if Cell Near is not working for you. Trouble shooting is the key.
You can duplicate this profile for work, theatres, Karate, Library etc and modify the sound options. Keep in mind, changing
Screen brightness will effect the newly installed "Sync Every 2 Hours" and wifi at home, college etc.
Click to expand...
Click to collapse
Wifi connected and Display (Wifi) Profiles
I have been working on a profile to turn wifi on/off or use data instead for awhile but keeping it on with background
data/wifi enabled to finish a download or streaming constant is tougher than it seems.
I wasn't able to get permission but you can Download Traffic_Screen_off_with_Nightmode_v1.1.zip
from parthipanramesh on his thread he started last year. It's a complex operation indeed.
I would use it by leaving nightmode out and also leaving "Wifi connected" Off.
There's a good chance "Wifi connected and Display (Wifi)" can work together, yet I find it kind of buggy.
Anyways, go check his work and thank him. [v1.3] Tasker: Screen off=wifi/data off(no traffic+)AutoSync+Night/Reduce CellStandby
If you don't want to use these WiFi profiles, just simpily Add wifi = on to Home and college Enter Tasks
and Data = On in Elsewhere (Optional) by the following.
Enter task Home
- Click + button
- Net
- WiFi/Data
Set On
Click to expand...
Click to collapse
How to Hibernate google play services and more!
Hibernating google play services
To allow google play serivices to hibernate how it should. Make sure you have:
- Root Access
- Boot Minimizer Profile
- Hibernate Screen Off Profile
- TaskKill Tasker Plugin [Root]
- Greenify Paid
- Tasker Paid
- Make sure to have Tasker Preferences/Misc/Allow External Access Checked!
- Give TaskKill Tasker Plugin [Root] root access by running the profile once.
Now assuming you have Xposed Framework and Greenify paid version installed. Make sure you have every box
checked except Telephony Wakeup in Greenify Experimental Features (paid version only)
Also, Don't hibernate sms or phone applications they shouldn't wakeup with Telephony Wakeup feature turned off.
Hibernate The Following Apps
I have no problems hibernating these apps but if you want them to function with wifi/data push notifications enabled, de-greenify
the apps you wish to get notifications from. (Also Disable Sync Every 3 Hours Tasker profile to leave data on at all times).
Google Play Services, Google Backup Transport, Messenger, MX Player, Pocket, ROMdB Dev Tool, Root Explorer, SD Maid,
Tapatalk, Voice + (Might Break Google Now), Camera, Swiftkey, Chrome, Cloud Print, Google, Google+, Street View, Widgets,
Wallet, Keep, CM Updater, Flipboard, Maps, Talkback, Titanium Backup, Youtube, Facebook + more
Click to expand...
Click to collapse
You can also check out this useful thread here that goes more in depth with google service freezing and hibernating options.
[GUIDE] Insanely Better Battery Life When Idle
Kernel Settings & Undervolting Galaxy SIII - Fido,Rogers,Bell,AT&T
Scheduler/Governor/CPU/GPU/Undervolting
Here's my current kernel settings using TricksterMod.
- MPdecision disabled or renamed to mpdecision.bak in system/bin
- Lower from default voltage, by 25mv at a time to gain stable results.
Quantum kernel (android 4.4.2 as of writing)
Scheduler = Row
Governor = interactiveX
interactiveX Governor Control
- set hispeed_freq to 1026000Mhz
- set screen_off_maxfreq min 486000Mhz
(Screen off min freq in gov controls - raise it if your phone is too unresponsive.)
CPU = 1350Mhz Undervolted 1.5 is fine also.
GPU 300mhz stock volts
Quantum Undervolting
1512Mhz - 1050mV
1458Mhz - 1037mV
1350Mhz - 1025mV
1242Mhz - 975mV
1134Mhz - 950mV
1026Mhz - 925mV
918Mhz - 825mV
810Mhz - 775mV
702Mhz - 750mV
594Mhz - 750mV
486Mhz - 725mV Anything lower can bug V4A and may have artifacts.
384Mhz - 700mV 300Mhz GPU - associated to artifacts maybe.
Undervolting Quantum settings will work on ktoonsez
Ktoonsez kernel (android 4.3.1 - 4.4)
Scheduler: = Row
Governor: = Ktoonservative
CPU: = 1728Mhz over clocked/undervolted
GPU: = 300mhz stock volts
Ktoonsez Undervolting (Update pending)
1512Mhz - 1125mV
1458Mhz - 1090mV
1404Mhz - 1065mV
1350Mhz - 1000mV
1296Mhz - 1000mV
1242Mhz - 975mV
1188Mhz - 975mV
1134Mhz - 975mV
1080Mhz - 950mV
1026Mhz - 925mV
972Mhz - 925mV
918Mhz - 875mV
864Mhz - 875mV
810Mhz - 850mV
756Mhz - 850mV
702Mhz - 825mV
648Mhz - 825mV
594Mhz - 775mV
540Mhz - 775mV
486Mhz - 725mV <-----725mV has some minor artifacts in LWallpaper.
378Mhz - 725mV
189Mhz - 700mV <-----Lowest freq for speed over 135/81Mhz.
135Mhz - 700mV <-----Trickstermod reverts to 700mV min, Tried 650/675mV.
81Mhz - 700mV
For reference, I'm running on i747m CND Fido Phone
Also, these settings are VERY low...
Here is a link to Stock Voltages if you need to revert.
Click to expand...
Click to collapse
How to fix .mp3 files and stop Media Scanner/server loop
Lower Media Server/Scan
I stumbled upon this thread only recently, and found the culprit (bad .mp3's) which was possibly the reason
why my media server/scanner battery drain was so high, (up to 40% battery drain on 4.3.1).
Take a look see http://forum.xda-developers.com/showthread.php?t=1717237
.nomedia scan spoof
Another mentioned media scan preventative option is to add .nomedia files to all your folders not containing video/music/photo media etc,
to lesson the amount of time media scan takes to scan folders.
Click to expand...
Click to collapse
Tasker Preferences Tweaks
My Tasker Preferences - Monitor Settings
Although minor, the same as increasing the wifi scan time to 180 seconds with build.prop as well as setting Scanning always available
to off in WiFi, Advanced settings.
Display On Monitoring
- Application Check MilliSeconds - 1500
- Wifi Scan Seconds - 180
- GPS Check Seconds - 120
- Network Location Check Seconds - 30
- GPS Timeout Seconds - 90
Display Off Monitoring
- All Checks Seconds - 600 <---------Default. Not sure if it makes a difference at anything higher. Although it might slow things down.
- Timeout Seconds - 90
- Accelerometer - No!
- Proximity Sensor - No!
- Light Sensor - No!
- Pressure Sensor - No!
- Temperature Sensor - Yes
- Cell Workaround - Unchecked
- Net/Cell Wake Screen - Unchecked
General Timings
- Wifi Minimum Timeout Seconds - 10
- Gester Initial Sample Rate - 300
- Gesture Match Radius - 3.5
- Gesture Match Reset Time - 1200
- Orientation State Accuracy - Very Low
Click to expand...
Click to collapse
App Ops
Enable App Ops
You can control wakes and location among other options with App Ops which can be found in Trickster Mod
or through a App Ops Xposed Framework Module
- Open Trickstermod
- Go to Tools
- Click on App Ops
- Click on Google Play Services in the Location Tab
- Then Turn Off Keep Awake.
Click to expand...
Click to collapse
Monitor Battery Wakelocks etc
Freezing, Deleting, Hibernating, Disabling
- Disable sync, Hibernating, Freezing, Deleting the stock browser in 4.4 is the easiest way to save battery by far. (might be fixed)
- Freeze Google +, Voice +, Print Spooler, CM Updater
- Deleted Hangouts (This was a big drain for me on 4.3.1)
- Disable Android Device Manager in Settings, Security Device Admin. This will
keep you from locking, changing passwords and erasing your device from the
web, but this is also a major battery drain. So the added benefit is up to you.
Fixing Bad Blocks
Not a problem for all but check this out if you suffer mmc2_detect wakelock
http://forum.xda-developers.com/showpost.php?p=49503153&postcount=9423
More Fixing and Identifying SD card Issues
[GUIDE] [INFO] All about SD CARDS - which one, why and how! Posts 1-3.
Also a great app that should be utilized in the quest for battery savings is.
BetterBatteryStats_xdaedition_1.15.0.0.apk
Click to expand...
Click to collapse
Tasker Profiles XML Downloads
Installing Profiles
Beginner mode must be disabled!
- Extract zip
- Import holding the Tasker home button (if this does not work)
- Import holding Profiles/Tasks tabs
- Locate XML files location
- Import
To all the hard working people in the community just a few of you mentioned, Thanks!
michael-oc | ktoonsez | polobunny | Skipjacks | xXshur1kenXx | AA1973
PwnCakes193 | czechpunk | KorGuy123 | CrackerTeg
Using these methods, I've been getting around .7% drain per hour + in idle on the stock samsung galaxy sIII battery. (.4777% drain with Airplane mode enabled.)
View attachment 2545370
Updates:
update: Jan 23, 2014
Update:
- New profile Airplane mode - Allow Family Call @ Night is up
- Updated Screen Off Hibernate Lock < now pattern locks on location other than Home. (Requires #Home, #College and #Elsewhere profiles)
Click to expand...
Click to collapse
update: Jan 20, 2014
Update:
- Forgot to add Boot Minimizer profile lol its up now.
Click to expand...
Click to collapse
update#2: Jan 19, 2014
Updated:
- #Elsewhere.v4.zip
- #Home.v4.zip
- #College.v4.zip
- Airplane Mode.v4.zip
- Night Sound Off.v4.zip
- Screen Off Hibernate.v4.zip
- Sync Every 2 Hours.v4.zip
Added:
- Car Dock.v1.zip
- Wifi connected and Display (Wifi) Profiles [v1.3] Tasker: Screen off=wifi/data off(no traffic+)AutoSync+Night/Reduce CellStandby
Left out
- Chrome On/Off
- Maps + Gps
- Tapatalk On/Off
- Facebook On/Off
Need further tweaking.
Click to expand...
Click to collapse
update: Jan 19, 2014
Way to late/early in the morning to .zip and upload at the moment. Profiles are on there way!
Phone crashed making me redo half the profiles..
Updated:
- OP in Tasker Profiles.
- Updating Every Tasker Profile except music/TiBu tomorrow.. 4am now.
Added:
- Chrome On/Off Profile
- Tapatalk On/Off Profile
- #Elsewhere Profile
- Soon to add Car Dock Profile
- Wifi connected and Display (Wifi) Profiles [v1.3] Tasker: Screen off=wifi/data off(no traffic+)AutoSync+Night/Reduce CellStandby
Removed
- Screen On
Click to expand...
Click to collapse
update: Jan 17, 2014
Updated:
- OP
- Airplane mode
- Boot Minimizer
- College
- FB On/Off
- Hibernate Screen Off
- Home
- Maps + Gps
- Night Sound Off
- Sync Every 2 Hours
Added:
- Screen On Profile
- SD android bad block wakelock fixer?
- few explanations for tasks being made
Hopefully This fixes the location profiles. You need to follow the steps in making Home and College Profiles and
add the Enter/Exit task once imported from downloads.
Adding Following Profiles Soon:
- Auto Bluetooth car dock
- Call missed Email or SMS reminder (Just for kicks)
Click to expand...
Click to collapse
update: Jan 15, 2014
Updated:
- How to Hibernate google play services and more!
The previous method of making Google Play Services a user app is not needed. see OP.
Added:
- 4.1 helper! from within Secure Settings to enable features of Secure Settings in 4.4.x in What You Need Section
- Mentions of Super User within Hibernate Google Play Services and more! section
Click to expand...
Click to collapse
update: Jan 09 2014
Updated:
Sync_Every_3_Hours
PowerAmp on/off Headphone
Facebook On/Off
Airplane Mode
Night_Sound_Off
Quantum kernel undervolting table + gov
Added:
Boot Minimizer - Fixes google play services hibernation problem
Location Scan
Maps+GPS
Home And College Profiles, I couldn’t xport the profiles for some reason but you can
Figure it out I think
App Ops options
Tasker Preferences
Secure settings app
TaskKill Tasker Plugin [Root]
Click to expand...
Click to collapse
update: Dec, 15 2013
Kernel Voltages
- Added ktoonsez voltages/freq
- Lowered voltage table 1.5Ghz and down. Trickster mod tops out at 1.5. Just go up 25mV every 2 steps "104Mhz".
Click to expand...
Click to collapse
update: Dec, 12 2013
How to Hibernate Google Play Services
Click to expand...
Click to collapse
update: Dec, 11 2013
Fixed:
- Airplane mode - Sunday subtracted.
- Sync - Single Profile 2 hour sync time.
- Google Play Services hibernate (hope it works/helps)
Added:
- .nomedia to folders media scan tip
- Lower undervolts for steps 1.35ghz to 384mhz
- Lowered screen off min freq (gov edit)
- PowerAmp Profile
- Titanium Backup Profile
- Night Sound Off Profile
Click to expand...
Click to collapse
To do:
- Enabled airplane mode with radio turned on so you don't miss those calls or texts if possible
- Tasker voice command hibernation & App execution http://getpocket.com/a/read/494766984 ? I think I'm onto something lol.
-Try eliminate Google all together. Create new profiles and add alternate sync options to sync contacts to cloud server of choice (Home server).
Click to expand...
Click to collapse
I hit that thanks button for ya. I especially like the tasker profile to hibernate everything. I'm going to give this ROM I threw on late last night a few days to settle before judging my battery life. Thanks for the tutorial!
CrackerTeg said:
I hit that thanks button for ya. I especially like the tasker profile to hibernate everything. I'm going to give this ROM I threw on late last night a few days to settle before judging my battery life. Thanks for the tutorial!
Click to expand...
Click to collapse
Thanks! I hope the profiles work. If not, let me know and I'll try make sure I organize them accordingly.
SkyboneNoya said:
Thanks! I hope the profiles work. If not, let me know and I'll try make sure I organize them accordingly.
Click to expand...
Click to collapse
The hibernate one is definitely working. I tested it by opening up a bunch of "greenified" apps and backing out then locking up the phone. Opened up greenify and they were definitely sleeping. Its something I hadn't thought of before and it looks like its going to help tremendously. Also, the thread you linked for greenifying Google Play services was another help. That reminds me. Gotta thank that guy too.
Xposed airplane mode just kicked in. Should save more battery now than the 1% an hour I lost since hibernating google play services.
I was not using the xposed airplane mode with tasker since 4.3.1 so this should be interesting as I have another 89% battery to go and Quantum v3 RC5 is a beast!
Update: no screenshot yet, but I'm at 49% @ 2 days 2 hours 26 min w/ two hours screen time, some calls, sync, text and music playback.
unfortunately for me... anything below 875mv @ 384mhz V4A starts to act up. Functionality over battery I suppose
mbze430 said:
unfortunately for me... anything below 875mv @ 384mhz V4A starts to act up. Functionality over battery I suppose
Click to expand...
Click to collapse
try 486 at the same voltage. Not all phone's are the same though, also, decreasing by 25 and letting it run and going down another 25mV is always the best approach.
Tasker profiles are not working for me. I cannot import them into Tasker.
SkyboneNoya said:
try 486 at the same voltage. Not all phone's are the same though, also, decreasing by 25 and letting it run and going down another 25mV is always the best approach.
Click to expand...
Click to collapse
I tried 486mhz sub 875mv still does the same... so I have 875mv across the lower frequencies... it is what it is.. I ain't even sweating... I enjoy my music more than battery
mbze430 said:
I tried 486mhz sub 875mv still does the same... so I have 875mv across the lower frequencies... it is what it is.. I ain't even sweating... I enjoy my music more than battery
Click to expand...
Click to collapse
Which setting do you use for V4A?
Battery Saving: Available for all processors with NEON.
High Quality Mode: Available for processors with NEON.
Super Audio Quality: Available for processors with NEON.
I'm on High Quality Mode if that helps.
I know there are some issues with music playback on PowerAmp mentioned in the Quantum forums. Hopefully it gets fixed with the release of 4.4 nightlies soon.
Also, what cpu are you using (I see from settings/about I'm running Armv7 Processor rev 4 (v7I)
Aaron78 said:
Tasker profiles are not working for me. I cannot import them into Tasker.
Click to expand...
Click to collapse
Try unzip them and import with holding the home button bottom left on screen in tasker. You also might have to enable (Allow external Access) in pref/misc tab in tasker.
I've been using tasker for awhile so I don't remember the steps taken to make everything work. Although, I'm happy to try and help!
I will try get the rest of the profiles in the To do: section and current download set into individual downloads as soon as I'm free of this hell called finals.
Stay tuned!
SkyboneNoya said:
Which setting do you use for V4A?
Battery Saving: Available for all processors with NEON.
High Quality Mode: Available for processors with NEON.
Super Audio Quality: Available for processors with NEON.
I'm on High Quality Mode if that helps.
I know there are some issues with music playback on PowerAmp mentioned in the Quantum forums. Hopefully it gets fixed with the release of 4.4 nightlies soon.
Also, what cpu are you using (I see from settings/about I'm running Armv7 Processor rev 4 (v7I)
Click to expand...
Click to collapse
I am on an ATT SGH-I747 so the ARMv7, and I have it set on HQ Mode, not Super Audio Quality mode.
I believe I have the v1 of the snapdragon chip which is known not to do UV very well. (at least that is what I have been telling myself to sleep better at nights)
If I don't use V4A, I can undervolt to those voltage... and be stable, but the squeeching and popping really hurts my ears when I go below 875mv
Don't know if you guys have have checked this out but it's amazing so far. This thread coupled with some others should be insane battery life
http://forum.xda-developers.com/showthread.php?t=2393708
KT-SGS4 [Kernel] Builds [TMO,ATT,SPR,VZW,INTL] [AOSP/TW/GE - 4.4/4.3/4.2]
Sent from my SCH-I545 using Tapatalk
bensl84 said:
Don't know if you guys have have checked this out but it's amazing so far. This thread coupled with some others should be insane battery life
http://forum.xda-developers.com/showthread.php?t=2393708
KT-SGS4 [Kernel] Builds [TMO,ATT,SPR,VZW,INTL] [AOSP/TW/GE - 4.4/4.3/4.2]
Sent from my SCH-I545 using Tapatalk
Click to expand...
Click to collapse
Extreme overclocking profiles nice. Looks like a big read lol.. Back to the essay.
I was at 2 days 20 hours or so with 30% battery left on 2 hours screen and my phone reboots after updating zooper widget... I read that part in the change log afterwards (will reboot on update sorry) pff... So it reset my counter to 2 days 9 hours. I really wanted a screen shot of at least 3 days lol. Next time.
SkyboneNoya said:
Extreme overclocking profiles nice. Looks like a big read lol.. Back to the essay.
I was at 2 days 20 hours or so with 30% battery left on 2 hours screen and my phone reboots after updating zooper widget... I read that part in the change log afterwards (will reboot on update sorry) pff... So it reset my counter to 2 days 9 hours. I really wanted a screen shot of at least 3 days lol. Next time.
Click to expand...
Click to collapse
I was unable to get Google Play Services to hibernate... Than it dawned on me... the stock Kit Kat Launcher uses Google Play Services... Shame, I really like it. Time to find a new launcher. I switched to Apex for now and Google Play Services is staying hibernated.
KorGuy123 said:
I was unable to get Google Play Services to hibernate... Than it dawned on me... the stock Kit Kat Launcher uses Google Play Services... Shame, I really like it. Time to find a new launcher. I switched to Apex for now and Google Play Services is staying hibernated.
Click to expand...
Click to collapse
Try unchecked the telephony Sms in greenify paid. I see my gsf hibernation with the google launcher.
Thanks so much for this. I knew about all of these except for the tasker profiles. I get great battery life already, but never thought to use tasker with greenify. I already notice significant battery savings with the hibernate when the screen goes off profile!
Wow, looks awesome.
I like the looks of this! If it keeps performing like this I couldn't get the battery lower then 50% today....
Thanks for the tips!
Edit: looks like screenshot isn't getting in reply, 13% battery used, 48 minutes of screen on...
Sent from my HTC One using XDA Premium 4 mobile app
Thanks for the tips, my battery life is way better now.
Just one question : when I greenify Play Services I lose push notifications for Whats App or Facebook messenger. Is it normal or is it just me ?
I'm using Xposed with the Greenify donation.
Thanks for your help.
Ktoonsez presents:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
KT-NOTE4 kernel features
•Must have a Note 4 model N910T or N910P or N910W8
•Must have a Touchwiz Rooted ROM
•Must have CWM/TWRP based recovery installed
•Samsung open source
•Optimized kernel configuration
•unsecure root adb
•Voltage interface
•KTweaker app for kernel control
•KTweaker Widgets
•Schedulers (CFQ, BFQ, VR, SIO, NOOP, DEADLINE, ROW, FIFO, FIOPS)
•GOVERNORS (ktoonservativeq, intellidemand, msm-dcvs, wheatley, userspace, smartassh3, slp, powersave, pegasuq, nightmare, interactive, dancedance, conservative, badass, asswax, adaptive, abyssplug, performance, ondemand
•exFAT for Touchwiz
Click to expand...
Click to collapse
Touchwiz Kitkat 4.4 VERSION:
11.11.2014: http://goo.gl/IG2O5Q
Click to expand...
Click to collapse
Always do the following AFTER installing the kernel:
1. Clear cache
2. Clear dalvik
Post #2 will be reserved for change logs
Post #3 will be reserved for MY Settings, Extras and FAQ's
Sources can be found here:
https://github.com/ktoonsez/KTNOTE4
Change Log 12.08.2014
1. Added some Profiles to the KTweaker Shop, thanks to @zman2107 for helping out
2. Some tweaks to ktoonservativeq
3. Added Trinity Colors, thanks to @twistedumbrella for porting in the code
4. Added Bluetooth Min Mhz control
5. Added Music/Media Min Mhz control
6. Added bfq scheduler
Change Log 11.13.2014
1. Rebase kernel source on N910F
2. NOW Working on F and G models!!!!!!!!!!!!!!!
3. Make ramdisk universal so its working on all Qualcomm variants
4. Add Fast Charge from my S4/S5 code
5. Increase bandwidth fro OC steps from @twistedumbrella
6. Removed a butt load of dmesg spam
Change Log 11.11.2014
1. Initial release
2. Based on Samsung source from N910T model
3. Added multi compatibility for multiple models
4. Removed root restrictions from kernel
5. Made selinux permissive
6. Added voltage control
7. Added OC to 3072 Mhz
8. Added KThermal
9. Added KT Hotplug
10. Lots more stuff to come!!!!!!!!!!!!!!!!!!!!!!!!
11. Linaro -O3 compiled plus Make file opto's
12. Added bfq scheduler
13. There is lots of stuff in KTweaker not enabled yet so only use the stuff that is listed in this change log!!!
ktoonservativeq explained:
***** NOTES *****
Any item with the word cycle in it refers to how many sampling_rate's have occurred.
Examples:
A "boost_hold_cycles" of 22 and a sampling_rate of 45000 equates to 1 seconds of holding your Mhz at the boost level.
A block_cycles_offline_screen_on of 11 and a sampling_rate of 45000 equates to a half of a second block before it takes cores offline.
***** NOTES *****
block_cycles_offline_screen_off =1
How many sampling_rate cycles need to occur before a core is allowed to go OFFLINE while the screen is OFF.
block_cycles_offline_screen_on = 11
How many sampling_rate cycles need to occur before a core is allowed to go OFFLINE while the screen is ON.
block_cycles_online_screen_off = 11
How many sampling_rate cycles need to occur before a core is allowed to go ONLINE while the screen is OFF.
block_cycles_online_screen_on = 3
How many sampling_rate cycles need to occur before a core is allowed to go ONLINE while the screen is ON.
block_cycles_raise_screen_off = 11
How many sampling_rate cycles need to occur before the current Mhz is allowed to be raised while the screen is OFF.
block_cycles_raise_screen_on = 3
How many sampling_rate cycles need to occur before the current Mhz is allowed to be raised while the screen is ON.
boost_2nd_core_on_button_screen_off = 1
When this item is a 1, it will turn on the 2nd core when a button any hard button is pressed while the screen is OFF. 0 leaves the core in its current state.
boost_2nd_core_on_button_screen_on = 1
When this item is a 1, it will turn on the 2nd core when a button any hard button is pressed while the screen is ON. 0 leaves the core in its current state.
boost_3rd_core_on_button_screen_off = 0
When this item is a 1, it will turn on the 3nd core when a button any hard button is pressed while the screen is OFF. 0 leaves the core in its current state.
boost_3rd_core_on_button_screen_on = 0
When this item is a 1, it will turn on the 3nd core when a button any hard button is pressed while the screen is ON. 0 leaves the core in its current state.
boost_4th_core_on_button_screen_off = 0
When this item is a 1, it will turn on the 4nd core when a button any hard button is pressed while the screen is OFF. 0 leaves the core in its current state.
boost_4th_core_on_button_screen_on = 0
When this item is a 1, it will turn on the 4nd core when a button any hard button is pressed while the screen is ON. 0 leaves the core in its current state.
boost_hold_cycles = 22
How many sampling_rate cycles need to occur before going out of CPU/GPU boost mode
disable_hotplug = 0
When this item is a 1, it disables hotplugging so all cores stay on full time. 0 lets all cores turn on and off when needed.
disable_hotplug_bt = 0
When this item is a 1, it disables hotplugging so all cores stay on full time while paired to a bluetooth device and doing bluetooth activities like playing music, transfering files.... 0 doesn't do anything extra to the cores when doing bluetooth functions.
disable_hotplug_chrg = 0
When this item is a 1, it disables hotplugging so all cores stay on full time while charging the device. 0 doesn't do anything extra to the cores while charging.
disable_hotplug_media = 0
When this item is a 1, it disables hotplugging so all cores stay on full time while playing music or movies. 0 doesn't do anything extra to the cores while music or movies are playing.
down_threshold_screen_off = 52
A percentage of CPU utilization that needs to occur before the current Mhz begins to lower while screen is OFF.
down_threshold_screen_off_hotplug_1 = 35
A percentage of CPU utilization that needs to occur before the 2nd core is taken offline while screen is OFF.
down_threshold_screen_off_hotplug_2 = 45
A percentage of CPU utilization that needs to occur before the 3rd core is taken offline while screen is OFF.
down_threshold_screen_off_hotplug_3 = 55
A percentage of CPU utilization that needs to occur before the 4th core is taken offline while screen is OFF.
down_threshold_screen_on = 52
A percentage of CPU utilization that needs to occur before the current Mhz begins to lower while screen is ON.
down_threshold_screen_on_hotplug_1 = 35
A percentage of CPU utilization that needs to occur before the 2nd core is taken offline while screen is ON.
down_threshold_screen_on_hotplug_2 = 45
A percentage of CPU utilization that needs to occur before the 3rd core is taken offline while screen is ON.
down_threshold_screen_on_hotplug_3 = 55
A percentage of CPU utilization that needs to occur before the 4th core is taken offline while screen is ON.
freq_step_lower_screen_off = 8
How many steps from the Mhz table (the entire Mhz table can bee seen in the CPU Voltage screen) it skips when lowering the current Mhz while the screen is OFF.
freq_step_lower_screen_on = 2
How many steps from the Mhz table (the entire Mhz table can bee seen in the CPU Voltage screen) it skips when lowering the current Mhz while the screen is ON.
freq_step_raise_screen_off = 1
How many steps from the Mhz table (the entire Mhz table can bee seen in the CPU Voltage screen) it skips when raising the current Mhz while the screen is OFF.
freq_step_raise_screen_on = 5
How many steps from the Mhz table (the entire Mhz table can bee seen in the CPU Voltage screen) it skips when raising the current Mhz while the screen is ON.
ignore_nice_load = 0
If this value is "1," the system will ignore "Nice" processes when deciding to scale up or down. Nice processes are used by the IO scheduler to designate a low-priority process. Ignore nice load basically tells a governor to disregard processes with higher nice values.
lockout_2nd_core_hotplug_screen_off = 0
This is a 3 way option. While the screen is OFF, 0 = Hotplug Normal so the core will go on and off as needed, 1 = Lock this core always ON, 2 = Lock this core always OFF.
lockout_2nd_core_hotplug_screen_on = 0
This is a 3 way option. While the screen is ON, 0 = Hotplug Normal so the core will go on and off as needed, 1 = Lock this core always ON, 2 = Lock this core always OFF.
lockout_3rd_core_hotplug_screen_off = 0
This is a 3 way option. While the screen is OFF, 0 = Hotplug Normal so the core will go on and off as needed, 1 = Lock this core always ON, 2 = Lock this core always OFF.
lockout_3rd_core_hotplug_screen_on = 0
This is a 3 way option. While the screen is ON, 0 = Hotplug Normal so the core will go on and off as needed, 1 = Lock this core always ON, 2 = Lock this core always OFF.
lockout_4th_core_hotplug_screen_off = 0
This is a 3 way option. While the screen is OFF, 0 = Hotplug Normal so the core will go on and off as needed, 1 = Lock this core always ON, 2 = Lock this core always OFF.
lockout_4th_core_hotplug_screen_on = 0
This is a 3 way option. While the screen is ON, 0 = Hotplug Normal so the core will go on and off as needed, 1 = Lock this core always ON, 2 = Lock this core always OFF.
no_extra_cores_screen_off = 1
When set to a 1, this option keeps all extra CPU cores offline while the screen is OFF. 0 lets it hotplug them on and off as needed
sampling_down_factor = 1
NOT USED!
sampling_rate = 45000
The amount of milliseconds that the governor will analyze the CPU usage and adjust for changes in load while the screen is ON.
sampling_rate_min = 10000
READ-ONLY value that specifies the lower value that "sampling_rate" and "sampling_rate_screen_off" will accept.
sampling_rate_screen_off = 45000
The amount of milliseconds that the governor will analyze the CPU usage and adjust for changes in load while the screen is OFF.
super_conservative_screen_off = 0
With the screen OFF: When set to a 1, this option will explicitly obey your block cycles settings to be a super battery saver (Setting a 1 will slow down the UI a little bit). When set to a 0 it uses fuzzy logic on the "block cycle" items.
super_conservative_screen_on = 0
With the screen ON: When set to a 1, this option will explicitly obey your block cycles settings to be a super battery saver (Setting a 1 will slow down the UI a little bit). When set to a 0 it uses fuzzy logic on the "block cycle" items to create a smooooooth UI experience.
sync_extra_cores_screen_off = 0
With the screen OFF: When set to a 1, all online cores will be sync'd to the same speed as core 0. When set to a 0, all cores will operate at speeds independant of each other.
sync_extra_cores_screen_on = 0
With the screen ON: When set to a 1, all online cores will be sync'd to the same speed as core 0. When set to a 0, all cores will operate at speeds independant of each other.
touch_boost_2nd_core = 1
When set to a 1, this option turns on the 2nd core when the screen is touched. When set to a 0 it doesn't do anything extra to the cores.
touch_boost_3rd_core = 0
When set to a 1, this option turns on the 3rd core when the screen is touched. When set to a 0 it doesn't do anything extra to the cores.
touch_boost_4th_core = 0
When set to a 1, this option turns on the 4th core when the screen is touched. When set to a 0 it doesn't do anything extra to the cores.
touch_boost_cpu = 1804800
The Mhz that you want the online CPU's to jump to when the screen is touched.
touch_boost_cpu_all_cores = 0
When set to a 1, this option sets the current Mhz on all online cores to the selected touch_boost_cpu value.
touch_boost_gpu = 462400
This value specifies what Mhz the GPU should jump to when the screen is touched.
up_threshold_screen_off = 57
A percentage of CPU utilization that needs to occur before the current Mhz begins to raise while screen is OFF.
up_threshold_screen_off_hotplug_1 = 58
A percentage of CPU utilization that needs to occur before the 2nd core is put online while screen is OFF.
up_threshold_screen_off_hotplug_2 = 68
A percentage of CPU utilization that needs to occur before the 3rd core is put online while screen is OFF.
up_threshold_screen_off_hotplug_3 = 78
A percentage of CPU utilization that needs to occur before the 4th core is put online while screen is OFF.
up_threshold_screen_on = 57
A percentage of CPU utilization that needs to occur before the current Mhz begins to raise while screen is ON.
up_threshold_screen_on_hotplug_1 = 58
A percentage of CPU utilization that needs to occur before the 2nd core is put online while screen is ON.
up_threshold_screen_on_hotplug_2 = 68
A percentage of CPU utilization that needs to occur before the 3rd core is put online while screen is ON.
up_threshold_screen_on_hotplug_3 = 78
A percentage of CPU utilization that needs to occur before the 4th core is put online while screen is ON.
Other Governors and schedulers explained:
http://forum.xda-developers.com/showthread.php?t=1687578
http://forum.xda-developers.com/showthread.php?t=1369817
http://tinzdroid.blogspot.com/2012/07/android-kernel-governors-modules-io.html
http://forum.xda-developers.com/showpost.php?p=21638852&postcount=56
First
Everybody be sure to give @em0ney14 a big "THANKS" for the countless hours of testing the kernel while I spent countless hours doing the programming
@LuigiBull23
Man am I glad to see you here I was missing you over on the s4 forum! Love being able to rock your kernels from the s2 all the way here
Excellent! Flashing now, thanks for all your hard work throughout the years. I always rock KT whenever possible! :highfive:
Can you post stock kernel just in case .
BAD ASS NOTE 4
BACARDILIMON said:
Can you post stock kernel just in case .
BAD ASS NOTE 4
Click to expand...
Click to collapse
I cant but maybe someone else can, but if you are using somones ROM from the forum, all u have to do is flash the ROM again
re: official stock N910T Note 4 kernel
BACARDILIMON said:
Can you post stock kernel just in case .
BAD ASS NOTE 4
Click to expand...
Click to collapse
Here is a download link for the Tmobile N910T Note 4 stock kernel.
https://app.box.com/s/nj34un45zxdo01ygd1dk
Flash this kernel using Flashify.
Here is the Play Store link for Flashify in case you need it:
https://play.google.com/store/apps/details?id=com.cgollner.flashify
Good luck!
Misterjunky said:
Here is a download link for the Tmobile N910T Note 4 stock kernel.
https://app.box.com/s/nj34un45zxdo01ygd1dk
Flash this kernel using Flashify.
Here is the Play Store link for Flashify in case you need it:
https://play.google.com/store/apps/details?id=com.cgollner.flashify
Good luck!
Click to expand...
Click to collapse
Thanks fir that info mister junky, I also have a flashable for a near stock kernel kt and I was working on as a base if anyone has issues with this release let us know.
Cant seem to get cpu to go past 2649. I have it set with ktweak to 3000 but it stops at 2649
Sent from my SM-N910T using XDA Free mobile app
WOOT WOOT (I never understood why it is WOOT WOOT - versus WHOOO WHOOO - ? I never heard anyone ever go WOOT WOOT and prounce the T when they are really happy - more like WOO HOO - or something along those lines - well regardless The point is the same - and the sentiment is obvious - I am really glad to see you here - and just as glad to see you are brining us a new kernel -
Looking forward to flashing this and getting some ktnoonze kernel goodness on my NOTE 4 - thanks!
PS - who came up with the WOOT - versus the WOO ? Inquiring minds want to know.
Thanks Koontz. Downloading now. Be like the old a Asus tf101 days up in here.
chrisgto4 said:
Cant seem to get cpu to go past 2649. I have it set with ktweak to 3000 but it stops at 2649
Sent from my SM-N910T using XDA Free mobile app
Click to expand...
Click to collapse
What app r u using to see what spees its hitting? My KTMonitor app? Are you running a benchmark app to push the CPU?
ktoonsez said:
What app r u using to see what spees its hitting? My KTMonitor app? Are you running a benchmark app to push the CPU?
Click to expand...
Click to collapse
Im using ktmonitor. I tried the most cpu intensive apk i have. Video to gif.....it runs the cpu at avg 75-100% cpu usage. Then changed the governor to performance and set min/max to 3000. Still stayed at 2649. Other than that very impressed with kernel. Nice work
Sent from my SM-N910T using XDA Free mobile app
Man this is awesome.
Sent from my SM-N910T using Tapatalk
chrisgto4 said:
Cant seem to get cpu to go past 2649. I have it set with ktweak to 3000 but it stops at 2649
Sent from my SM-N910T using XDA Free mobile app
Click to expand...
Click to collapse
Click main settings - CPU Settings - then select - enable OC settings - then set your CPU to what you want to set it to - I did these steps and had no issues.
Some things are not working yet - but I know it is very early in this kernel's life - more good things are sure to be coming soon.
chrisgto4 said:
Im using ktmonitor. I tried the most cpu intensive apk i have. Video to gif.....it runs the cpu at avg 75-100% cpu usage. Then changed the governor to performance and set min/max to 3000. Still stayed at 2649. Other than that very impressed with kernel. Nice work
Sent from my SM-N910T using XDA Free mobile app
Click to expand...
Click to collapse
Here is a screen shot from em0ney, I know it works;
https://plus.google.com/u/0/photos/...6080647202194515042&oid=116366863869938231344
Hello Forum,
I have an Xiaomi Redmi Note 3 with Lineage Android 7.1.2. I have installed Firefox and USI extension for inserting JavaScripts. If something happens on a special website a script should play for 20 seconds a load sound [1]. Regardless if day or night.
Problem: The Sound is only played for a short time, its a 100 ms *dut* instead of a load 20 sec *duuuuut*
Additional settings:
1. I take Firefox out from the 'Settings->Battery Power Optimization', so it runs the whole night.
2. At night I use the 'Disturb only for important messages' Mode := DOFIM-Mode.
3. For 'Setttings->Notifications' I'll allow Firefox to disturb me.
Observations at day:
a) If the DOFIM-Mode is turned off and the screen is turned off since 20 minutes I get my 20 seconds beep.
b) If the DOFIM-Mode is turned manually on at daytime and the screen is on too, I also get my 20 seconds beep.
c) If the DOFIM-Mode is turned manually on at daytime and the screen is off since 20 minutes, its again the short 100 ms *dut*.
So I thing the battery optimization together with the DOFIM-Mode turns something off that I need to play a sound. What could it be?
I'm using a german rom, so I dont know the exact names of the menu points in english language, if something is unclear, please ask.
Thanks
Peter
[1] How the JavaScript make the sound:
Code:
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
var o = context.createOscillator();
o.type = 'sine';
o.frequency.value = 261.63;
o.connect(context.destination);
// Play Sinus for 20 sec:
o.start(0);
setTimeout(function() { o.stop(0); }, 20000);