FORUMS
Remove All Ads from XDA

[APP][UTILITY][30th April] Helix Engine 2.0.0.1-beta

6,456 posts
Thanks Meter: 13,818
 
Post Reply Email Thread

NOTE: This app is currently in beta stage, meaning that the app is not bug-free, and stability may vary across devices. Future updates will improve on this!


Application Developer: ZeroInfinity, Profile Data Tuners: RogerF81, Mostafa Wael, Asiier

Helix Engine is an android application with an Accessibility Service which automates dynamic performance profile switching (battery/balanced/performance modes) to provide better efficiency, improve battery consumption and performance depending on your usage.






- Root (I think this is obvious but just in case it's not...)
- An ARM64-based (ARMv8) System-on-Chip/chipset/processor/CPU with big.LITTLE or DynamiQ (clustered CPUs)
- No other modifications which may tweak kernel tunables automatically (e.g. Advanced Kernel Tweaks, LSpeed, HEBF etc.)






- App Engine
Battery - low-performance mode to save power on apps that don't need that much power (e.g. Facebook, Messenger, Instagram, Reddit, apps that are generally for browsing)

Balanced - the default profile for apps that aren't in either Battery or Performance lists (normally newly installed apps). Apps that you think requires a decent amount of power, but not as much as the power intensive applications suitable for performance profile.

Performance - High-performance mode to enable buttery smooth gaming, as well as exceptional benchmark performance (if you are into that sort of thing). Also useful for very power intensive tasks like backup managers, file explorers (when transferring large files), media editing tools, camera apps, launchers (for fast app launches) etc.

Whitelist - Helix Engine will detect these apps and will avoid executing any scripts when they are in use. This prevents constant profile switching, very useful if you whitelist SystemUI (which becomes the top-app whenever you turn on the screen to the lockscreen, pull down the notification bar, or switching betwen recent apps. All which you will regularly use and it's just a waste of processing power to constantly switch whenever SystemUI is in the top-app group).

The engine detects which app is currently in use (in the top-app group), and will apply the profile's configuration according to the profile you've set the app to automatically.
For example, the battery profile's configuration is applied when an application that has been set to the battery profile has been detected as currently running. Apps set to balanced will apply the balanced profile's configuration. Apps set to performance will apply the performance profile's configuration. Apps set to whitelist will be ignored (i.e. no profile changes from the previous profile that was executed when the whitelisted app is in the top-app group).


- Applists Customization
The engine allows users to set a profile for each individual app on their device. Different profiles correspond to what profile's configuration will be applied (see above in App Engine).

When customizing app lists, each selection you make is saved in real time. You may backup your app lists in Settings for easy backup and restore (Premium feature) if you move devices or wipe app data.


- Profile Data Customization
Users can also configure each profile configuration to their personal preferences. Each configuration should be unique to its own profile.

For S835, S821, S820, Kirin 970 chipsets, the engine will load recommended pre-defined profile data for you. For every other device, you will need to configure each profile yourself as each chipset are different. There is a help card in each profile customization page to give you a general guideline of what you should be aiming for.


- Suspend Engine
Puts your device in a low power state when the screen is off. This only works when your device is not charging.


- Over-execution prevention
The engine has a protection against constantly applying profile configurations when it is unnecessary. One example was mentioned before which is the whitelist profile you can set for applications on the App Lists page. The other way that the engine prevents this is by temporarily logging what profile was last executed. If the new application that has just been focused as top-application is set the same profile as the previous application you were on, it will not execute again since the values have already been applied from the previous one.

Take this scenario for example. You set Facebook and Messenger both to battery. You launch Facebook and it becomes the top-application, battery profile's configuration will be applied. Then you switch to messenger via recent apps and messenger becomes the top-application, battery profile's configuration will not be applied again because it was already applied in the application that was top-application before. The combination of whitelisting SystemUI with this method significantly increases the efficiency of how the engine runs.


- [PREMIUM] Backup and Restore app lists
The engine will create a backup of the current state of your app lists and compress them into a zip. It will be created in /sdcard/Helix-Engine/applist-backups/applist_backup-[DATE-TIME] where [DATE-TIME] is replaced by the current date and time. When you restore app lists, you are given a choice of backups if you have multiple ones you want to restore specifically for an operation mode (since dynamic battery/powersaver will delete performance app list and dynamic performance will delete battery app list).


- [PREMIUM] Backup and restore profile data:
The engine creates an XML file in /sdcard/Helix-Engine/engine_data.xml with the current configuration of all of your profiles. These backups can be shared and other people may restore them on their devices. Profile data can only be restored on devices with the same chipset model, kernel type, and kernel version as the device it was backed up on. So e.g., an S835 HMP config can only be restored on an S835 HMP device. An S820 EAS config can only be restored on an S820 EAS device. A device running XYZ Kernel can only be restored on a device running XYZ Kernel. HOWEVER, you change the kernel_version="XYZ-Kernel" in the engine_data.xml to kernel_version="any" in order to allow devices using any kernel to restore that profile data.


- [PREMIUM] View system apps
While the app applies pre-defined app lists at first launch, it will still apply pre-defined system apps in the app lists. This feature just allows you to display system apps in the app list UI and make it easier to change profile sets for system apps.


- [PREMIUM] Search function in App Lists
Search through app lists using the search button in the action bar.







Known OEMs with Power Managers:
OnePlus Oxygen OS 5.1.x (and above) ROMs - Qualcomm CAF boost framework (DOWNLOAD FIX)
HTC Sense ROMs - HTC pnpmgr/CAF boost framework (DOWNLOAD FIX)
Huawei EMUI ROMs - perfgenius (DOWNLOAD FIX)
ZTE Stock ROMs - You must disable "Smart power-save" in Settings > Power manager



ATTENTION: Devices that have some sort of settings option to prevent apps from launching on boot: MAKE SURE YOU ALLOW HELIX ENGINE TO RUN ON BOOT OR ELSE THE SERVICE WILL NOT RUN AUTOMATICALLY!!!

For Huawei users: Settings > Battery > App Launch > switch off Helix Engine and tick everything for Manage Manually dialog

If your device has a power manager, the app can fix the problem automatically. However, PLEASE MAKE SURE YOU BACK UP YOUR SYSTEM AND VENDOR (for treble-enabled devices) PARTITIONS BEFORE PROCEEDING WITH THE FIX!!! YOU HAVE BEEN WARNED!


Join the Alpha Testing G+ Community here!
Official Helix Engine Debugging Tool
Database of pre-defined profile data and app lists







Massive thanks to Chris@Honor_USA for supplying me with a Honor View 10 to develop on! Without this, I would not be able to provide proper support for Kirin 970 chipsets!
Massive thanks to @RogerF81 for maintaining all of the scripts for Helix Engine and alpha/beta testing! Also inspiration for ideas
Thanks to @Mostafa Wael for encouraging me to jump to Oneplus, giving some ideas on improving the engine, and beta testing!
Thanks to @Asiier for integrating AKT with Helix Engine and helping us improve our scripts!
Thanks to @geko95gek for being a 32-bit ARM tester
Thanks to my team members at Team Helix for supporting me!
Thanks to @ivicask for giving me the idea of the concept for this engine before it was created. Without him, I wouldn't even have started this project. Also massive thanks to him for helping us with LMK tweaks, giving us pointers on what to improve!
Thanks to @AFAFontes for helping us improve and fix bugs with the scripts.
Thanks to anjlab for in-app billing library (Source)
Thanks to @topjohnwu for libsu library (Source)



Signature Graphics:




Donations are completely optional and are always greatly appreciated: https://www.paypal.me/ZeroInfinityXDA
Attached Files
File Type: apk helix-engine-2.0.0.1-beta.apk - [Click for QR Code] (1.14 MB, 4786 views)
The Following 161 Users Say Thank You to ZeroInfinity For This Useful Post: [ View ]
 
 
6th February 2018, 04:22 PM |#2  
ZeroInfinity's Avatar
OP Recognized Developer
Flag Brighton & Hove
Thanks Meter: 13,818
 
Donate to Me
More

Q1: How do I uninstall?
A: Uninstall the app like you normally would. If you have applied the automatic fix for power manager, restore your system or vendor (if you are on a treble-enabled device) partition.
If you are on a treble-enabled Huawei device, it is MANDATORY to restore your vendor image to get perfgenius to work again. The device will not perform well without perfgenius.


Q2: How do I know if this is working?
A: Use this tool: https://github.com/Team-Helix/Helix-...ugger/releases and refer to this post about what to look for when debugging: https://forum.xda-developers.com/sho...postcount=1648


Q3: How do I check if I have a power manager in my ROM?
A: If you don't know if your ROM has a power manager, try underclocking your phone or tweak the governor. Power managers usually overwrite your applied values. Refer to Q2 for debugging tools to check if your values get overwritten over time.


Q4: Does the app need to be set to "Not optimized" in Battery optimization settings? Does the app start on boot automatically?
A: No that is not necessary. Yes, the app should start on boot automatically.


Q5: App Lists is not loading for me!
A: Give it time, it may take up to 30 seconds for the list to load depending on your device.


Q6: Unlocking seems to be slower than usual/has delays/lags
A: Raise suspend engine freqs in profile data customization.


Q7: Can I use a kernel manager app like EXKM?
A: You can, but you must not apply tweaks that Helix Engine already applies (e.g CPU frequencies or governors)
The Following 52 Users Say Thank You to ZeroInfinity For This Useful Post: [ View ]
6th February 2018, 04:23 PM |#3  
Mostafa Wael's Avatar
Recognized Contributor
Gotham
Thanks Meter: 5,406
 
More
Reserved 2
The Following 11 Users Say Thank You to Mostafa Wael For This Useful Post: [ View ] Gift Mostafa Wael Ad-Free
6th February 2018, 04:25 PM |#4  
RogerF81's Avatar
Senior Member
Flag Mannheim
Thanks Meter: 1,038
 
More
Here are two examples of what is possible
Setup: OnePlus 5, Stock OOS 5.0.4, Flash Kernel 3.17 build, selected dynamic battery mode.
Attached Thumbnails
Click image for larger version

Name:	Screenshot_20180328-234851.jpg
Views:	6434
Size:	132.2 KB
ID:	4460333   Click image for larger version

Name:	Screenshot_20180328-234856.jpg
Views:	6368
Size:	137.3 KB
ID:	4460334   Click image for larger version

Name:	Screenshot_20180319-094702.jpg
Views:	6358
Size:	129.3 KB
ID:	4460335  
The Following 13 Users Say Thank You to RogerF81 For This Useful Post: [ View ] Gift RogerF81 Ad-Free
6th February 2018, 04:42 PM |#5  
shadowstep's Avatar
Senior Member
Flag Ambala, HR
Thanks Meter: 2,116
 
Donate to Me
More
Awesome! I've been waiting for this! Was following the progress closely on GitHub. Nice to see this here officially!
The Following 2 Users Say Thank You to shadowstep For This Useful Post: [ View ] Gift shadowstep Ad-Free
6th February 2018, 05:11 PM |#6  
geko95gek's Avatar
Recognized Contributor
Flag Establishing Battlefield Control... Standby!
Thanks Meter: 7,120
 
Donate to Me
More
That's one hell of a long OP. 😂

Well done tho mate, can see a lotta work went into it.
The Following 5 Users Say Thank You to geko95gek For This Useful Post: [ View ] Gift geko95gek Ad-Free
6th February 2018, 05:46 PM |#7  
Senior Member
Thanks Meter: 75
 
More
It might just be me but I am seeing a more stuttering after flashing this engine .
6th February 2018, 05:51 PM |#8  
ZeroInfinity's Avatar
OP Recognized Developer
Flag Brighton & Hove
Thanks Meter: 13,818
 
Donate to Me
More
Quote:
Originally Posted by prajnay

It might just be me but I am seeing a more stuttering after flashing this engine .

Depends on what app you use, for battery apps, it may feel slower than normal (to prevent these battery apps from draining unnecessary amount of power). However, games and using the launcher should have no problems as it'll execute the performance profile. If battery profile is too slow for you, I'll discuss it over in my team so we can tune it a bit more towards better performance (at cost of a bit of battery).

This is currently in BETA so there will be some hiccups here and there, we will need feedback from a lot of people so we can fine tune it some more until most people are satisfied.
The Following User Says Thank You to ZeroInfinity For This Useful Post: [ View ]
6th February 2018, 06:31 PM |#9  
Senior Member
Thanks Meter: 625
 
More
I'm literally blown away or maybe over whelmed by that OP.
The Following User Says Thank You to SlyUK For This Useful Post: [ View ] Gift SlyUK Ad-Free
6th February 2018, 11:21 PM |#10  
Senior Member
Thanks Meter: 34
 
More
been using for a few hours........browsing.....watching video....taking picture. had it freeze on me while in the camera, after zooming, takign picture, and moving the phone it froze. had to power down because my phone went totally unresponsive. im idle drain is insane though. down to 0.36%/h from about 1.5%/h.


as im writing this i tested to camera malfunction again and it malfunctioned yet again. on OOS 5.0.2 blu_sparks kernel. and also experiencing sluggish scrolling in instagram.

edit: added some stuff
6th February 2018, 11:44 PM |#11  
Member
Thanks Meter: 14
 
More
Would like to try, only one question. How to remove after flash? Apk unninstal, magisk module delete, but what about flashable aroma zip? Thanks for you awesome work!
Post Reply Subscribe to Thread

Tags
engine, helix, profile, script, tweaks

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes