[Magisk] Jaymin.0.1910:
Changelog

#### 0.3

* Fix default PATH for daemon startup.
* Fix for kernels not responding node changes.
* Limit checking for current to just once.
* Minor UI change.
* Documentations update.

#### 0.2

* Add examples for supported actions.
* Symlink BusyBox applets instead of hardlinking.
* Revert manual methods regardless of Auto Switch.
* Check control file content before writing.
* Filter out Changelog from [--help] output.
* Update to osm0sis' BusyBox 1.29.3.
* Update documentation.

#### 0.1.4

* Limit charging state changes to only two.
* Fix unwanted output when checking for daemon.

#### 0.1.3.3

* Minor README fix.

#### 0.1.3.2

* Fix daemon not running issues.

#### 0.1.3.1

* Fix daemon detections.

#### 0.1.2.1

* Fix the daemon can not be launched.

#### 0.1.2

* Fix CLI not recognizing the daemon.
* Fix [--mkdaemon] always starting daemon.
* Update strings.

#### 0.1.1

* blex is no longer in beta stage!

* Fix configuring for lazy kernel events.
* Fix detecting running processes.
* Fix daemon checking in [--mkdaemon].
* Fix manual methods detection.
* Fix stopping multiple methods.
* Prevent running multiple daemons.
* Minor UI update.

#### 0.1.beta

* Please remove any version of mcc before installing this.

* Rework as 'Battery Life Extender (blex)'.

#### Redefined 1.1.3

* Fix [--help] page output.

#### Redefined 1.1.2

* Fix unzipping error.
* Update strings.

#### Redefined 1.1.1

* I'm currently porting this project Shell -> native "C". No
feature builds, will be released for the shell version of
it. Only bugfixes! Keep reporting please.
* In case you're interested, porting to "C" will allow it to
function even without a root solution, though requiring a
custom recovery. Also executions will be hell-lot-of fast
and much less resource heavy (current: 7MB).

* Fix the daemon incorrectly reverting the switch.
* Fix boot script not launching the daemon.
* Fix Install script aborting in recovery.
* Fix A/B slot detection for some devices.
* Fix permissions for generated files.
* Fix read-only filesystem errors.
* Fix lost BusyBox applet links.
* Fix other bugs I discovered.
* Automatically implement skip_root workaround.
* Improvements (logging, daemon, algorithms).
* Remove Magisk versionCode checking.
* Remove separate error log_files.
* Remove lock file feature.
* Update BusyBox to 1.29.2.
* Update documentation.
* Update arguments.
* Update UI.

#### Redefined 1.1

* Fix incorrect daemon status in [--info].
* Fix control references identification.
* Fix mounting issues for some devices.
* Fix 'internal error' for system mode.
* Fix racial condition with [--reset].
* Fix boot scripts error logging.
* Fix BusyBox aborting setup.
* Fix other minor bugs.
* Remove unnecessary x86 BusyBox.
* Remove unnecessary img resizal.
* Remove late_start boot script.
* Remove the wrapper around su.
* Install mcc to xbin for system mode.
* Use BusyBox for mcc Install script.
* Add logging to the Install script.
* Update the behaviour of lock_file.
* Update strings.
* Update README.

#### Redefined 1.0.2

* Fix the daemon not writing control nodes.
* Internal code improvements.
* Update README.

#### Redefined 1.0.1

* Fix daemon not launching with beta Magisk.
* Fix control reference nodes never identified.
-> This should fix daemon not working and always reconfiguring.
* Fix safe boundaries for [--switch/--power].
* Fix some algotithmic flaws.
* Update BusyBox to 1.29.1.
* Update strings.

##### Redefined 1.0.MR

* Fix a few bugs with BusyBox and UI.
* Update README for public release.

##### Redefined 1.0

* Initial redefined release.

##### 2.0.MR

* Hello people, This build is a fix for when a [-s/--switch]
call doesn't act like it should. Actually, the code while
having the down threshold and the code for when not, were
placed alternatively. So if you run... say 'mcc -s 85 70'
it would run as the '70' was not given and as mcc I wrote
to be intelligent, it would set 85 and ' 85 - 10 = 75'.

##### 2.0

* This version is re-written from scratch, so please perform
a CLEAN INSTALLATION.

##### 1.5.1.MR

