• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[APP][TOOL] TeMeFI comprehensive system Administration

Search This thread

esszett

Senior Member
Jan 20, 2019
126
92
Sony Xperia Ion
Lenovo Zuk Z1
Hi @DiamondJohn & all,

I have been trying to find the optimal Doze settings for my device for quite some time now. Although I am reasonably satisfied, but as we know: better is always possible!

Finding the right balance between Light and Deep Doze is somewhat complicated and unfortunately varies from day to day. On days when I'm walking a lot, I'd prefer to just let the phone stay in light doze mode, while on days when the phone is mostly lying around, I'd prefer to skip light mode altogether. So every setting always comes down to a compromise.

In Android, there is the energy-saving mode. I actually find it pretty good for my needs, because there is no light doze and the device goes directly into deep sleep and stays there until I actually wake it (however, there are hourly, but unnecessary wakelocks). The AnyMotion function seems to be completely ignored.

When I try to reproduce this behavior using "device_idle_constants" (all "light" settings set to 0), I get exactly the desired behavior - if I don't move the phone. However, as soon as I move the smartphone, it rains wakelocks like crazy (several hundred thousand in a few hours). And, of course, that drains the battery a lot.

Has anyone ever successfully tried to reproduce the Battery Saver with "device_idle_constants"?

Thanks!
 
  • Like
Reactions: pocketrule

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
Hi @DiamondJohn & all,

I have been trying to find the optimal Doze settings for my device for quite some time now. Although I am reasonably satisfied, but as we know: better is always possible!

Finding the right balance between Light and Deep Doze is somewhat complicated and unfortunately varies from day to day. On days when I'm walking a lot, I'd prefer to just let the phone stay in light doze mode, while on days when the phone is mostly lying around, I'd prefer to skip light mode altogether. So every setting always comes down to a compromise.

In Android, there is the energy-saving mode. I actually find it pretty good for my needs, because there is no light doze and the device goes directly into deep sleep and stays there until I actually wake it (however, there are hourly, but unnecessary wakelocks). The AnyMotion function seems to be completely ignored.

When I try to reproduce this behavior using "device_idle_constants" (all "light" settings set to 0), I get exactly the desired behavior - if I don't move the phone. However, as soon as I move the smartphone, it rains wakelocks like crazy (several hundred thousand in a few hours). And, of course, that drains the battery a lot.

Has anyone ever successfully tried to reproduce the Battery Saver with "device_idle_constants"?

Thanks!
Doze setting are generally working on IF statements about what is happening on your phone. There are 10+ different settings, and one of them is something like how long after moveent to allow doze;which wouldbe when you are walking. If that would suffice, that up to you to create your personal profile. I have include a description of each parameter to make that easier.

But, it sounds like you are not satisfied with that.

The other choice, which sounds more likely to satisfy your requirements is explicit switching.

I use a custom launcher which allows scripts to be run on secret hot-spots or specific gestures on an area (a hot-spot or a swipe on an existing icon). I use it to run a force-stop on a long list of apps and then shut my screen off. You could get some script to switch you doze profile on request. There are many ways to trigger a shell script. Only you would know the way you need your phone to run. I swipe up or down in my weather widget and that turns AIOD on or off. Wee all have slightly different ways we want out devices to react.
 
  • Like
Reactions: pocketrule

esszett

Senior Member
Jan 20, 2019
126
92
Sony Xperia Ion
Lenovo Zuk Z1
Doze setting are generally working on IF statements about what is happening on your phone. There are 10+ different settings, and one of them is something like how long after moveent to allow doze;which wouldbe when you are walking. If that would suffice, that up to you to create your personal profile. I have include a description of each parameter to make that easier.

But, it sounds like you are not satisfied with that.
Exactly ;)
I did several "experiments" with different doze settings (BatteryGuru's doze settings, system's battery saver, OS's Aggressive Idle settings, your comatoes settings, and, of course, many own settings). After a battery cycle I analyze the battery dump with BatteryHistorian.

As far as I can see and understand, the "motion_inactive_timeout" causes the device not to switch back to deep doze mode for this period after a movement, but to stay in light doze which ignores AnyMotion. During deep doze, the system always expects feedback from AnyMotion - as soon as motion is detected or if you deactivate the AnyMotion function/sensor, the system exits deep doze or never even reaches deep doze respectively. However, I've not yet tested how the system behaves when I set the light Idle values to 0 and this motion timeout parameter to e.g. 43200000 (12h). Maybe this will bring me closer to "recreating" the system energy saving mode with more aggressive timeouts, which more or less completely ignores AnyMotion and only wakes up the device for maintenance task.

I hoped someone already tried & tested that :)


The other choice, which sounds more likely to satisfy your requirements is explicit switching.
That would be my non-prefered option that I would use as a real last resort because that would be too inconvenient for me on a day to day basis. Thanks anyway!


Thank you for taking time to deal with my "problem" and answer me! :)
 
  • Like
Reactions: pocketrule

HippoMan

Senior Member
May 5, 2009
1,818
637
Hippoland
This current discussion about doze got me thinking about a long-standing, tangential issue that I have been facing, and now I'm wondering whether perhaps TeMeFI could possibly help.

I'm running Android 10 on my OnePlus 7Pro. This OS version and several earlier versions are trying to be helpful with regard to battery life, but in the process, they seem to have made my everyday mobile-device life to be worse.

There are some apps that I regularly run which respond to push messages. Because of Android's battery-life-conservation conventions, these apps often do not receive their push messages in a timely manner, because Android has apparently killed them after a period of non-use, or at least somehow made them dormant and not responsive to these push messages.

This occurs even though I have set battery optimization to "Don't optimize" for each of these apps.

These delayed push messages sometimes cause major headaches for me when someone or some service that I want to hear from do not reach me in a timely fashion.

Is there any way that TeMeFI might be able to help me keep these apps always alive on my device, so that I do not miss these push messages? I understand that this would lower my battery life, but I am gladly willing to live with this, at least with regard to these particular apps.

This is sort of the opposite of "doze". Perhaps I could call this feature "insomnia".

If this is out of the realm of TeMeFI capabilities, can anyone offer any other suggestions?

Thank you in advance.

PS: The following article discusses the problem in a little more detail. It apparently has been an issue since at least as far back as Marshmallow:
https://androidforums.com/threads/m...x-is-preventing-doze-with-macrodroid.1058445/

The author of that article talks about how this was solved for a specific email app. However, that is not a general solution. I posted this article simply to illustrate how this has been a known problem in Android for a while.
 
Last edited:
  • Like
Reactions: pocketrule

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
This current discussion about doze got me thinking about a long-standing, tangential issue that I have been facing, and now I'm wondering whether perhaps TeMeFI could possibly help.

I'm running Android 10 on my OnePlus 7Pro. This OS version and several earlier versions are trying to be helpful with regard to battery life, but in the process, they seem to have made my everyday mobile-device life to be worse.

There are some apps that I regularly run which respond to push messages. Because of Android's battery-life-conservation conventions, these apps often do not receive their push messages in a timely manner, because Android has apparently killed them after a period of non-use, or at least somehow made them dormant and not responsive to these push messages.

This occurs even though I have set battery optimization to "Don't optimize" for each of these apps.

These delayed push messages sometimes cause major headaches for me when someone or some service that I want to hear from do not reach me in a timely fashion.

Is there any way that TeMeFI might be able to help me keep these apps always alive on my device, so that I do not miss these push messages? I understand that this would lower my battery life, but I am gladly willing to live with this, at least with regard to these particular apps.

This is sort of the opposite of "doze". Perhaps I could call this feature "insomnia".

If this is out of the realm of TeMeFI capabilities, can anyone offer any other suggestions?

Thank you in advance.

PS: The following article discusses the problem in a little more detail. It apparently has been an issue since at least as far back as Marshmallow:
https://androidforums.com/threads/m...x-is-preventing-doze-with-macrodroid.1058445/

The author of that article talks about how this was solved for a specific email app. However, that is not a general solution. I posted this article simply to illustrate how this has been a known problem in Android for a while.
Sorry, too much to read as it is, so I did not follow the link. And to be honest, I skim read what you posted here.

When I have had issues with apps being killed by the system, against my will. I use (and hence created) the OOM and LMK (Low Memory Killer NB LMK is not there in A12, it was in A8, not sure when it stopped being a part of android) methods in TeMeFI.
OOM can be found at:
Application Info / Manage>State>OOM>OOM an app to Superman [-17]>*
I also use to set the thread priority (the "Nice")to high, just for good measure on my problematic app.
Application Info / Manage>State>Nice>Nice an app to Highest [-20]>*

There is also a file to lock specific apps out from doze, but from memory, its a little more work for the user (but TeMeFI gives you an inroad), and I never had to use it. For example, the playstore is excluded from Doze by inclusion in this XML file, so seeing where this is stored, gives you an inroad of what needs to be changed to add your own app, and exclude it from doze.

As I said, i didnt read the article.But if the app is not killed (see OOMabove) then in doze, you need more maintenance periods for apps to raise their notifications. My Comatozed profile explicitly limits these to very very long windows, so its not good for these types of apps. I have even noticed that the time on my AOD stops changing! it freezes time!
 

HippoMan

Senior Member
May 5, 2009
1,818
637
Hippoland
[ ... etc. ... ]

There is also a file to lock specific apps out from doze, but from memory, its a little more work for the user (but TeMeFI gives you an inroad), and I never had to use it. For example, the playstore is excluded from Doze by inclusion in this XML file, so seeing where this is stored, gives you an inroad of what needs to be changed to add your own app, and exclude it from doze.

