[Android Software Development] Ricky Divjakovski:
Advanced Boot is a full featured booting utillity for any device, any platform, any architecture.

this is still in the development process but works significately still.

DOWNLOAD: https://github.com/Ricky310711/AdvanvedBoot/archive/master.zip

CHANGELOG: https://github.com/Ricky310711/AdvanvedBoot/commits/master

SOURCE CODE: https://github.com/Ricky310711/AdvanvedBoot

please feedback only bugs encountered.

this can be integrated inside a rom in 3 ways.

-User implementation
To implement this as a user follow the following steps
1. Flash the AdvancedBoot.zip in recovery
2. Choose to install or remove Advanced Boot
3. Reboot

-Rom implementation
To implement in rom follow the following steps
1. Include AdvBoot in the /system/ directory of your rom
2. Rename /system/bin/debuggerd to debuggerd2
3. Copy /system/AdvBoot/bin/debuggerd into the /system/bin/ directory

-Kernel implementation
To implement in kernel follow the following steps
1. Include AdvBoot in the /system/ directory of your rom
2. Add the following lines to init.rc

-----------------< COPY LINES BELOW THIS >-----------------
# Advanced boot - full featured boot services on any device

ABI=$(grep ro.product.cpu.abi= /system/build.prop | dd bs=1 skip=19 count=3)
ABI2=$(grep ro.product.cpu.abi2= /system/build.prop | dd bs=1 skip=20 count=3)
if [ "$ABI" = "arm" ]; then ARCHITECTURE=arm; fi
if [ "$ABI2" = "arm" ]; then ARCHITECTURE=arm; fi
if [ "$ABI" = "x86" ]; then ARCHITECTURE=x86; fi
if [ "$ABI2" = "x86" ]; then ARCHITECTURE=x86; fi
if [ "$ABI" = "x64" ]; then ARCHITECTURE=x64; fi
if [ "$ABI2" = "x64" ]; then ARCHITECTURE=x64; fi
if [ -e /system/bin/mount ]
then
MOUNT="/system/bin/mount"
else
if [ -e /system/xbin/busybox ]
then
MOUNT="/system/xbin/busybox mount"
else
if [ -e /system/AdvBoot/xbin/busybox-$ARCHITECTURE ]
then
MOUNT=/system/AdvBoot/xbin/busybox-$ARCHITECTURE mount
fi
fi
fi

$MOUNT -o remount,rw /system
chmod 0777 /system/AdvBoot/bin/advbootinit
sh "/system/AdvBoot/bin/advbootinit"

this tool allows the following features to be ran on boot, also allowing users(if you enable user configurable) to customize preferences to suit the rom.

ill also be releasing an app to configure this(that only shows on the device if user configuration is enabled)

NOTE: some features are yet to be integrated and some are still buggy.

Advanced Boot - full featured boot services on any device
By Ricky Divjakovski

Setting Advanced Boot preferences
by default adv.boot.user.configurable is enabled
adv.boot.user.configurable enabled will allow users to edit preferences from /sdcard/AdvBoot/boot.prefs.
if not preferences from /system/boot.prefs will not be applied.
if no preferences file there the tool will copy default preferences to /system/
if no preferences file in /sdcard/AdvanvedBoot the /system copy will be copied to /sdcard/Advanvedboot if user configuration is enabled
developers - edit the /system/boot.prefs file
users - edit the /sdcard/AdvancedBoot/boot.prefs file
AdvBoot/boot.prefs will be loaded by default.
if found /system/boot.prefs those settings will over-ride default settings.
if found /sdcard/boot.prefs and adv.boot.user.configurable enabled those settings will over-ride default and system settings.
you can see why a toggle is added to allow users to configure the preferences right?
note:	if enabled default boot.prefs will be copied on first boot to /sdcard/boot.prefs is not found
to enable user configuration.
if users delete /sdcard/boot.prefs then user configurable will be disabled until they factory reset the device.

-Enabling advanced boot
will ebable this tool to apply default, developer or user configuration.

-User configuration
enabling user configuration will apply preferences from /sdcard/AdvancedBoot/boot.prefs if found.
if not found it will copy it there if user configuration is enabled.

-Init.d
enabling init.d will allow scripts to be executed on boot from the directory of choice(adv.boot.initd.path).

-External init.d
enabling will allow scripts to run from a secondary directory of choice(adv.boot.external.initd.path).
this option is for developers who prefer their rom not be modified by users but enable them to have the same
privelleges and also preserve their init.d tweaks for updates if secondary choice is on /sdcard.

-Bootanimation and bootsounds
simple, you can enable or disable boot animation and sounds.

-Enable/diable Volume2Wake device feature
stop the device from waking when hitting the volume rocker by disabling
this.

-No call delay
if you enable this you remove the short delay before making a phone call.

-Improving image, audio and video quallity
if you enable this it increases media quallity slightly.

-WMA and WMV playback
if you enable these you allow the device to decode WMA audio and WMV video files.

-Faster streaming
enabling this will increase the speed of streaming.

-System ADB notification
toggling this will allow you to show or remove the system ADB notification.

-Battery tweaks
enabling this will increase battery by doubling the default dirty_writeback_centisecs dirty_expire_centisecs values.

-Lock launcher into memory
this option allows you to lock the launcher into memory, slightly higher ram usage but launcher has less lag.

-Sdcard readahead
enabling sdcard readahead will change the system value to the selected value.
2048 is a better setting then the devices default.

-Auto settings backup
enabling this will give you the abillity to choose to backup the following.
user settings - your system user settings(wallpaper, lockscreen wallpaper, homescreen layout).
battery stats - your battery stats file(for advanced users).
philz recovery settings - your philz touch recovery settings.
downloaded apps - your 3rd party installed apps(from google play/system app updates).
bluetooth settings - your bluetooth paired device settings.
wifi settings - your connected wifi settings and mobileAP settings.

-Manual restore settings
enabling this will restore your previous backup with the tool on next boot.
after the reboot it will then toggle then disable this to avoid cntinuosly restoring every boot.

-Auto restore settings
if the tool detectes no /data/advboot.log then it will automatically restore the backed up settings.
if enabled and a backup is present as the tool will know the /data partition has been wiped.

-Dalvik2Cache
enabling this will move the dalvik-cache to the /cache partition on first boot if /cache is greater then 100000
to optimize the performance.

-Custom DPI
enabling this allows dpi modding from the boot.prefs file.

-Use googles DNS server
enabling this will make the device use googles DNS server by default.

-Fast reboot
enabling this will make your device "hibernate" instead of completely powering off
therfore booting quicker.

-Increase device response
enabling this will increase the all-round response of your device.

-System performance tweaks
enabling this will increase your device performance slightly or dramatically.
recommended to use this only if you have a backup before you apply it.

-Dalvik bitcode verification
disabling this increases your device speed and power the most.
although some apps are said to crash randomly and its known to cause some small bugs.
i recommend a backup before applying this.

-Scheduler modding
enabling this allows you to change your scheduler from within the tool, this tool also gives you a
list of all supported schedulers supported by the kernel.

-Governor modding
enabling this allows you to change your governor from within the tool, this tool also gives you a
list of all supported governors supported by the kernel.

-Toggle device logging
with this option you can enable/disable device logging in /dev/log/ .

-Automount /system or /data
enabling will allow the enabled partitions to be mounted as readable and writable on boot.

-To Do List
make Advanced Boot Configuration app.

XDA:DevDB Information

Advanced Boot, Tool/Utility for all devices (see above for details)

Contributors

Ricky Divjakovski

Source Code: https://github.com/Ricky310711/AdvanvedBoot

Version Information

Status: Testing

Current Beta Version: 1.0.0.0

Beta Release Date: 2015-09-16

Created 2015-09-16

Last Updated 2015-09-24