* Hi users,
* This build is to fix two major bugs which I identified just
now. First is the well-known, conflict of the mcc Installer
and the mcc daemon, and the second is the daemon misbehaves
if refs are not set or the lock file is created. Both of em
have been fixed. While the first prevents mccs installtion,
the second causes unwanted reboots for cases while the user
has misused the lock file feature or have modified the conf
file. After this fixations, I can proudly say that mcc does
not have no bugs now...
* Another thing is that mcc now patches the Main before Magic
mounting has happened, so in theory, there will not be need
to make any modifications if Magisk changes its mount point
again, just enjoy!!! Regarding boot scripts, they log their
errors now too as well as commands executed.
* And also while some advanced users did directly run the mcc
daemon, I have also prevented the daemon from running, only
mcc internals can fork it, and that should be when required
by mcc. This blocking also helps the initial daemon call on
the boot a great algorithmic space, so is great.

##### 1.5

* Hi users,
* The final build by me is here, as I will be prepping for my
college admissions. If someone is willing to develop it, PM
me at XDA or open an issue at GitHub and I'd give you write
access to the Repo.
* This build is nothing other than previous build, but having
fixed the Magisk mountpoint, BusyBox setup, and other minor
issues.
* A quick tip: If Magisk changes its mountpoint again, simply
edit LINE 45 in /system/{x,}bin/mcc, NOTHING else.
* Quick tip 2: All the core logic is documented, nothing else
is there, I think logic builds program, not coding skills.
* Wish me luck and Goodbye.....

##### 1.4.3

* Hi users,
* A small + sensitive release is here, which is aimed on some
minor code errors, and a better way of eliminating failures
due to interference with the daemon.
* All the bugs fixed are reported by users at XDA, and I will
not detail them here, but "Please toggle auto switch OFF if
compatibility check fails upgrading".
* What I am gonna detail is a new feature of the daemon. From
this version on, mcc daemon can be paused with a lock file.
Users, or anyone else, can create the file CACHE_DIR/lock_d
and the daemon will go sleep until it exists. This is to be
used by Installer, but not limited. So changelog reads...
* ...Fix 'Permission denied' while running mcc
* ...Fix daemon not launching for some devices
* ...Fix bad compatibility check failures
* ...Bring back initial 120 seconds delay
* ...Add a lock file to pause the daemon

##### 1.4.2

* Hi users,
* This is another lil bug fix release, which is to fix a very
serious bug, which makes auto switch non-functional, thanks
to @pat357 for pointing the buggy thing out and providing a
quick fix

##### 1.4.1.MR

* Workaround Magisk bundled BusyBox missing poweroff applet

##### 1.4.1

* Hi users,
* This is a small bug fix release, which is aimed to fix some
little, but very serious bugs, so changelog reads as
* --> Fix mod_dir not being set by the service
--> Fix unwanted reboots while installing
--> Fix installations for Pixel 2 XL
--> Fix switch not being written
* And the last twos are thankfull contributions from @chuckr2

##### 1.4

* Hi users,
* As always it calls for an apology that you all had to manually
set references even after succeeding the compatibility check from the
mcc Installer, it was a misspelled variable in the Installer, which
has now been fixed, for which I want to thank @pat357 for his pull
request
* Another critical bug was false positive compatibility successions, this
bug appears when the device did not even have a recognized battery
device / module, and so much funnier, the reason was just a single
misplaced variable, that was used to detect if the check succeeded,
this bug has also been fixed
* @RSDamasceno at XDA reported having soft reboots and device warm-ups
with mcc, which I suspect a bug with kernel not handling switch writes
correctly, but as mcc is entirely written in Shell, I have added some
code that will detect the current switch status and write to it only if
the status is different, so the issue is supposed to be fixed
* It fixes another issue when the user has given an invalid argument for
manually enabling charging, issue appeared something like, mcc will
first disable charging, then abort due to unrecognized argument, so
charging will be disabled as opposed to be enabled, which has also
been fixed
* With any older mcc build, the first execution of command always took
some seconds, some people reported 2, some 5 and some even 8 seconds,
which happened due to mcc's Magisk mount point finding and BusyBox
setup, which I implemented just to make sure mcc can work with all the
present and possibly any future Magisk version, but the logic has now
been shifted to service, which on boot, will do it all once for the
entire boot session
* The boot daemon launcher will now attempt 5 times to launch the daemon,
which whether succeeded / failed will be logged in Magisk logs, so
that users can check if the daemon was launched at boot time
* And now as Android P DP1 is out, which removes make_ext4fs, I have put
a fallback for that to mke2fs, just as same with Magisk
* Also all the strings in the Installer and the Main have been re-written
and some faulty code has been cleaned up and organized as always
* So, the complete changelog is
--> Fix the Installer not setting references by @pat357
--> Fix false positives with compatibility check
--> Fix a bug with with kernels not handling switch changes correctly
--> Fix a bug with manually enabling charging
--> Fix image creation for Android P DP1
--> Fast as hell first time execution
--> A better boot daemon launcher
--> Re-write all the strings
--> Cleanup some code