[ ... etc. ... ]

Thank you very much!

Even though I only quoted part of your response, I did indeed read all of it ... and I did not skim. :)

I reset the OOM and Nice values for one of the apps in question, as you described. So far, so good, but let's see if that indeed keeps the app alive enough to no longer miss any subsequent push messages that will be sent to it.

Regarding the portion of your message that I quoted, how can I find out more infomation about that XML file for locking apps out from doze? ... i.e., where that file might be stored and perhaps some info about how it is used?

Thank you again.
 
Last edited:
  • Like
Reactions: pocketrule

HippoMan

Senior Member
May 5, 2009
1,818
637
Hippoland
I think I found the info about that XML file ...
Create a *.xml file with any name and add following content:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<config>
  <allow-in-power-save package="com.your.package.name" />
  <allow-in-power-save-except-idle package="com.your.package.name" />
</config>

Remount your system partition mount -o remount,rw /system and copy the file to your /system/etc/sysconfig/ folder. You may also remove the preinstalled *.xml files to disable the forced system services.

In case anyone is interested, I found that info on the following web page:
https://android.stackexchange.com/questions/129074/is-there-a-way-to-exclude-an-app-from-doze

Is this the XML file that you were referring to?
 
Last edited:
  • Like
Reactions: pocketrule

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
I think I found the info about that XML file ...


In case anyone is interested, I found that info on the following web page:
https://android.stackexchange.com/questions/129074/is-there-a-way-to-exclude-an-app-from-doze

Is this the XML file that you were referring to?
I just scrolled past it quickly. I did see the dumpsys device idle whitelist, which from memory is also in TeMeFI. (phone flat right now, just got back from being out all day with screen on)

The file I saw is a small XML file, that would currently have the playstore in it, and maybe one or two other google apps. It is visibleeither explicitly as an item (try a menu search) or is easy to get to (when you know which one that is) using the dynamic lists enable file browsing.

The other thing to mention,even after you stop it being killed, but haven't excluded it from doze, you can shorten the doze maintenance windows to allow it to raise its notifications.
 
  • Like
Reactions: pocketrule

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
@HippoMan Another thing to ensure is that the app is not being killed because your device is simply running out of memory (touches on LMK). Also try adding a large swap file. Which of course can be done with TeMeFI. NB: Disappears on boot if you dont run a boot scipt.
 
Last edited:

HippoMan

Senior Member
May 5, 2009
1,818
637
Hippoland
@HippoMan Another thing to ensure is that the app is not being killed because your device is simply running out of memory (touches on LMK). Also try adding a large swap file. Which of course can be done with TeMeFI. NB: Disappears on boot if you dont run a boot scipt.
Thank you.

I have checked, and I have plenty of swap space. I'm thinking that perhaps my problem is not necessarily due to those apps being killed, but rather, something to do with push messages not being forwarded to these apps when they have been idle for too long, even though the apps are still running. I remember reading something about this on line a few days ago, but I can't find the article at the moment.

Anyway, thank you again for all your help. I'll keep investigating this.
 

varunpilankar

Senior Member
Jul 8, 2012
176
34
Sony Xperia SP
Moto X
I'm using @DiamondJohn aggressive profile and so far it's running great.

I'm just concerned about too many Wakelock - Alarms by Android System which are mainly *job.deadline and *job.delay

Not able to trace back which jobs are getting delayed or hits deadlines trouble.. But I think it does drain some battery as they number are large enough - like 900 or 1000+ sometimes.


Any fixes for this?
 

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
I'm using @DiamondJohn aggressive profile and so far it's running great.

I'm just concerned about too many Wakelock - Alarms by Android System which are mainly *job.deadline and *job.delay

Not able to trace back which jobs are getting delayed or hits deadlines trouble.. But I think it does drain some battery as they number are large enough - like 900 or 1000+ sometimes.


Any fixes for this?
Job delay & deadline will be caused by apps requesting the system for that service. You will need to find out which/what is causing them. In TeMeFI, there are numerous wake-lock reports. The first that comes to mind is in the battery History extras, under textural events, there is wake-lock, Wake reason and even wake-up app

Also, if you take a log as per the better battery stats thread requires, there are people there who will help you delve deeper.
 
Last edited:
  • Like
Reactions: pocketrule

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
Can you also point me to where I can backup my current profile?
Your currenrt profile is kind of stored in two ways. Your ROM will boot with a fixed preset profile, but your settings (which is how I change it) can override these.

So, for the second, the script to set / preview (from memory) explicitly provides the script to roll back any changes that would be made.

As for the ROM based ones, if you have not modified it or clear the settings, the actual values are available in the textural report Currently Running>Doze>Device Idle History