##### 1.3

* Hi users,
* Firstly, I'm sorry for the sucking 'No references set' bug,
I forgot to split out the switch file which resulted in as an
unrecognized switch by mcc, So, whenever mcc was ran, it did not
detect switches and so the bug happened, this bug has been fixed now
* And now, so mcc provides manual run option, and which takes time as an
argument, for which, mcc will fork a session which will keep sleeping
for the given time, and mcc will check for that process every second,
but it gave false positives when another shell process was also sleeping
for the same time as mcc ( child ) did, that bug has also been fixed
* I also recently intoduced a new feature said 'Revert Magic Mount'
live from booted Android, but I realized that with A / B devices,
it is completely different, which made it unusable for such devices,
but now, the feature is working completely on A / B devices now, for which
mcc requires Magisk >= 1410 from now ( would not matter for most users )
* I have also put in a hell lot of efforts in making mcc rock stable,
I started from the top of every single component and kept analyzing, and
analyzing, and analyzing, and analyzing, and analyzing, and analyzing,
and Finally, I'm glad to declare most unless all bugs are flushed out
* I also have effingly strived harder to workaround many non-mcc flaws which I found
* So, the complete changelog is
--> Fix the 'No references set' bug
--> Fix false positives for time-based run
--> Fix 'Revert Magic Mount' for A / B devices
--> Re-analyze and re-write the entire project
--> Workaround many non-mcc flaws
--> Require Magisk >= 1410

##### 1.2.4

* Fix compatibility check ( Installer / mcc ) for some devices
--> add support for some weird devices I saw ( mostly Honor )
* Fix some faulty BusyBox setup code
* Fix image sizes for resizing
--> mcc never shrinks them, so expand only to needs
* Fix regression opened by @pat357
* Free Magisk daemon child after mcc daemon is launched
* Abort installation for Magisk < 1400
* Update README ( and indirectly [ --help ] )

##### 1.2.2

* Fix daemon not being launched at boot ( was my bad )
* Fix some faulty image resizing code in mcc Installer
* Fix unwanted power-offs for when no references are set
* Fix regression opened by @pat357
--> show daemon status ( runnning or what ) in [ --info ]
* Add perms handling for non Stock / near Stock kernels
* Increase checking intervals from 10ms to 100ms
--> which is likely to fix some compatibility check failures
* Add double checking for uevent file
--> which is likely to fix some compatibility issues
* Flash again to uninstall feature now performs a complete uninstall
--> 1) remove files 2) kill mcc processes and 3) revert Magic Mount
--> it will revert Magic Mount live from booted Android!!!
--> the last one is available only for Magisk >= 1410,
as topjohnwu has changed the Magic Mount algorithms many times

##### 1.2.1

* All previous versions are considered incompatible

* Fix installations for Magisk Manager 5.6.0+
* Fix some faulty busybox setup code
* Correct some terminology ( see 'Arguments can be' )
* Improve the [ --re-daemon ] option
* Change defaults to 80 70 ( it be optimal )
* Rewrite README ( which directly means [ --help ] )
* Add messages to UI for some tasks
* Reduce checking intervals to 10ms
* Reduce max switches to two from four
* Add error handling for new code
* Port commit from Magisk to mcc Installer
--> 'Round sizes to nearest integer', also repair image first if found
* Put errors to a separate logfile
* Rebase some tests on common observations
* Remove and re-write some pieces of code
* For developers
--> Revert the source mcc feature, to keep the code clean