Screenshot_20211130-105508.png

I think, setting to the "CURRENT"will give you the backup script, and set it to what it is currently.
 
Last edited:

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
@DiamondJohn From a Doze aspect, in order to keep an app working in the background, do I select from the 'Ignore App Wakelock' feature before or after I select from one of the built-in profiles?
There are over 500+ methods. I have not had to test every method "in anger". I have based a lot of the default android items as documented (as opposed to things like the battery history graph which is mostly my dev) I personally have not had to use "Ignore Wake Lock", so I can only go off the doco, which is available to you also.

Now, you ask would "Ignore Wake Lock" "keep an app running in the background", I would say it would do the EXACT OPPOSITE. Its the wake-locks that allow an app to run. Ignoring a wake lock would keep the app inactive, as it wont be allowed to wake up the device to do its work.
 

Chairmansaab

Senior Member
Dec 25, 2011
508
131
Amritsar
I'm using @DiamondJohn aggressive profile and so far it's running great.

I'm just concerned about too many Wakelock - Alarms by Android System which are mainly *job.deadline and *job.delay

Not able to trace back which jobs are getting delayed or hits deadlines trouble.. But I think it does drain some battery as they number are large enough - like 900 or 1000+ sometimes.


Any fixes for this?
Code:
dumpsys deviceidle force-idle deep
dumpsys deviceidle unforce

I read your previous message where you used Tasker to execute shell commands on display on and off, I'm doing the same thing and stumbled on this thread via Google search. Is there any downside to forcing it via shell command (tasker) vs an Aggressive profile? Which one is better? I'd like an opinion of DiamondJohn on this as well. I'm using Tasker for other stuff, either way it'll keep running in the background.

My usage: I've factory reset the phone and only have about 6 apps, none of them require notifications, I'm not a heavy user.
 

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
Code:
dumpsys deviceidle force-idle deep
dumpsys deviceidle unforce

I read your previous message where you used Tasker to execute shell commands on display on and off, I'm doing the same thing and stumbled on this thread via Google search. Is there any downside to forcing it via shell command (tasker) vs an Aggressive profile? Which one is better? I'd like an opinion of DiamondJohn on this as well. I'm using Tasker for other stuff, either way it'll keep running in the background.

My usage: I've factory reset the phone and only have about 6 apps, none of them require notifications, I'm not a heavy user.
I dont use tasker.

The reason I use an aggressive doze is for battery saving. Tasker adds to battery consumption, whereas a doze profile is using the already running system. Another benefit of using a doze profile, is that it allows a timeout when switching the screen off for apps to prepare for doze. Also, if you have an app that manages to wake your phone out of deep-idle and into light-idle without switching your screen on, then tasker is not going to catch it, and hence your phone is out of deep-idle until the profile says so.
 
  • Like
Reactions: pocketrule

varunpilankar

Senior Member
Jul 8, 2012
176
34
Sony Xperia SP
Moto X
Code:
dumpsys deviceidle force-idle deep
dumpsys deviceidle unforce

I read your previous message where you used Tasker to execute shell commands on display on and off, I'm doing the same thing and stumbled on this thread via Google search. Is there any downside to forcing it via shell command (tasker) vs an Aggressive profile? Which one is better? I'd like an opinion of DiamondJohn on this as well. I'm using Tasker for other stuff, either way it'll keep running in the background.

My usage: I've factory reset the phone and only have about 6 apps, none of them require notifications, I'm not a heavy user.
@DiamondJohn is right... I tried using tasker on display event trigger, it does trigger too many wakelock alarms (monitored using BBS). You can still try it yourself to see if you get some different results - keep us posted.

I finally settle on using @DiamondJohn aggressive profile on the boot script from his app and did some modifications to my taste. now it is running great.
 

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
...snip...

I finally settle on using @DiamondJohn aggressive profile on the boot script from his app and did some modifications to my taste. now it is running great.
On my kast two devices, I only had to set it once, and it stuck through a reboot. I gave the bootscript as that was one of the first things I built, and I ponly had the one device, so couldnt check if it was only my device that it stuck.

Our of interest (and for others) Did you check before you made it a boot script if it already stuck between boots?
 
  • Like
Reactions: pocketrule

DiamondJohn

Recognized Contributor
Aug 31, 2013
5,857
5,699
Sydney
another thing that occurred to me after I posted, it would of been trivial for Google to mimic your tasker effect, of forcing doze immediately on screen off, but instead they engaged many people brighter than you & I spend hours and hours and thus $$$ & $$$ on developing the automated doze mechanism.
 

Top Liked Posts

  • 2
    Link from the first post is not working - Dropbox file removed.
    2
    Link from the first post is not working - Dropbox file removed.
    OOoops... was running out of space and did a clean. A little too quickly and deleted the latest version instead of a previous version. Sorry. Its now fixed in the OP.
  • 9
    New Version v1.1.15

    The following items are of special interest
    • New latest build of SQLite 3.37.2
    • New menu item for latest changes to the base script. Previous/current changes list include changes to shared code which can trigger a change log for a LOT of scripts all sharing a tiny bit of code
    • Overlays at Currents State>Overlays My ROM is a bit buggy in that I can change the icon shapes but changing the colour doesn't appear to work. It appears to be something internal to Android
    • Added a "Distinct Differences" column output (ie a diff between a full count within a group and the distinct count within the group) to the dynamic SQL grouped Reports
    • [edit] Added compiler / performance improvements to some SQL. I can now run against a dB with 4.4+Million records, where previously SQLite spat the dummy.

    Download: SEE OP!

    New Items. within the menu at "TeMeFI Configuration>New Menu Items"

    Updated Items. within the menu at "TeMeFI Configuration>Latest Updated Menu Items"

    Enjoy and stay safe.
    3
    Regarding the SQLite3 included in TeMeFI. Its a "generic" ARM32 binary. Which of course works on 64bit devices. I recently recompiled the latest version and included it in the TeMeFI release, but I just compiled one for each architecture. Hence, I am personally running one that is specific for ARM64. There are also ones for X86 etc

    see the following post for the files and quick instructions,
    2
    Link from the first post is not working - Dropbox file removed.
    OOoops... was running out of space and did a clean. A little too quickly and deleted the latest version instead of a previous version. Sorry. Its now fixed in the OP.
    2
    @HipppoMan Waaaaaaaaiit a sec. Somewhere above you wrote how your specific device is known for killing off apps. Thats a completely different and new to me issue .

    If the app is being killed by the system (as opposed to being set to a doze mode), then what you should really be looking at is setting the OOM value to "Superman".. And while your there I would also set the Nice value to the highest, and the IONice to the highest in addition to adding it in the Whitelist. You may also wish to test adding a swap file to ensure enough free RAM is available. All of these are available within TeMeFI. Another thing to check is the developer settings, I have seen there is a setting for the number of apps to keep in memory. I *think* it defaults to 4 in my ROMs, but can be set to 1.

    I'm in a bit of a rush right now, so cant really read / respond much more, except.
    2
    ...

    Assigning apps to the "active" bucket is supposedly tantamount to my current forcing of apps into the foreground, and I will see if this fixes my push-notification problem.

    Perhaps the ability to assign apps to standby buckets could be added to TeMeFI.
    It looked interesting, so I had a look. I found some questionable behavior.
    The get returns a number, but you set it to either "active, working_set, frequent or rare"
    I then tried changing TeMeFI to "active" and did a get, then set it to "rare "and did a get again, and the number did not change between the extremes. It doesnt look like it works anymore. It is on a Pie page and I didn't find a reference to a latter version of android. It looked promising, but I think it does not work anymore.
    Code:
    sunfish:/ # am get-standby-bucket diamondjohndroid.utility.temefi
    5
    
    sunfish:/ # am set-standby-bucket diamondjohndroid.utility.temefi active
    sunfish:/ # am get-standby-bucket diamondjohndroid.utility.temefi
    5
    
    
    sunfish:/ # am set-standby-bucket diamondjohndroid.utility.temefi rare
    sunfish:/ # am get-standby-bucket diamondjohndroid.utility.temefi
    5
    PS: when setting the OOM / Nice etc you have to be certain its the service and not the UI
  • 109
    TeMeFI

    icon_source3.png

    This app provides/returns a bucket load of information regarding your device and the currently running ROM, and much, much more. And hence the name "TeMeFI"; as its Too Much F????? Information. The F stands for whatever your comfortable with.;)

    TeMeFI v1.1.15
    MD5: 4B5BCD2219C53A4621011A6C392B800D

    Simply download the APK and install as normal, and allow root when asked, and grant storage permissions. I *think* the very first time you run it, there possibly may be an issue with the menu. Simply stop and restart the app.

    You can use it without root, but you will be HEAVILY limited in what you can do. Also, installing busybox opens another menu for you, and so does Magisk (17.*+). SQLite3 is also a HUGE feature adder (ie if you have it, it enables many many methods). Can be installed via Magisk if your ROM does not have it by default.

    If you are unrooted, have a read of the following post, regarding a recently added feature for non-root users

    The "search" function is very useful for finding what you need, but it does not search inside dynamic menu's. Its the magnifying glass in the slide out toolbar/menu

    The current menu can be viewed within the app at TeMeFI Configuration>Show Whole Menu or a historic example at: CURRENT MENU [as at 2021-11-19]

    XDA:DevDB Information
    [APP][TOOL] TeMeFI comprehensive system documentation & action, App for all devices (see above for details)

    Contributors
    DiamondJohn

    Version Information
    Status:
    Stable
    Current Stable Version: 1.1.15
    Stable Release Date / Last Updated: 9 Jan 2022
    Current Beta Version:
    1.0.3
    Beta Release Date: 2018-06-21

    Created 2018-06-19

    I will fill in this page as I get around to it.
    19
    Fly-out Toolbar items and their Actions

    The fly out toolbar has had its buttons and their corresponding actions change over time. However of recent, they have been pretty stable, and as they have changed over time, and I probably said what / how their function changed, its probably all over the thread. So, I thought it might be best to have a single location / doco of what the current buttons actually do.

    Firstly, to display the toolbar, simply click on the menu. If it isn't already showing.
    MenuButton.png

    EVERY button, has both a "short-press" and "long-press" action.

    The icons kind-of relate to their short press action.

    NB The following are from v1.0..19 The main difference are a long press on the [<] arrow goes back to the previous results, and a long press of the [HOME} icon reloads the current menu (useful if you filtered the menu items), and a long press on the pencil icon saves off the action as a favourite. Also, the long press on the exit icon [X] acts to filter a menu list that was generated by code. eg any list of installed apps
    For Short-press actions:
    Shortpress menu actions.png

    For Long press actions
    Longpress menu actions.png

    If you get an error, a toast will be shown which is HEAVILY CUT DOWN, so please no screen shots! :mad: Also, in a recent release a Bomb Icon will appear on the screen after an error. Short press to display then FULL error, or long press the bomb to clear the error. It will not clear by itself.

    And again, NOT a screen shot of the results. Save off the results using the save button (ie the pencil icon explained above), then get the log text file from /sdcard/TeMeFI, and attach it to a post.

    please stop with the screenshots of a cut down error message :cry::cry::cry:
    16
    New Build!

    New Version v1.0.77

    Download: SEE OP!

    Notable changes are:
    v2 of detach apps from playstore NB: If you are already using it, simply reapply the method. Method 3 is recommended for YouTube, but all 3 have been upgraded
    Added touchable hot-spots to the mem info graph
    Added Timezone view and setting
    corrected the loading of the previous results when displaying the covid pages

    Updated Items. within the menu at "TeMeFI Configuration>Latest Updated Menu Items"
    Application Info / Manage>Detach Package from Playstore>Select Package then Protection Level v2
    Application Info / Manage>Detach Package from Playstore>List all configured detached apps
    Currently Running>Memory>Meminfo Usage Graph by Category
    Currently Running>Memory>Meminfo Usage Graph by Process
    Currently Running>Memory>Meminfo Usage Graph by OOM
    Various Ungrouped Extras>COVID-19 Status Update
    Various Ungrouped Extras>COVID-19 Status Update>COVID-19 Status Update Desktop

    New Items. within the menu at "TeMeFI Configuration>Latest Added Menu Items"
    Current State>Timezone>Set Current Timestamp (ROOT)
    Current State>Timezone>Set Current Timezone
    Current State>Timezone>Get Current Timezone
    Current State>Timezone
    Current State>Timezone>Get Current Timezone (ROOT)

    It is recommended that you delete ALL your existing favorites and re-create them, as they will run the old code/version.

    Enjoy and stay safe.
    14
    New Build!

    New Version v1.0.66

    This release is a major update.:eek:

    Download: SEE OP!

    • Added a new type of battery history graph. Type 4. This new one plots the battery drain % per hour (user selectable max range) with the colour of the block as the battery level %.
    • corrected spelling of "Manage Permission" to "Manage Permissions"
    • Removed duplicate battery reset, changed it to a short cut
    • Moved a bunch of battery stuff into a new menu of "Currently Running>Battery" INCLUDING the battery history graph
    • moved running processes into a sub menu
    • moved a bunch of dumpsys commands from various location to mostly be under the single menu item "Current State>Dumpsys"
    • Added LMK details
    • Added Setting of LMK min memory values
    • Added Setting of LMK min memory break OOM levels and their mod
    • On the new battery history graph, the horizontal ruler count depends on the % (4-4 lines, 25=5 lines, 50=5 lines 100=4 lines and 200 = 10 lines)
    • added a colour map/legend to battery history graphs that use it
    • Added a few other menu items/actions
    • Improved handling of device rotation/orientation and switching to another app and back again

    As you can see below, there have been a lot of changes to the internal code that run reports, and perform the actions.

    However, the BIG new feature is the "Currently Running>Battery>Battery History Graph", I have now added a new way to look at your battery history.
    "4. Discharge Rate as vertical height and Battery Level as the Gradient Colour (Green=100%, Red=0%)"​

    THIS NEW GRAPH IS THE BIG ADDITION! It is truly my latest obsession. It displays your battery discharge rate / hour as the vertical height (so the lower the better), and the colour of the graph shows your battery level (it should basically fade from green to red, left to right) And logically, the higher the graph, the faster the change in colours. NB: My phone has a removable battery, so you can see jumps where I changed battery, instead of charging the one in the device. Another interesting fact that comes out in the graph, is the jump in discharge (ie the height) during a boot and shutdown, which makes totally logical sense.:good:

    This graph is an early build, so should be considered a WIP:p. 90% of the time, it appears OK:victory:, but I have seen some questionable results (minor) if the device is rebooted and switched between charging often. I thought it was good enough for a first release :highfive:

    It takes some time in getting a firm grasp of exactly what you are looking at, but once you do, its like you can see the "Matrix" :cool:

    NB: This graph is in addition to the previously provided graphs.

    You can view the new graph at 4%/hour (with each horizontal line at 0.5% intervals), 25%/hour (with each horizontal line at 5% intervals), 50%/hour (with each horizontal line at 10% intervals), 100% (with each horizontal line at 25% intervals) and 200% (with each horizontal line at 10% intervals). (and a few others I added at the last minute:rolleyes:)

    An important concept to understand, is the 100% / hour would mean your battery would be dead in an hour, IIIFFFF the graph showed that it was running at full tilt for the full hour.

    There is also a colour chart/grid below the graph to help translate the colours to actual battery levels. But again, if you transfer the file to a pc, the mouse hover should give you the details (I didn't test it, but I did not change it either)

    When its charging, it may appear to flip up and down. This is due to the source data being in whole numbers (ie integers, eg 1 instead of 1.5), so it it charges at 3% per 2 minutes, it will report 1 minute at 1% and then the next minute at 2%, and then back again, and hence the flip/jumping up and down.

    Its good to use the 4% to check your idle drain (mine goes below .5%! which would mean theoretically 200hrs if it stayed like that; but I normally get about 25hrs due to actually using the phone). I switch to one of the higher (ie 25-200%) graphs to see just how high the peaks go for a very short time.

    The other BIG thing is the Low Memory Killer (ie LMK) items.


    Also, its been there a while, but wake-locks are under the new battery menu as well.

    Totally New Items. within the menu at "TeMeFI Configuration>Latest Added Menu Items"
    Code:
    These first two are simply shortcuts to the original items found in a different location within the menu. Just saves navigating back and forth when investigating/correcting the MediaDB
    	Database>MediaDB SQL>Extend Shortcut: Media Scan File(s) [Java] - Date Range
    	Database>MediaDB SQL>Extend Shortcut: Media Scan File(s) [Java] - Start Character
    
    General info regarding the internal action items. I mainly use this for info and as an integrity check of the menu system before I do a release, in case of a typo.
    For example, The first one is a listing of where I have used shortcuts, which in a way are a duplicate, but only as an entry point. There is only a single version of the code.
    	TeMeFI Configuration>TeMeFI Internal Database Information>Menu / Action Shortcuts
    	TeMeFI Configuration>TeMeFI Internal Database Information>Action Type Breakdown
    	TeMeFI Configuration>TeMeFI Internal Database Information>Count of Child Menu Items
    	TeMeFI Configuration>TeMeFI Internal Database Information>Duplicate Sort Order
    	TeMeFI Configuration>TeMeFI Internal Database Information>Missing Parent Menu Item
    	TeMeFI Configuration>TeMeFI Internal Database Information>Missing Expand Prefix
    	TeMeFI Configuration>TeMeFI Internal Database Information>Menu with No Children
    	TeMeFI Configuration>TeMeFI Internal Database Information>Missing Action Command
    	TeMeFI Configuration>TeMeFI Internal Database Information
    
    These allow you to view AND modify your LMK. NB: The third item in the list actually has ALL the config detils (mem va;lsand OOM val's) while the first has a bit of textural background explaining LMK values somewhat.
    	Currently Running>Memory Info>Low Memory Killer (LMK)>Current OOM to LMK Min Memory
    	Currently Running>Memory Info>Low Memory Killer (LMK)>Current LMK Min Memory Free Values
    	Currently Running>Memory Info>Low Memory Killer (LMK)>Set OOM to LMK Min Memory Free Break Points
    	Currently Running>Memory Info>Low Memory Killer (LMK)>Set LMK Min Memory Free Values
    	Currently Running>Memory Info>Low Memory Killer (LMK)
    
    	Currently Running>Battery>Battery Files /sys/class/power_supply/battery
    	
    	Currently Running>Broadcasted Activity Intents
    	Currently Running>Battery>Battery Properties & Health
    	Currently Running>Battery>Battery Reset
    	Device Details>Kernel>CPU Scheduler Features
    	Dynamic Lists>Files>Data System
    
    	Currently Running>Running Processes
    	Currently Running>Battery

    You will see some "New Items" in this list, as I had major upgrade/fixes after my initial cut of code.
    Modified Menu Items within the menu at "TeMeFI Configuration>Updated Menu Items"
    Code:
    TeMeFI Configuration>TeMeFI Internal Database Information>Count of Child Menu Items
    TeMeFI Configuration>Get default Blob Config      
    Currently Running>Memory Info>Low Memory Killer (LMK)>Current OOM to LMK Min Memory
    Currently Running>Memory Info>Low Memory Killer (LMK)>Set OOM to LMK Min Memory Fre
    Database>Dynamic DB Queries>Two Field Table Filter
    Database>Dynamic DB Queries>Filtered Delete Table Data
    Database>Admin Actions>Individual PRAGMA statements against a Table
    Database>Dynamic DB Queries>Complex Filtered Table Data
    Database>Dynamic DB Queries>Filtered Delete Table Data
    Database>Dynamic DB Queries>Filtered & Grouped Table Data
    Database>Dynamic DB Queries>Filtered Table Data   
    Database>Dynamic DB Queries>Grouped Table Data    
    Database>Dynamic DB Queries>Two Field Table Filter
    Database>Dynamic DB Queries>All Table data        
    TeMeFI Configuration>TeMeFI Internal Database Information>Action Type Breakdown
    TeMeFI Configuration>TeMeFI Internal Database Information>Duplicate Sort Order
    TeMeFI Configuration>TeMeFI Internal Database Information>Missing Action Command
    TeMeFI Configuration>TeMeFI Internal Database Information>Menu with No Children
    TeMeFI Configuration>TeMeFI Internal Database Information>Missing Expand Prefix
    TeMeFI Configuration>TeMeFI Internal Database Information>Missing Parent Menu Item
    TeMeFI Configuration>TeMeFI Internal Database Information>Count of Child Menu Items
    TeMeFI Configuration>TeMeFI Internal Database Information>Menu / Action Shortcuts
    Database>Dynamic DB Queries>All Table data        
    Database>Dynamic DB Queries>Grouped Table Data    
    Database>Dynamic DB Queries>Filtered Table Data   
    Database>Dynamic DB Queries>Filtered & Grouped Table Data
    Database>Dynamic DB Queries>Complex Filtered Table Data
    Device Details>Display Size                       
    Currently Running>Memory Info>Low Memory Killer (LMK)>Current OOM to LMK Min Memory
    Database>Admin Actions>Run ALL PRAGMA statements for a Database
    Database>Admin Actions>Individual PRAGMA statements against a Table
    Database>Dynamic DB Queries>Complex Filtered Table Data
    Database>Dynamic DB Queries>Filtered Delete Table Data
    Database>Dynamic DB Queries>Filtered & Grouped Table Data
    Database>Dynamic DB Queries>Filtered Table Data   
    Database>Dynamic DB Queries>Grouped Table Data    
    Database>Dynamic DB Queries>Two Field Table Filter
    Database>Dynamic DB Queries>All Table data        
    TeMeFI Configuration>TeMeFI Internal Database Information>Action Type Breakdown
    TeMeFI Configuration>TeMeFI Internal Database Information>Duplicate Sort Order
    TeMeFI Configuration>TeMeFI Internal Database Information>Missing Action Command
    TeMeFI Configuration>TeMeFI Internal Database Information>Menu with No Children
    TeMeFI Configuration>TeMeFI Internal Database Information>Missing Expand Prefix
    TeMeFI Configuration>TeMeFI Internal Database Information>Missing Parent Menu Item
    TeMeFI Configuration>TeMeFI Internal Database Information>Count of Child Menu Items
    TeMeFI Configuration>TeMeFI Internal Database Information>Menu / Action Shortcuts
    Currently Running>Battery>Battery History Graph   
    Device Details>Kernel>SYS Kernel File join        
    Currently Running>Battery>Battery Simulate>Battery Reset

    Enjoy!
    14
    New Build!

    New Version v1.0.82

    Download: SEE OP!

    Notable changes:
    NB: the changes made to the detach methods, are only spelling and extra info. There are no structural/technical changes to the detach methods.
    The battery history changes are covering two aspects.
    1. The formatting is now more in-line with the doze graph (black on white table text for headers/labels)
    2. The Auto-Height has been corrected. I think it currently runs off of a % of items by count, not by time at that discharge rate. Previously it rounded the max up so much, it basically included nearly everything every time.

    Updated Items. within the menu at "TeMeFI Configuration>Latest Updated Menu Items"
    Currently Running>Battery>Battery History Graph
    Application Info / Manage>Detach Package from Playstore>ENABLE ATT: One App for re-attachment
    Application Info / Manage>Detach Package from Playstore>List all configured detached apps

    New Items. within the menu at "TeMeFI Configuration>Latest Added Menu Items"
    Currently Running>Doze>Doze Parameter Description

    Enjoy and stay safe.