Many of you already know that I have them all of my projects listed with their respective xda threads and download links on my website, but not all of them had an xda thread. So rather than cluttering xda with a new thread for each individual mod I make, I decided to put the smaller ones here :victory:
Binaries
Cross Compiled Binaries For Android Build Script
The new home for my binary build script. Combines what was formerly GNU and Misc build scripts into one. It contains a good number of useful binaries such as aria2, bash, coreutils (with advanced cp/mv - adds progress bar functionality), curl, gawk (GNU awk), sed, vim, zsh, and more. Check it out to see the expanding list
Keycheck
Finally tracked down the source code for this. This will compile the keycheck binary so you can use vol key selections and what not. Uses a modified build script by @osms0sis. Instructions on the repo
Zip for Android
This builds the zip binary, prepared for android by cloudchou @github in addition to a build script by @osm0sis that I modified for this. Just clone the repo, cd to jni, chmod the build script, and run it
Mods
Cross Compiled Binaries For Android
This zip contains a term script which can install any number of the growing list of binaries I've managed to cross compile for android. Here's the repo where they're all stored
Codec Power Gating Disabler [Deprecated]
Another straightforward one. Disables codec power gating. It's needed for some audio mods like @chdloc's Biquads
Kernel Sepolicy Patcher [Deprecated]
Unlike most sepolicy mods out there, this one changes sepolicy at the kernel level - meaning no boot script crap so it'll work regardless of other mods/root solutions (or lack there of). You can choose between enforcing or permissive while flashing it - you can use this to switch at will to test stuff out or whatever
Module Manager [Deprecated - not needed with magisk v24]
Magisk Canary v23.x got rid of the magisk-modules-repo from the app. This term script replaces that temporarily until an in-app solution is implemented. Allows you to update and install mods with ease.
Overlay Mount Fix [Deprecated]
Fix for overlay mount related issues with magisk - often seen in oneplus devices with /product
Misc
Searx Instance
Searx is a metasearch engine with a focus on privacy. It allows you to search many search engines at once without being tracked by them - I use it to remain private while using google and to for scientific journal article searching (science tab). I have more details on what it is/setup here on my website
More will be added when I come out with them. For a complete list of all of the stuff I work on, check out my website linked at the top of this post
Audio Mod Troubleshooting Guide
XDA:DevDB Information
Zackptg5's Misc Projects, Tool/Utility for all devices (see above for details)
Contributors
Zackptg5
Earlier this week I got Android Auto in my car. I never considered that Viper4Android wouldn't work with it. I was hoping the USB Policy Patcher would fix that but it didn't. It looks like this is a problem for most, if not all people.
Has anyone found a way to use V4A while connected to Android Auto through a USB cable? If so, please explain what you had to do. Thanks.
Updated mods for new unity 2.2
Also added option to notification_helper remover to remove libvolumelistener.so
@Zackptg5
If i want to use your Bash for android in a kitkat stockrom.. then the following zip is fine?..
I extracted the main files from your zip and made a simple zip...
since in Magisk Manager ..description about your bash for android says it needs 5.0+.....
Thanks
HemanthJabalpuri said:
@Zackptg5
If i want to use your Bash for android in a kitkat stockrom.. then the following zip is fine?..
I extracted the main files from your zip and made a simple zip...
since in Magisk Manager ..description about your bash for android says it needs 5.0+.....
Thanks
Click to expand...
Click to collapse
The compiled zip is for lollipop+. If you want it for older, go to the bash build script link in the OP and compile arm binary for Api 19 (or older)
Zackptg5 said:
The compiled zip is for lollipop+. If you want it for older, go to the bash build script link in the OP and compile arm binary for Api 19 (or older)
Click to expand...
Click to collapse
Thanks for quick reply...
But I dont have a pc sir...
HemanthJabalpuri said:
Thanks for quick reply...
But I dont have a pc sir...
Click to expand...
Click to collapse
Build script is for Linux. I'll try building later today
HemanthJabalpuri said:
Thanks for quick reply...
But I dont have a pc sir...
Click to expand...
Click to collapse
Here you go, latest bash stable compiled for kitkat (API=19) (and newer) arm devices
Zackptg5 said:
Here you go, latest bash stable compiled for kitkat (API=19) (and newer) arm devices
Click to expand...
Click to collapse
Thanks a lot for your time..
and Happy New Year...
but I just place in xbin without any other files?
i.e., /system/etc/bash/bashrc
/system/etc/bash.bash_logout
/system/etc/bash.bashrc
are not needed?
HemanthJabalpuri said:
Thanks a lot for your time..
and Happy New Year...
but I just place in xbin without any other files?
Click to expand...
Click to collapse
Right. Then chmod 0755 it
Zackptg5 said:
Right. Then chmod 0755 it
Click to expand...
Click to collapse
/system/etc/bash/bashrc
/system/etc/bash.bash_logout
/system/etc/bash.bashrc
are not needed?
I saw these files in your main zip v1.8.4
HemanthJabalpuri said:
/system/etc/bash/bashrc
/system/etc/bash.bash_logout
/system/etc/bash.bashrc
are not needed?
Click to expand...
Click to collapse
They're technically not needed but can be useful. You can place them manually, or unzip the bash module zip and replace the bash binary in the arm folder in the custom.tar.xz folder with the one I attached
Added zip and zipalign binary build repos
Updated bash to v5.0 stable
Zackptg5 said:
Updated bash to v5.0 stable
Click to expand...
Click to collapse
API 19?
also why nanodroid bash is 4.*mb and yours is 1.*mb?
HemanthJabalpuri said:
API 19?
also why nanodroid bash is 4.*mb and yours is 1.*mb?
Click to expand...
Click to collapse
I have it as minimum of 21 because that's the magisk minapi so I'm just keeping it consistent. You can always compile it for 19 with my build script here: https://github.com/Zackptg5/Bash-for-Android-Build-Script
My compiled binaries are stripped which means that inessential stuff (things not required for normal functions) were removed. See more on that here: https://en.wikipedia.org/wiki/Strip_(Unix)
the Kernel Sepolicy Patcher dont work for j5 pro android 8.1 twrp says error 1 when try to install
tutibreaker said:
the Kernel Sepolicy Patcher dont work for j5 pro android 8.1 twrp says error 1 when try to install
Click to expand...
Click to collapse
Log?
That all the rom installed busybox, and i try 2 versions of it and Same results
tutibreaker said:
That all the rom installed busybox, and i try 2 versions of it and Same results
Click to expand...
Click to collapse
Can you save the actual recovery log so I can see the cause of the error? After flashing zip, go to advanced -> copy log
Related
As you may know farmatito's powersaving kernel is really saving power:
http://forum.xda-developers.com/showthread.php?t=1010932
However, his patches are hard to apply, so I setup a github repo with all patches applied:
github.com/bood/htc-magic-kernel
(not having enouth posts to post a outage url link yet...)
I also ported the vocpcm module so you can run rVoix on it
I only tested on my HTC TIM (32A) phone with old radios
Also, my original camera app does not work with this new kernel (I flashed the new kernel only, apps are untouched), appreciate that if anyone know how to flash it.
Instruction to flash the compiled kernel (32A only)
1. Do a backup
2. enter fastboot
3. unpack the attached 7z file
4. fastboot flash zimage bood-2.6.35.14-autogroup-vocpcm-kernel
5. reboot to recovery
6. adb shell mount -a
7. adb push wlan.ko-bood-2.6.35.14-autogroup-vocpcm /system/lib/modules
8. reboot normally
Update Logs:
2012/02/03
Updated a compiled kernel (autogroup version for 32A) with wlan.ko
2012/02/02
1. Applied all patches except BFS patches since I don't use it
2. Ported vocpcm module
Hello, thanks for that! Would gladly try the compiled version if possible, since I'm using Linux. Thanks in advance.
Actually it is compiled in Linux.
Anyway I've uploaded a compiled version, give it a try!
Sorry didn't made a flashable zip, since the ramdisk could be different.
saibot64 said:
Hello, thanks for that! Would gladly try the compiled version if possible, since I'm using Linux. Thanks in advance.
Click to expand...
Click to collapse
HEh, what I meant was 'I don't use Linux' Thanks for that, will try it !
osm0sis' Odds and Ends -- Misc./Batch Tools, Flashable Zips, Scripts, etc.
General Information
In a nutshell, I just wanted a single thread to gather links to some of my other, larger projects, but also serve as a spot I could put some smaller scripts and zips I've created that I don't think merit their own separate threads. This is partially for my own sanity and will hopefully make it easier for others to find some things as well. A lot of the stuff here was developed with the GN, N4, N5, N7s or N5X, OP5/T, OP6/T, OP7Pro/T, OP8Pro/T or OP9Pro (my devices) and Windows in mind, but could generally be applicable to most devices either out-of-the-box or with some slight modification. If you see something that inspires you, go ahead and mod it, just let me know and give me some credit somewhere. If anyone would like to know the specifics of what's in a particular script that I haven't already linked to more information on, just let me know and I'll post that in here as well.
Note: Older zips with a "cwm-" prefix are NOT only for the now-defunct ClockworkMod Recovery, the prefix was used to denote a flashable zip before I adopted Chainfire's "UPDATE-" prefix. Please use a currently maintained recovery, like TWRP, for all zips to ensure the best compatibility/results.
My development work on my many projects comes out of my free time, so if you enjoy this project or anything else I've done on xda, please consider sponsoring my ongoing work using my GitHub Sponsors profile. For a one-time donation you can hit the donate link from my profile. Thank you for your support!
Misc./Batch Tools
AnyKernel3 (many devices) - link
AnyKernel was a simple template for an update.zip that could apply any kernel to any ROM, regardless of ramdisk to reduce the chance of any issues arising from the custom kernel pairing. The drawback to this is that some kernels require modifications to the ramdisk to enable/set up kernel features, and in the old AnyKernel format there was no way to do this. AnyKernel3 pushes the format even further by allowing kernel developers to modify the underlying ramdisk for kernel feature support easily using a number of included command methods along with properties and variables to customize the install experience.
APK-Patcher (many devices) - link
A proof-of-concept, simplifies APK modification to make it easier for modification creators to keep creating. Using JesusFreke's brilliant bak/smali and iBotPeaches' excellent apktool, modified to run on-device along with the various binaries required, allows on-the-fly APK modifications to be applied via recovery, to whatever ROM APK is present, taking the constant update burden off of the modification creator. The zip is smart and automated, using the APK name to run all the various parts involved for complicated patches and is extensible to any number of APKs in a single zip.
Android Image Kitchen (many devices) - link
A collection of Windows/Android ports of the necessary Linux utilities for Android image (kernel+recovery) mod work, and my own automation script to unpack, edit and repack the ramdisk. Other guides/scripts exist but none of them are universal for target device, compression and/or developed for Windows/Android. Now also Linux builds to bring my improved featureset back to where it came from, recently extended to macOS as well. Has been extremely useful for me in my messing around with kernel ramdisks.
ADB Screenshot (many devices) - attached
Take screenshots while in recovery. Useful for development of recovery apps or error reporting. Original method had lots of different threads around with the general method for various devices but I figured out a couple tricks required for getting it working on the Galaxy Nexus and then automated the process. Tested and confirmed working with both pixel formats of CWM and TWRP. More information in this GN Q&A FFmpeg thread. New method uses fb2png and should work on all ARM devices.
ADBsync sdcard Backup (many devices) - attached
Backs up the entire sdcard so that you can have a complete snapshot of your device when you make periodic backups, and be able to restore things exactly as they were. Automates the sync process of Renate NST's great adbsync utility which makes only newer files get pulled, significantly decreasing backup time for the sdcard compared to "adb pull". Original version posted in the old adbsync thread. Defaults for devices with /data/media/ internal sdcards (Nexus devices, etc.), but is easily customizable to backup other mountpoints or backup via ADB over WiFI.
Flashable Script Zips
TWRP A/B Retention Module script (many devices) - link
We need an interoperable root ecosystem again. A/B and system-as-root were a big setback to the root community in this respect. To help alleviate this issue, this atypical Magisk script zip "module" will keep TWRP installed to both slots when flashed from Magisk Manager after an A/B OTA has installed in the background, but before you use Manager to install Magisk to inactive slot.
Nexus BootUnlocker script (GN, N4, N5, N7 '13, N10) - attached
I don't know about everyone else but sometimes I find I've rebooted into the bootloader only to realize I've forgotten to unlock it in segv11's excellent BootUnlocker App beforehand. Well, I decided to make a BootUnlocker Script for my Galaxy Nexus so I could just boot to recovery quickly, unlock, then adb reboot-bootloader (or use my Reboot To Bootloader script below) to get back without having to fully boot the OS to make the change. Also extremely useful in the case you aren't able to boot. As with the app there is no data loss like there would be with fastboot, allowing you to relock for safety. Originally posted in the GN EDIFY Scripting thread. Modified for the newer Nexus devices and combined into a single Nexus BootUnlocker zip with tamperbit reset support added using information from the BootUnlocker App Dev thread. For newer devices using Factory Reset Protection (N6 and later), the BootUnlocker Script can't directly toggle the lockstate due to new security tokens, but it does now toggle the ability to use "fastboot oem unlock" without needing a booted device.
N7 BootUnlocker script (N7 '12) [creation guide] - link
The Nexus 7 2012 is a special case. Per-device encryption of an entire partition makes it impossible to support the N7 '12 in a simple root app, or flashable zip as above, however using my guide and included script you can now create a working BootUnlocker Script Zip for your specific device. As with the above scripts there is no data loss like there would be with fastboot, allowing you to relock for safety.
sdcard Fix Permissions script (many devices) - attached
A little flashable zip script to fix ownership and permissions of files and directories on the sdcard to what they would be if Android OS had put them there itself, since some apps can't access pushed files that have root.root as owner/group. This is useful when restoring to your sdcard backup, as with my ADBsync sdcard Backup batch script above, since generally, pushed files get root.root from adb shell and higher permissions than usual. Also a solution for a bug where sdcard files get lower permissions somehow, resulting in similar access problems. Currently written for devices with /data/media/ internal sdcards (Nexus devices, etc.), but could easily be modified for other mountpoints. No longer required on Oreo since it fixes these itself at boot.
Recovery SLAM script (many devices) - link
Recovery "Simple Legacy Auto-Mount" (SLAM!) is for devices that have been updated to SAR, but there are older zips that break in TWRP because they rely on the mounts occuring a certain way, especially during a ROM OTA. Recovery SLAM mounts them more as the zips would expect, generally allowing them to proceed. Most useful for premounting /system before a legacy zip with my FlashAfterUpdate addon.d script.
SUmount script (many devices) - attached
Another tool for the toolkit of anyone using Chainfire's SuperSU or topjohnwu's Magisk systemless root, this simple flashable zip script toggles the mounting of the su.img, magisk.img and magisk_merge.img while in recovery to allow easier access to the /su, /magisk and /magisk_merge filesystems, simplifying manipulating it via ADB shell, AROMA Filemanager or TWRP's terminal/file manager. Especially useful to anyone who uses su.d/post-fs-data.d scripts or can't boot due to some issue with a user addition in /su/su.d, /su/bin or a Magisk module.
unSU script (many devices) - link
While experimenting with Chainfire's brilliant SuperSU systemless root, I discovered that uninstalling the older style system-modifying root through his app (<2.60) didn't restore all of the modified system files correctly, so I wrote this script to do so and aid in people wanting to unroot from recovery. Expanded to support uninstallation of Koush's SuperUser, phh's Superuser, SuperSU Systemless (su.img and BINDSBIN), Magisk, LineageOS addonsu and custom ROM su binaries.
Adreno Systemless Installer script (N5, N6, N7 '13) - link
For use with Qualcomm's official updated preview GPU drivers packages for Adreno 3xx/4xx-powered Nexus stock images. This is a different frontend to take whatever device zip from Qualcomm is in the same directory as it (also searching /sdcard), then unpack and install it as a Magisk module or into the SuperSU systemless root /su filesystem, instead of the usual /system.
Kernel MultiROM Injector script (many devices) - attached
Intended for use in Chainfire's excellent FlashFire app to automate re-injecting the current boot image ramdisk with Tasssadar's brilliant MultiROM's trampoline bootmenu; this avoids having to do this as an extra step in MR-TWRP following an OTA, ROM Delta or SuperSU update. Should work for all EMMC devices with MultiROM installed.
GN PIT Editor script (GN) - link
Dumps and alters the Galaxy Nexus' Partition Information Table (PIT) to reclaim unneeded space from the /cache partition and add it to /system to allow for larger ROMs and GApps packages to make continued support for Lollipop+ easier. The resulting file is byte-for-byte identical to those created by external tools like PIT Magic, so that it may be flashed back to the device in Odin Mode to complete the repartitioning.
Kernel Emergency Reset script (many devices) - link
Basically a go-to cure-all for custom kernel users experiencing issues after an upgrade due to old settings left over in a kernel control app (eg. franco.Kernel updater, Trickster, etc.), or problematic init.d/userinit.d scripts. It's also useful if you just want to make sure you're running clean defaults without conflicts.
Reboot To Bootloader script (all devices) - attached
Those who preferred using CWM may have noticed a couple of things missing that the other popular custom recovery, TWRP, has built-in. One of these is a file explorer/manager, which is answered by amarullz' brilliant AROMA Filemanager. Another thing I found myself wanting was a way to reboot back to the bootloader once I'm in recovery, so I created this very very simple flashable zip script. (No longer required on CWM >=6.0.3.5). Note: Once in the bootloader, "Start" will boot you back to recovery. Not sure why, but it's not a big deal, just reboot normally from recovery at that point.
Flashable Installer Zips
Flashlt Installer (many devices) - attached
Installs my Flashlt script to allow easy flash and dump of boot, recovery and radio/modem (possibly others) EMMC or MTD partitions while booted, and trimming of null characters from files. Also installs a script zip that makes flashing boot.img (kernel), recovery.img, and radio.img/modem.img (baseband) files via recovery simple. It aims to save the average user the hassle of repacking their own image zip, or using the command-line or fastboot to flash it. Place an appropriately named file in the same directory as the zip and flash away! Should work on all devices with normal partition naming ("boot", "recovery" and "radio" or "modem") which accept Android standards-compliant images (including a/b slot devices like Pixel). Extremely handy when used with amarullz' brilliant AROMA Filemanager, and/or my Android Image Kitchen: Mobile Edition (linked above).
Busybox Installer (all devices) - attached
A byproduct of building my own static busybox compiles in all Android architectures for my AIK-mobile package, I figured I might as well offer them up separately as well since there weren't any providers making Android x64 builds when I was researching. Detects device (ARM/64, x86/_64, MIPS/64) to install the busybox binary, cleans up symlinks from any previous install and generates new ones. Detects and supports SuperSU/Magisk systemless installs. Please read the release post about applet inclusion and special features.
nano Terminal Editor Installer (many devices) - attached
An installer to push my own static Android ARM build of the nano editor and required files to /system/xbin and /system/etc/terminfo, with a wrapper adding a --term option to try terminfo profiles more easily. Detects and supports SuperSU/Magisk systemless installs. Can then be used from Terminal while booted. When flashed in recovery also allows temporary recovery use by pushing a script to /sbin/nano with the required setup, so you can trigger it from adb shell or TWRP Terminal. Makes it extremely easy and worry-free to tweak and mod on the go, knowing you can edit the faulty build.prop or startup script if something goes wrong.
adb + fastboot Installer (many devices) - attached
Marshmallow removed adb from the /system/bin directory. For those wanting this functionality back, here's an installer to push static compiles of adb and fastboot to /system/xbin, with a wrapper to point adb to the correct HOME directory and set TMPDIR for compatibility. Detects and supports SuperSU/Magisk systemless installs. Can then be used from Terminal while booted.
Nexus Media Installer (many devices) - attached
Custom ROMs usually don't include Google ringtones/notifications/system sounds and bootanimation, instead including numerous terrible sounds and often less-than-desirable visuals. This installs the media from old Nexus devices systemlessly (SuperSU and Magisk supported), or to system with an addon.d script to survive a ROM update or dirty flash, and using the zip name (also reading from /data/.nexusmedia) to allow user choice.
mtd-utils Installer (many devices) - attached
mtd-utils (flash_erase, nanddump, nandwrite) are necessary for mod work on a number of Android devices using mtd/char devices instead of the more standard emmc/block devices, and where the busybox versions have been less reliable in the past (especially where it doesn't include flash_erase), using the official suite is preferable. The older ARM builds available on XDA were about a decade old, so I worked out how to configure and cross-compile from the latest source. Detects and supports SuperSU/Magisk systemless installs. Can then be used from Terminal while booted
ZipSigner + Zip Installer (many devices) - attached
Signing zips and APKs on-device has always been a tricky proposition due to memory requirements of the old SignApk.jar, running a jar on an Android device, and other complications for script-based zips. Android has always been missing a zip binary (for unzip see my Busybox Installer). ZipAlign is also handy if you do APK work. To remedy this once and for all, here's an installer to push my dexed version of topjohnwu's brilliant zipsigner.jar and static ARM compiles of zip and zipalign to /system/xbin, with a wrapper to run zipsigner with Android's dalvikvm. Detects and supports SuperSU/Magisk systemless installs. Can then be used from Terminal while booted.
odex Script Installer (all devices) - attached
Based on the great work and binaries from this thread, a simple installer to push my odex script along with the required dexopt-wrapper and zip binaries to /system/xbin and set the appropriate permissions. Automates the procedure to odex any apk or jar from the commandline to potentially improve performance. Dalvik runtime (KitKat and below) only. Also uses cut from busybox.
N5X/6P BLOD Workaround Injector (N5X, N6P) - link
When, unfortunately, my Nexus 5X was recently stricken with the abominable Bootloop of Death, I looked into the well-publicized workaround and turns out it was all contained in the ramdisk and cmdline of a Android image. This is the perfect application of AnyKernel2, so I made an AK2 add-on zip to patch both the current boot and recovery partitions with all the current workarounds to help others afflicted by this issue to hopefully regain their data/device as easily as possible. Linked is the Nexus 5X thread, the Nexus 6P thread may be found here.
N7'13 TWRP flo2flox Injector (N7 '13) - link
The Nexus 7 2013 (flo) has seen a bit of a resurgence with official Lineage 18.1 support repartitioned as "flox". Since official TWRP is still automatically being built only for flo and this isn't compatible with flox, and the minor changes required for flox support were a great application of AnyKernel3, this zip automates the patching process so making official TWRP from flo2flox is easy for all going forward.
GN Synapse Support Injector (GN) - link
This AK2 kernel add-on for the Galaxy Nexus injects support for the Synapse tweaking app into the current boot partition ramdisk, including all the Synapse interfaces for the GN I've maintained since the Franco Kernel and DirtyV Kernel days.
GN Recovery Color Correction Injector (GN) - link
The aging screen on the Galaxy Nexus was looking pretty rough in recovery until I discovered the recently added new OMAP kernel color correction was also present in the most recent TWRP recovery versions. So this add-on zip uses AK2 to patch the current recovery partition ramdisk to add the command to reduce that green/yellow SAMOLED nastiness.
Kernel init.d Support Injector (many devices) - attached
An experimental proof-of-concept. Following from great ideas by Captain_Throwback in my AnyKernel2 thread and using script from my Flashlt script above, this AK2 zip will inject basic init.d bootscript support into any kernel ramdisk on any emmc device with normal partition naming and using the Android bootable image standard, without having to bloat a ramdisk using a busybox binary. This zip is also signed, so could potentially be used with non-Nexus stock recovery on a locked bootloader.
CMSetup Fix for GApps Installer (many devices) - attached
Installs a su.d script fix to work around the CyanogenMod/LineageOS 13 ROM issue of a broken Quick Settings pull-down when CMSetupWizard is removed as part of a GApps installation. Removing CMSetupWizard is useful because it allows Google's SetupWizard to grant apps default permissions, so the workaround automatically executes the only required command at the appropriate time following first boot. Requires a SuperSU/Magisk installation (for su.d/post-fs-data.d support). Flash after the SuperSU/Magisk zip and your GApps.
Dev Team init.d Pack Installer (all devices) [see "950iosettings, etc." below] - link
A simple installer I wrote to create the /system/etc/init.d/ directory, extract the latest init.d scripts as published by the "Franco's Dev Team" tuning collective (of which I was a member), then set correct owner, group and permissions to the entire init.d directory. If you are a developer and would like to include these tunables/scripts in your kernel or ROM please provide credit. A lot of time and effort has gone into this project and that's all we ask.
Scripts
950iosettings + 875mntsettings + 925vmsettings + 975experimental init.d scripts (all devices) [with Franco's Dev Team] - links
Also available bundled in an installer. The scheduler tunables have already gained a bit of attention/adoption on various devices and kernels, but this is the init.d script I wrote to set the new custom scheduler tunables values as "default" by an independent loop, sleeping in the background and detecting each time the scheduler is changed. There is no effect on idle drain or deep sleep. The settings included are the complete work of the "Franco's Dev Team" (or "Team Franco") tuning collective, of which I was a member. We strove to perfect the scheduler, vm and various other settings for the smoothest and fastest experience available. The collective was: malaroth, osm0sis, joaquinf, The Gingerbread Man, pkgnex, Khrushy, shreddintyres. If you are a developer and would like to include these tunables/scripts in your kernel or ROM please provide credit. A lot of time and effort has gone into this project and that's all we ask. Lollipop(+) updated versions now also available through the continued excellent work of pkgnex.
999-flashafterupdate.sh addon.d+addon.d-v2 script (many devices) - attached
For ROMs that don't have "Flash After Update" support built into their delta/update process. During an upgrade, this script will flash zips from an sdcard directory, with several options (listed in the script header) for displayed output, after all other addon.d backup/restore actions have completed. This can be used to flash SuperSU and then an AnyKernel2 kernel on LineageOS, for example. Only zips that specifically support addon.d-v2 can be supported on A/B devices. See this how to for instructions for use with A/B devices. Unzip once downloaded and place in /system/addon.d/ with rwxr-xr-x (755) permissions.
98-twrp_ab.sh addon.d-v2 script (many devices) - attached
Allows you to keep TWRP installed in a boot partition through A/B OTAs with Magisk installed by copying the TWRP ramdisk from the current slot to the updated one, before Magisk's addon.d-v2 script patches it. Requires a current Magisk installation since we need the tools and Magisk's the only way to ensure a working addon.d-v2 environment across ROMs at the moment. Unzip once downloaded and place in /system/addon.d/ with rwxr-xr-x (755) permissions.
97-dumpimages.sh addon.d+addon.d-v2 script (many devices) - attached
For ROMs with boot.img, etc. inside an OTA payload.bin or otherwise inaccessible, it dumps the updated chosen partitions before further modifications (TWRP, Magisk, etc.), saving it to /sdcard/Download/boot.img or to/from other customizable locations at the top of the script. Unzip once downloaded and place in /system/addon.d/ with rwxr-xr-x (755) permissions.
00-omnirootfix.sh addon.d-v2 scipt (many devices) - attached
OmniROM appears to include 69-gapps.sh automatically in its /system/addon.d directory despite not shipping with any GApps; when not rooted this doesn't appear to present a problem, but really this is only because the script doesn't have enough permissions to run how it's supposed to since Omni's sepolicy doesn't let addon.d-v2 work correctly. Once Magisk is installed, providing more privileges to the addon.d-v2 update_engine, Omni's 69-gapps.sh would remove important system files during an A/B OTA when no GApps were installed, so this script will simply prevent that for those wanting to run Omni minimally and with root. Remove the .txt extension once downloaded and place in /system/addon.d/ with rwxr-xr-x (755) permissions.
00-resizesystem.sh addon.d script (many devices) - attached
One common solution for aging devices is to resize the /system partition so that it can hold newer, larger ROMs and, of course, GApps packages. On devices where the /system partition has been resized to hold larger GApps packages, but the ROM in use has system.dat format zips with no resizing functionality, the extra space would get lost in a ROM delta flash, breaking things when GApps attempted to restore. This script will resize the system partition to its maximum before the GApps restore occurs on EMMC-based devices with standard partition naming. Remove the .txt extension once downloaded and place in /system/addon.d/ with rwxr-xr-x (755) permissions.
10-extract-lineage-kernel.sh addon.d script (many devices) - attached
Nowadays with systemless root and other boot.img mods out there, it's good to have a backup of your ROM's unmodified boot.img handy in case you want to do a clean flash of your boot partition. Since LineageOS moved their update zips to a /data/data subdirectory that made this harder to get to, I automated the procedure as an addon.d script so that the newest gets extracted on each update. The output directory may be changed by editing the script. Remove the .txt extension once downloaded and place in /system/addon.d/ with rwxr-xr-x (755) permissions.
999-customkernel.sh addon.d script (many devices) - attached
Addon.d is awesome at restoring your GApps, root app, and other things after a ROM Delta, update, or dirty flash, but of course this can leave a lot of stuff out that you'd also have to re-flash (see below for a personal addon.d script you can modify to cover anything else you want to save). This script aims to help remedy the issue for custom kernel users on EMMC-based devices with standard partition naming by dumping the current kernel as part of the addon.d backup process, and then restoring it after the ROM has flashed its included kernel. Remove the .txt extension once downloaded and place in /system/addon.d/ with rwxr-xr-x (755) permissions. This is deprecated by my FlashAfterUpdate addon.d script, above.
logohack.sh (GN) - link
Galaxy Nexus bootloader image replacement hack script. Inspired by bitdomo's brilliant imgdata tool and replicating the functionality of Ezekeel's abandoned, broken paid Logo Me app, this script improves upon the app version by working on all Galaxy Nexus bootloaders and on-the-fly, to allow replacement of the Google logo and lock images within the sbl partition. Remove the .txt extension once downloaded and place in /system/bin/ or /su/bin/ with rwxr-xr-x (755) permissions. It can then be run from the Terminal.
flash_image (many devices) - attached
MTD devices require a little extra finesse when flashing partitions from the command prompt and multiple commands, versus MMC devices, for which we can just use the dd command both ways. I wrote this little script to simplify the process for myself in my MX Box tinkering. It parses /proc/mtd so you only need to enter the partition name. It requires _n0p_'s excellent MTD-Utils compiled for Android, and uses grep and cut from busybox. Remove the .txt extension once downloaded and place in /system/xbin/ with rwxr-xr-x (755) permissions. It can then be run from the Terminal.
getprio (all devices) - attached
Android doesn't allow you to check the priority (or "niceness") of a process with the getpriority command as you would with normal Linux, and busybox doesn't provide this functionality either, so I wrote this reasonably simple script to allow you to check the niceness of a process. Some kernels have been experimenting with increasing the priority of com.android.systemui for smoothness, so this command can be used for testing different levels and whether the renice command set it correctly. Remove the .txt extension once downloaded and place in /system/xbin/ with rwxr-xr-x (755) permissions. It can then be run from Terminal with either the pid (default), class or a class name search string. Uses pidof and pgrep from busybox.
gappsintegrator init.d script (many devices) - link
ROM GApps Auto-Integration of /data/app GApps into /system, complete with libs (unlike Titanium Backup), for Jelly Bean through Marshmallow. It should process things early enough in the boot that afterwards Dalvik will immediately do the cleanup ("Android is upgrading..."), much like following an OTA. An initial GApps installation is one requirement and there are some important notes for support of Lollipop and above. Intended for ROMs with a busybox installation. Can also remove libs from and zipalign the integrated APKs if those binaries are present in the ROM.
lmkwhitelist init.d script (all devices) - link
Users running ROMs or kernels with extremely aggressive custom lowmemorykiller (lmk) driver settings may notice their launcher redrawing frequently. Some kernels/ROMs also include an exclusion for this by making stock (or the included) launcher unkillable, however that still leaves all the 3rd party launchers out there that people use. I wrote this init.d script with a community created list of the most common launchers to make whichever one is installed unkillable. This also has instructions for how to set up init.d scripts. If your launcher isn't included in the list, you can modifiy it by adding the application class name (from the Play Store URL) to the list within quotes, separated by spaces. Also part of the 975experimental Franco's Dev Team init.d script, linked above.
dalvik2cache init.d script (all devices) - link
Bind mounts the dalvik-cache directory to the cache partition. Useful on devices where the cache is sizable and unlikely to be used for OTAs (custom ROM, etc.), and the data partition is not. Every little bit counts!
settingsdump.sh (all devices) - attached
In comparing vm settings from various kernels and ROMs to see what's out there, I wrote this script to generate a list of the values of all the relevant sysfs files and directories. Now expanded to cover cpu and governor as well. Remove the .txt extension once downloaded. To run it, assuming you just put it in /sdcard/, open Terminal Emulator and type: "sh /sdcard/settingsdump.sh" (without quotes). It will output the file to /sdcard/r*-output.txt where * is the revision of the kernel you're running. This makes it easier to compare what's changed between different nightlies, for example.
Other
BootUnlocker app (many devices) [with segv11] - link
With a number of users researching and contributing the bootloader lockbit and tamperbit offsets in threads around xda and to the development thread for seg11's excellent BootUnlocker app, I have begun making beta builds with these new devices added. With hopes of adding any/all that can be, it now supports all the older Nexus devices, OnePlus devices and several others. We are accepting Pull Requests and collaborators for further device/design updates. Check my original revival post for more details.
G-Box Midnight MX2 g18ref ROM, recovery and kernel osmods (MX Box) [with BenniBenassi & relol] - link
I bought one of these unbranded Android TV boxes and was immediately determined to tweak it as much as possible following my work on the Galaxy Nexus. Flashing the official Matricom stock ROM over the generic included one I also discovered the recovery didn't have any A/V output to my old CRT TV. I set out to dump the kernel and recovery images, fix the recovery images and tweak the kernel defaults for the most performance.
Holo Stock Notification Icons for Notification Toggle (many devices) - link
This was likely my first post ever on xda. It is a "Notificon" pack for j4velin's fantastic Notification Toggle App, bringing a seamless stock look to this indespensibly useful app. Also a great way to get back to Settings easily from the notification shade since Android 4.2, and add shutdown/reboot menu functionality to stock/vanilla ROMs.
My GN Kernel Settings + 900colorsettings init.d script (GN) - link
I was being asked a fair amount for my kernel settings over in the GN f.K thread where I helped out, so I posted them up. I also put up an init.d script for setting color values on boot, which can drastically change the outcome on older panels, and at least makes custom values seamless. Instructions for how to set up init.d scripts are included.
Galaxy Nexus Baseband Collection: maguro - i9250 / M420 / SC-04D Radios (GN) [with josteink] - link
Original thread author josteink moved on to other devices and asked me to take over the thread. Lots of great information on the GN radios, posted alphabetically by region and chronologically by the build string date I found embedded in the images. Huge respect and massive thanks to josteink for seeing the need for a baseband thread almost as soon as the Galaxy Nexus was launched, way back in December 2011, and maintaining it diligently.
TK GApps (many devices) [with TKruzze] - link
After helping TKruzze with some of the concept and script work for his famous Paranoid Android Google Apps packages (PA GApps 2.0), we decided to collaborate again for his return to XDA after a much-needed hiatus, with me doing the thread setup and management with DevDB, and a Q&A section so things don't get overwhelming for those trying to follow along. The main thread remains locked and can be subscribed-to for those wanting notification only when there's a new GApps release, and the Q&A functioned as the main discussion thread where people can help each other. Much of the script is the same from PA GApps but TKruzze has added some impressive new features, made many fixes and revamped a large portion of the documentation. I also continued as an adviser and submitted script when needed.
Nexus Louder Audio Improvement Patch (GN, N4, N5, N7 '12, N7 '13) [with Misledz] - link
One of my earliest forays into EDIFY scripting, I wrote the flashable zip install/revert scheme for this great volume boost mod by Misledz. The scripts check to see if the mod is already installed and if so recommends you flash the version-specific revert that goes with it. More on that in the Intelligent EDIFY thread. During install the script also backs up the ROM files it replaces so that you don't need to reflash your whole ROM if something goes wrong, just use the revert to restore the backups. I eventually rewrote this completely in shell script with a Universal install/revert, that detects which files to backup and leaves a list for itself to revert. I also wrote automation batch scripts for Misledz as the "Louder Build Farm" to simplify his work for all the versions of the mod he maintains for various devices, linked in the knowledge base below. GN/Dev thread linked; Other links can be found there.
Payload-Dumper-Go for Android Magisk Module (many devices) [with ssssut] - link
payload-dumper-go arm compile and wrapper for use extracting from payload.bin on-device.
Git for Android Magisk Module (many devices) [with Termux] - link
Hacked arm64 git commands for use on booted Android.
Google Experience XML Magisk Module (many devices) [with Google] - link
Hacked Google Nexus/Pixel/Android One sysconfig feature xml entries for use on non-Google devices.
Digital Wellbeing Add-on Magisk Module (many devices) [with Google & Open GApps] - link
Digital Wellbeing for Android 12L and 13 GApps that don't properly support it (like MindTheGapps).
Model Mod Magisk Module (many devices) - link
Experiment to append _SN to the existing device model to get CTS passing again after the September 2021 server-side SafetyNet changes, (superceded by kdrag0n's excellent Universal SafetyNet Fix module).
Xposed Framework Installer Zip (many devices) [with rovo89 & Tungstwenty] - link
When JB4.3 broke all previous root methods I made this simple frontend script to install rovo89's brilliant Xposed Framework for modding ROMs until they could release a new version themselves. Xposed Framework files and the install.sh used are the work of rovo89 and Tungstwenty; I have only created a recovery flashable zip and shell script to function as an alternative frontend for the framework installation process. Then updated to mimic the APK installation and allow devices with /system write protection like HTC's S-ON to install the framework. (Deprecated as of Xposed 2.5).
BBCode for my xda Signature (n/a) - link
Last and definitely least. A number of people have asked me about the formatting of my signature, so here are some simple BBCode tricks and workarounds I thought others might like too. Keep in mind that my signature can be significantly larger because of my RC status.
Enjoy!
Questions, comments and feedback welcome.
Credits & Thanks: All authors of any included binaries and libraries for their amazing work. Anyone who's helped me with these projects along the way.
Disclaimer: Naturally, you take all the responsibility for what happens to your device when you start messing around with things.
Knowledge Base
Links to information/research posts I've made and other experiments.
----
avbtool-arm (zip package) - link
AOSP's BootSignature.jar for AVB v1 was relatively simple to run on-device for boot.img modifying flashable zips like SuperSU and AnyKernel2 but avbtool for AVB v2 is written in Python, so that makes things a bit trickier. For experimentation I whipped up a little wrapper script to run avbtool on-device with an actual Python interpreter.
Omni SoundPacks (and Nexus Stock pack) - link
My suggested expansion to the Omni SoundPacks feature to allow it to cover all SystemUI sounds.
OnePlus FingerPrint Material Icons (Information) - link
My preferred fingerprint icon for the in-screen OP6T sensor using Zacharee1's excellent OPFPControl app.
----
Complete Shell Script Flashable Zip Replacement + Signing Documentation (Reference) - link
Using a shell script instead of an update-binary in flashable zips can make them universal for architecture and put a lot more power in the hands of the developer. This reference documents all of the analogous functions myself and others have written to make this easy.
Booted Zip Flashing Shell Setup Script (Reference/How-To) - link
My implementation of booted zip flashing, originally for AnyKernel2 in Franco Kernel Updater (now Franco Kernel Manager) and since expanded to support AK3's ability to be flashed from anywhere and support most other flashable zips on devices that allow remounting /.
Unified ext4/f2fs ramdisk + ROM installer (Reference) - link
Supporting multiple filesystems like ext4 and f2fs in a custom kernel boot.img ramdisk required some work before custom ROMs were updated to do this themselves and use fallback fstabs. This is the roll-up post gathering all the changes necessary for someone to add this pre-official support to their ramdisk, kernel and ROM installers.
FlashFire Recipe Book (Reference/How-To) - link
Just a quick reference of common tasks (OTA flashing, etc.) for people figuring out how to use Chainfire's brilliant flashing app.
personal addon.d (How-To/Template) - link
I was tired of having to redo a number of tasks (remove files, backup Nexus sounds and replace the AOSP ones, etc.) to get my device back to where I wanted it after flashing a newer nightly, so I wrote an addon.d script to do it all for me. Provided if anyone wants to modify it for their own personal setups.
KBox2: Set Up A Build Environment On Android (How-To) - link
Very cool Linux-like command prompt environment on Android. I originally had it set up as a native build environment with rudimentary git support. You can follow my steps to do the same.
Keeping SafetyNet Passing With Incremental Google OTA on Virtual A/B Devices (How-To) - link
Post-reboot checks added to the incremental OTA process for Virtual A/B devices using Google's servers made it impossible to remain rooted throughout the OTA process, but following these instructions you can complete the OTA then re-root without SafetyNet catching you.
Cygwin-Linux Cross-Compiler (How-To) - link
Compiling from Cygwin with a Linux target required some fixes to the toolchain, so I detailed them for future reference.
N4/N5/N7 '13 Qualcomm Optimized Bionic/Dalvik Patch Comparisons (updated zips) - link
Using Qualcomm optimized files on Snapdragon devices improves performance greatly on KitKat. Especially good on Nexus devices or AOSP ROMs. I took the time to dissect the required files and see what worked best.
AIK Build Farm (desktop shell script) - link
The Cygwin shell script "build farm" I wrote for my Android Image Kitchen project to perform all of the cross-compiles required for the mobile and Linux versions. Allows someone to setup the repos from scratch and build.
Louder Farm (zip packages) - link
The Nexus Louder project was a pretty massive system file modifcation undertaking. This details my work to make building the patch zips easy for co-dev Misledz, and includes the farm packages at various stages.
----
N7 '13 Bootloader cracking (Information) - link
Sat down with my parents' Nexus 7 2013 (before I got my own) over Christmas and cracked the bootloader for unlock support via my Nexus BootUnlocker Script zip and later the official BootUnlocker App.
N7 '13 Unbricking (Information) - link
Instructions I put together for recovering from a hard brick (bad bootloader flash usually), via the exposed Qualcomm/Marshall London "HS-USB Diagnostics 9006" mode.
Default System Alarm Setting Script (Information) - link
A script snippet function to allow easily changing the default alarm sound on ROMs that hide this ability, like OnePlus' OxygenOS.
SELinux Audit2Allow Script (Information) - link
A script snippet for turning SELinux audits in a logcat into allow statements ready for supolicy or magiskpolicy.
Partition Dumping Script (Information) - link
A script snippet for dumping all non-userland partitions from any eMMC device, useful for bootloader lockstate hacking.
GN Partition Information Table (PIT) Research (Information) - link
Wanting to push the GN as far as possible, several remaining users came together to discuss how it could be repartitioned to add more space to /system to better support Lollipop+ and I contributed a large amount of R&D over several posts throughout the thread which resulted in the PIT Editor script zip (posted above). Could be useful for other devices using PITs as well.
GN/N7 '12 tunables post (deprecated) (Reference) - link
The list of supported basic tunables on franco.Kernel for the Galaxy Nexus and Nexus 7 2012 back when those were my primary supported devices.
GN scheduler tunables HZ scale (Information) - link
The Galaxy Nexus scheduler (and other) tunables opperate on an odd scale due to the the device's HZ value in the source being weird. This post experiments with that and finding the method/equation behind it.
LMK boot timing (Information) - link
The Android lowmemorykiller module default tunables go through a bizarre sequence during boot, so I experimented and came up with a script to allow setting alternates as soon as possible.
LMK Launcher Whitelist/Niceness settings reversion (Information) - link
Setting oom_adj values and changing the niceness on launchers and systemui improved responsiveness and helped avoid these important processes being killed by LMK. Then I noticed sometimes they spontaneously reset; experimentation followed.
MTD partition flashing (Reference) - link
My MTD-based MX Box set-top device gave me a few hours of headaches until I figured out how to dump and flash the boot (kernel) partition correctly. This details my experiments and the correct procedure I discovered.
nano Android static build instructions (Reference) - link
A little documentation of all the dirty tricks I used to get the nano terminal editor utility to build for Android from the official git repo source.
mtd-utils Android static build instructions (Reference) - link
A little documentation of all the dirty tricks I used to get mtd-utils to build for Android from the official git repo source.
Pixel Launcher bind mount instructions (Reference) - link
I was annoyed that on stock Nexus 5X and 6P Pixel Launcher wasn't available and when sideloaded lost the Google Feed pane, so I replaced Google Now Launcher with Pixel Launcher using bind mounts.
Netflix broken DRM workaround instructions (Reference) - link
Custom Nexus 7 2013 ROMs Nougat+ have all had issues with Netflix due to some peculiarities of the DRM libraries the ROMs use, but some found that intentionally semi-breaking DRM using files from other devices allows Netflix to work again, but this broke Google Play Movies. I did some more testing, resolved the Play Movies issue and wrote up how to install the single needed replacement library either to system or with a systemless bind mount.
----
Thanks for the interest! More to come, I'm sure!
What can I say...
SUBSCRIBED
Sent from my Galaxy Nexus
Far superior
thanks
Franco Team always made a great work .... Keep it up.
Thanks for these great useful infos!
Bookmarked, subscribed and rated a well deserved 5 stars :good:
Thanks for sharing. Very useful.
Nice...
Envoyé depuis mon Galaxy Nexus avec Tapatalk
Nice collection osmosis
Many thanks osm0sis, to you and all the team for all your contributions Almost feel as though I know you since I've been hanging round GNex and N7 franco.Kernel threads for so long and if you pop up on the N4 thread it's like seeing an old friend I'm mostly quiet, but really appreciate all you do :thumbup:
Sent from my Nexus 4 using Tapatalk 2
Subscribed... Thanks dude...
-3StarsAndaSun
Subscribed. Thanks
Thanks back to you, everyone! I've learned a hell of a lot about Linux and Android in the year since I got my GN, and I mostly have xda to thank for that, even though I've always been the type to tinker and Google things. Still lots more to learn though! But, at the very least I guess nobody can say I haven't been busy since becoming a RC, huh?
Nice to see all these settings are adopted by others, also the interactive tuneables are used in ak kernel now.
Verstuurd van mijn Nexus 7 met Tapatalk
Subscribed :good: !
New version of testvalue.sh up. I added the input value to the output.txt file to make it easier to read since it starts at 0. Right now we're trying to work out the equation for the scale of certain cfq and deadline tunables on the GN, which is a bizarre one:
7, 15, 23, 31, 39, 46, 54, 62
Increases by 8s but occasionally (on the 5th jump, though sometimes 6th) it increases by 7.
Edit: Every 3rd increase of 7 occurs on the 6th instead of the 5th.
Edit 2: Stats genius of the group, @pkgnex worked out what the trick was; dropping the decimals once calculated.
So in Excel: y=TRUNC(x*7.8125,0)
:good:
The "why" of the GN tunables working this way, with a value of 125/16 is a very good question. No ideas there, personally. Something to do with the GN having a HZ value of 128 (where on others it's 100 or even 200) I'd assume, but I don't see the direct connection.
This was very handy to know though, because the cfq+deadline source requires the number of jumps (x) to hardcode the values, not the actual desired numbers like you'd expect.
Perfect!!!
Very interesting
Created a getprio script last night for use in /system/xbin as a runnable script to check the niceness of a process. It's up in the 2nd post now. It attempts to make up for Android not having "getpriority", and not displaying the niceness in "top" or "ps" like it would on mainstream Linux.
Code:
usage: getprio [-p] <pid> | -c <class> | -s <search string>
note - class name search will only use the top result
So you can either -p the numeric pid of a process if you know it (this is the default so the -p argument is optional), -c the class name of the process (eg. com.android.systemui), or -s a search string using part of the class name (eg. systemui). If there is more than one result for the search only the top result will be returned so if you are trying something like "-s mms", you'll only see the system mms process and not com.android.mms until you get more specific with "android.mms" or something. It's likely you've got a lower level process if you get the response "Warning: empty class name!" so that's your tip your search was too broad. Naturally, processes must be running in order to return info as well. :good:
Edit: ps -p will display niceness on Android, but it's not ideal if you want it only for a specific process like with getpriority. Thanks boype.
Update 14-Jul/18: Busybox v1.29.0 released (Complete changelog: here)
Hello XDA,
All the flashable zips include two builds.
SELinux Enabled and Normal
This post will give you a pretty good idea about the difference.
There are 401 applets included in the normal and 413 applets included in the selinux build.
Here's a list for the same.
NOTE: Installing busybox does not modify your device's selinux status.
Architectures supported: arm, arm64, x86, x86_64, mipsel, mips64el and mipseb.
The attached zips install busybox in one of /magisk/bbxyds, [/data/adb]/su/xbin, /system/xbin, [/system]/vendor/bin after cleaning older busybox binaries and their symlinks from the device (if any).
Universal busybox installer flashable zip detects the architecture and installs busybox accordingly.
Code for mounting the su.img and running in embedded mode is borrowed from the SuperSU project.
SELinux status is automatically detected by the installers.
Behaviour of all the installers as well as the cleaner can be manipulated using a bbx.conf file which should be placed in one of /sdcard, /data or /cache. For more details refer to the second post.
TWRP recovery or Flashfire is recommended for flashing the attached installers, however the code is pretty generic and should work on other recoveries too.
Projects using my BusyBox builds are:
Open Gapps
Apps2SD
Project Skynet
StØck ROM Sense 5 by @denkem
Stock Debloated roms for nexus 5, 6, 5x and 6p by @tupac4u
Inlightning Org
Universal SafetyNet Fix by @Deic
If you would like to include my builds in your project, a link to this thread in the project thread would be expected.
Also, if you can, pm me about it so I can add the name to this list.
Credits:
@7175 for his thread
@bovirus @Chinaboy5216 @skulldreamz for testing and reporting
XDA for...do I need to say it
Disclaimer: Neither me nor anyone else at XDA is responsible for what happens to your device. Please use the tools/utilites attached at your own discretion.
Having said that, I'll try my best to help you with any bugs or exceptions you might face.
Download: Click here
Mirror: Sourceforge
Busybox-CLEANER.zip and all the installers clean BusyBox in /su/xbin /data/adb/su/xbin /system/xbin /system/vendor/bin /vendor/bin /data/adb/su/bin /system/bin /su/bin /magisk/phh/bin /su/xbin_bind /data/adb/su/xbin_bind and /magisk/bbxyds
The installers will automatically detect 32/64 bit arch and install the appropriate binary
NOTE: If FlashFire gets stuck on a black screen or errors out when flashing, please flash from recovery instead. (There seems to be a /system mounting issue on some devices in FlashFire)
File list:
Busybox-<VERSION>-YDS-UNIVERSAL.zip
Flashable zip compatible with all architectures.
Busybox-<VERSION>-YDS-<ARCHITECTURE>.zip
Architecture specific flashable zip files.
Busybox-<VERSION>-YDS-<ARCHITECTURE>.tgz
Consists of pre-compiled busybox binaries.
Not flashable
Busybox-installer-<ARCHITECTURE>.bin
Executable files for installing busybox without rebooting in recovery mode. See 2nd post for more details.
Not flashable
Source code (zip, tar.gz)
Source code files automatically generated via Github releases.
Not flashable
For older versions refer to my androidfilehost, drive, mediafire or sourceforge folders.
Toolchains used for building these binaries can be found here (host arch -> x86_64).
For official busybox source and changelog refer here.
Do report how these work out for you, as most of the testing has been done on emulators.
You can request any applet in this thread. If it does not affect the size of the whole binary or there are enough users backing it, I'll add it in the next release.
When reporting please attach the BusyBox-YDS-installer.log, it should be in either /sdcard, /data or /cache.
Source:
https://github.com/yashdsaraf/busybox
https://sourceforge.net/p/busybox-yds/code
Op
bbx.conf:
Allowed options in bbx.conf are,
installdir=<path>
Change the directory for installing busybox to <path>. If <path> is not a valid directory, then the installer will fall back to the default installation directory.
Note: Any older busybox installation in the supplied directory will be cleaned.
Warning: Please use this option only if you are absolutely sure about what you are doing.
e.g installdir=/data/local/xbin
selinux=[0|1]
Controls the selinux support in busybox.
E.g To disable SELinux support
Code:
selinux=0
To enable SELinux support
Code:
selinux=1
noclean
If supplied, the installers will skip cleaning any previous busybox installations.Sample:
To install busybox in /data/local/xbin without cleaning previous busybox installations with SELinux support enabled, following would be a valid bbx.conf file
Code:
installdir=/data/local/xbin
noclean
selinux=1
Note: Busybox cleaner only reads the installdir option and cleans busybox in that directory
Self extracting executables:
All the .bin files in the download link in the above post are self extracting executables. They can install busybox directly from a terminal without rebooting in recovery.
Usage:
Install any terminal app.
Get root privileges,
Code:
su
E.g if you have the installer for ARM downloaded in sdcard, run this
in the terminal,
Code:
sh /sdcard/Busybox-installer-arm.bin
And watch the magic happen.
Options:
-h | --help
Show help message. -i | --interactive
Run script in interactive mode.-nc | --noclean
Do not clean previous busybox installation(s) (IF ANY).-oc | --onlyclean
Clean previous busybox installation(s) (IF ANY) and exit. If supplied, all other options are ignored except installdir.--selinux=[es|o]
Enable or disable selinux support in busybox.--installdir=<path>
Install busybox in <path>.Tip: To clean busybox in a custom directory, run the installer in onlyclean mode and set installdir to the custom directory which needs to be cleaned.
e.g. to clean busybox in /data/local/xbin run the installer as
Code:
sh <script_name> -oc --installdir=/data/local/xbin
@YashdSaraf
Thanks for new thread
"[TOOL][BIN]busybox flashable for all architecture via recovery"
I will remove "Latest" and add info that is flashable via recovery.
I will change the thread title in
Nice work .
Keep it up !!!
Sent from my E2303 using XDA Free mobile app
bovirus said:
..Thanks for new thread....
Click to expand...
Click to collapse
is the issue mentioned here addressed? @YashdSaraf, hope you read my pm.
@YashdSaraf had a quick question. I have been using your busybox zips since you've staying building and i first want to say thank you. My question is when i use the busybox unistaller zip or busybox cleaner with your zip it says that it removes 0 symlinks and when i use stericson busybox zip it says that I'm removing 3xx plus symlinks. I was just wondering wondering why his and osmosis show that binaries were symlinked and yours showed that 0 were? I want to lastly say though that your zip worked and busybox was installed and worked correctly. I like some of the extra binaries yours offers do just a curious question thanks.
Sent from my Nexus 6P using Tapatalk
m0han said:
is the issue mentioned here addressed? @YashdSaraf, hope you read my pm.
Click to expand...
Click to collapse
I did, I'm sorry I was too busy switching to a new OS. Anyways, I've got a couple of ideas over what might've gone wrong. I'll pm you the updated installers as soon as I'm done for testing. :good:
skulldreamz said:
@YashdSaraf had a quick question. I have been using your busybox zips since you've staying building and i first want to say thank you. My question is when i use the busybox unistaller zip or busybox cleaner with your zip it says that it removes 0 symlinks and when i use stericson busybox zip it says that I'm removing 3xx plus symlinks. I was just wondering wondering why his and osmosis show that binaries were symlinked and yours showed that 0 were? I want to lastly say though that your zip worked and busybox was installed and worked correctly. I like some of the extra binaries yours offers do just a curious question thanks.
Sent from my Nexus 6P using Tapatalk
Click to expand...
Click to collapse
I did not update the uninstaller after systemless root was introduced so it must be looking only in the /system partition for busybox. I'll upload the updated uninstaller today.
Thanks for your support.
YashdSaraf said:
.....I'll pm you the updated installers as soon as I'm done for testing.....
I did not update the uninstaller after systemless root was introduced....
. I'll upload the updated uninstaller today.......
Click to expand...
Click to collapse
got your pm. will test the updated installer and revert by pm.
is this 'the updated uninstaller'? can this be used in 'any setup'?
m0han said:
got your pm. will test the updated installer and revert by pm.
is this 'the updated uninstaller'? can this be used in 'any setup'?
Click to expand...
Click to collapse
Yes the one attached in the OP is the latest one. It will clean busybox in /system/bin, /system/xbin, /su/bin, /su/xbin.
So yeah it can be used in 'any setup'.:good:
@YashdSaraf
Are there any news about busybox for ARM and 64boit Android SO (like 5.1.)?
YashdSaraf said:
.....I'll pm you the updated installer......
Click to expand...
Click to collapse
...will test the updated installer and revert .....
your zip worked well, i think. thanks.
86_64 for zenfone 2 Z00A?
@YashdSaraf
Thanks for sharing mate. really appreciated. :good:
PM sent
Cheers,
UITA
@YashdSaraf
thanks for your busybox.
I had some problems to install it (I tried arm/arm64/all zip file withS elinux).
Every time the installation end with error "Wrong architecture".
My build propri content about cpu is
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=arm64-v8a
ro.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=arm64-v8a
To install I had to use previous zip file (1.24.1) where you not have archictecture check and replace 1.24.1. busybox with busybox extracted by 1.24.2 zip.
Where can i get the error log of your script? It show just only /data...
Please check your script.
Thanks.
@YashdSaraf Could you update busybox to 1.24.2?
@exodius48
All busybox files in first post are version 1.24.2.
@YashdSaraf
Please add a note in first post about the vesrion of busybox.
bovirus said:
@exodius48
All busybox files in first post are version 1.24.2.
Click to expand...
Click to collapse
Sorry for asked it. I couldn't find busybox version on 1st post, also on the tittle.
@exodius48
In the first post there are various Download links with all busybox for all platforms.
OK... the BusyBox app on the play store had an update to 1.24.2.
When I install the update from 1.24.1 to 1.24.2, it states that it installed successfully, it doesn't reflect it.
It still shows that 1.24.1 is installed.
I tried wiping the dalvik cache before and after as well as reinstalling the app and it still reflects 1.24.1.
Also, it displays that 1.24.2 will be installed in the system xbin but, doesn't.
Thank you.
bovirus said:
@YashdSaraf
thanks for your busybox.
I had some problems to install it (I tried arm/arm64/all zip file withS elinux).
Every time the installation end with error "Wrong architecture".
My build propri content about cpu is
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=arm64-v8a
ro.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=arm64-v8a
To install I had to use previous zip file (1.24.1) where you not have archictecture check and replace 1.24.1. busybox with busybox extracted by 1.24.2 zip.
Where can i get the error log of your script? It show just only /data...
Please check your script.
Thanks.
Click to expand...
Click to collapse
Hey,
I think the reason for failure was that the script could not detect the /data partition.
Please try these zips instead.
arm arm64
There should be a BusyBox-YDS-installer.log in either /sdcard, /data or /cache, whichever your device supports.
Do attach it when reporting back.:good:
Ibuprophen said:
OK... the BusyBox app on the play store had an update to 1.24.2.
When I install the update from 1.24.1 to 1.24.2, it states that it installed successfully, it doesn't reflect it.
It still shows that 1.24.1 is installed.
I tried wiping the dalvik cache before and after as well as reinstalling the app and it still reflects 1.24.1.
Also, it displays that 1.24.2 will be installed in the system xbin but, doesn't.
Thank you.
Click to expand...
Click to collapse
I'm not sure what are you talking about. I'm not related whatsoever to any play store busybox installer apps. Try one of the installers from the op to install 1.24.2 busybox.
LazyFlasher & no-verity-opt-encrypt
INTRODUCTION
Hello Users and Developers of XDA!
LazyFlasher is a custom kernel flashing tool designed to make it easy to dynamically modify ramdisks and inject kernel binaries into the current boot image.
It's the swiss army knife of kernel flashing for use in Team Win Recovery Project.
The intent behind it was to allow a 1 custom kernel fits all approach, where your users can flash single zip on any ROM for a particular device,
allowing your kernel to be compatible with the vast majority of custom ROMs already out there. It takes away the pain of building custom boot.img
for each and every variant a user requests and puts it into 1 low maintenance intelligent universal flashable zip.
You might already know of @osm0sis's AnyKernel2 project. This approach is similar to that. Back in late 2015 I decided to design a more compatible, more friendly, and more feature filled version. Since then, AnyKernel2 has apparently improved a lot so if LazyFlasher doesn't accomplish what you need, AnyKernel2 probably will.
LazyFlasher does not currently support ELF boot images.
For users of no-verity-opt-encrypt: This thread can also be used to discuss the no-verity-opt-encrypt project which is just a minimal version of the LazyFlasher framework.
Disqus thread: https://www.xda-developers.com/xda-...-is-an-alternative-to-the-anykernel2-project/
THE GITHUB REPOSITORY
You can find LazyFlasher's development and download it here: https://github.com/jcadduono/lazyflasher
LazyFlasher source code is distributed under the BSD 2-clause license. You can do anything you want with it, however, some of the binaries used by it are under GPLv2 or GPLv3 licenses.
FEATURES
ChromeOS support (ChromeOS test-key signing and recognition)
MediaTek device support (MTK headers)
SELinux policy injection support via sepolicy-inject
Example scripts to disable dm-verity or forced encryption during the install process (010-no-force-encrypt, 015-no-dm-verity)
A process that executes a sorted list of scripts for making the desired modifications (separate from the framework)
Handily unpacks, decompresses, applies changes, compresses, and repacks boot images quickly and safely
Supports Gzip, LZ4, Bzip2, and LZO ramdisks. Support for LZMA and XZ is a work in progress
Supports arm (armv7), arm64 (aarch64), x86 (i386), x86_64 (amd64), mips, and mips64 architectures
Supports dtb.img replacement (place it in the root folder named "dtb.img")
Scans fstab and partition locations for the boot partition, optionally allows a preset location
Intelligently installs kernel modules by copying the previous layout of /system/lib/modules and creating symlinks
Creates modprobe supported /lib/modules aliases if kernel modules are included in the installer (030-kernel-modules)
Installs new files to the ramdisk and sets their permissions automatically based on file type from ramdisk-patch (020-patch-ramdisk)
Includes an optional bbe tool for applying binary patches
Unnecessary architectures and tools can be removed to save space
Many useful functions and variables included in the patch.d environment to simplify modification/patching scripts (patch.d-env)
Simple "make" build system
SETTING UP LAZYFLASHER
LazyFlasher is only designed for building on Unix based systems such as Linux, Mac OS X, and FreeBSD.
To download it (feel free to fork it so you can have a copy on your GitHub to modify instead!):
Code:
cd ~/build
git clone -b kernel-flasher https://github.com/jcadduono/lazyflasher.git
cd lazyflasher
To use LazyFlasher, you'll probably want to take a look at the Makefile, config.sh, and META-INF/com/google/android/update-binary (a shell script).
There's a few things you can change there to personalize it to your needs.
(make another git commit to save your setup!)
You should also check out the README! There is a lot of useful information there.
Once the installer is set up to your liking, all you have to do to build it is copy the resulting kernel binary from your kernel build output into the lazyflasher folder.
If you have built with kernel modules (make modules_install), copy build/lib/modules -> lazyflasher/modules.
Now simply run:
Code:
make
A TWRP flashable zip and sha1sum is created!
You should consider signing the zip with AOSP test-keys so that users can verify its integrity before flashing it.
LOOKING TO TRIM DOWN THE INSTALLER?
I have forked the kernel-flasher branch to a branch called kernel-flasher-arm64-minimal. This provides all the features of kernel-flasher except sepolicy injection and bbe, and only supports arm64 devices. It reduces the minimum zip size from 1860 KB to 200 KB.
You can use this branch instead if you like. If you're using another architecture, just look at the trimming commit as an example and apply it for your arch.
BUT I AM ON LE WINDOWS!
How did you build your kernel binary?!
Anyways, there is an alternative for building it on Windows.
You can download the LazyFlasher kernel-flasher branch as a zip file from GitHub and extract it somewhere on your PC.
Make your modifications using Notepad++.
You can then use a tool such as 7-zip to create a zip file by selecting everything in the folder, right clicking, and going to 7-Zip -> Add to "lazyflasher.zip".
LIMITATIONS AND KNOWN ISSUES
It will not run on TWRP built in Android 4.3 or earlier (usually builds older than 2.8.0.0)
Requires Busybox to exist in the TWRP build. All official builds should have this.
There may occasionally be some devices that are unsupported due to extreme modifications made to the boot image format by the manufacturer. If you have one of these devices, feel free to contact me and I will try to add support for it if it is worth the effort.
If you have an issue, please gather a recovery.log from TWRP after flashing and I will try to look into it. I can't do anything to diagnose your problem without a recovery log.
Code:
adb pull /tmp/recovery.log
JUST WANT TO DISABLE VERITY/ENCRYPTION?
You can build lazyflasher by itself, empty, without a kernel image or modules and flash it!
It's already set up to automatically disable verity and make encryption optional.
Alternatively, there's a branch already set up called no-verity-opt-encrypt. You can find prebuilt official zips at: https://build.nethunter.com/android-tools/no-verity-opt-encrypt/
WHO ELSE IS USING LAZYFLASHER?
I'll keep a list here of cool projects that are using it. Feel free to ask for yours to be added.
The Kali Linux NetHunter project (GitHub, Website)
no-verity-opt-encrypt, no-verity-force-encrypt, twrp-data-fstype-swap (Website/Download)
WHAT IS LAZYFLASHER USING?
LazyFlasher makes use of a few open-source projects. You can find their source code here:
bootimg / libbootimg for boot image unpacking/repacking - https://github.com/jcadduono/android_external_libbootimg
bbe for binary patching - https://github.com/jcadduono/android_external_bbe
bzip2 for ramdisks - https://github.com/jcadduono/android_external_bzip2
lz4 for ramdisks - https://github.com/jcadduono/android_external_lz4
futility for ChromeOS boot image signing - https://github.com/jcadduono/platform_external_vboot_reference
sepolicy-inject for sepolicy policy injection - https://github.com/jcadduono/android_external_sepolicy-inject
XDA:DevDB Information
LazyFlasher, Tool/Utility for the Android General
Contributors
jcadduono
Source Code: https://github.com/jcadduono/lazyflasher
Version Information
Status: Stable
Current Stable Version: 5.1
Stable Release Date: 2017-02-01
Created 2017-02-02
Last Updated 2017-02-07
We should give this man award.
The Job that he has done with this and Nethunter is just amazing.
Thank you and keep up the good work
Nice tool. Keep up a good work
Great Work! Hope i can include it into my Projects in the Future...
Thanks a lot for that!
You are a goddamn god.
Honestly Annoying said:
You are a goddamn god.
Click to expand...
Click to collapse
thx dude, usually that phrase is reserved for Chainfire accomplishments
y u nu support mah Indian AF MTK fone @jcadduono
Kidding, awesome work on this though!
Good one , this man develops for the developers !
Is it possible to have this on i9100 ? AnyKernel2 doesn't work with i9100
Skyline said:
Is it possible to have this on i9100 ? AnyKernel2 doesn't work with i9100
Click to expand...
Click to collapse
nope, no plans to support that device, surprised they are still out there, i would expect most to be dead emmc by now. :|
you can probably modify boot-patcher.sh to copy partitions to split-img folder then flash them back instead of using bootimg
i don't even know if lazyflasher's binaries will run on any of the i9100 twrp builds. might be too old.
if i can get an example layout of i9100's partitions i can fork it to a new branch, called kernel-flasher-sgs2 and make it compatible for you guys.
jcadduono said:
nope, no plans to support that device, surprised they are still out there, i would expect most to be dead emmc by now. :|
you can probably modify boot-patcher.sh to copy partitions to split-img folder then flash them back instead of using bootimg
i don't even know if lazyflasher's binaries will run on any of the i9100 twrp builds. might be too old.
if i can get an example layout of i9100's partitions i can fork it to a new branch, called kernel-flasher-sgs2 and make it compatible for you guys.
Click to expand...
Click to collapse
They are too old but still supported by lineage 14.1 and official twrp 3.0.2-1 without any problems
osmOsis dev of anykernel2 said that i9100 and older devices are having different boot img header format when i tried to run anykernel2 script it says Android magic is not found something like that
interesting tnx
Wow...
I'm just recognizing now, how powerful lazyflasher is ...
Setting default.prop values and settings. Disable Encryptions and so on. Wish I could contribute something but I'm still learning how it works. For now I've just included lazyflasher into my PATCH to disable DM Verity and forced Encryption and to make some edits on the default.prop. That's really useful since the build.prop doesn't allows such deep changes.
@jcadduono what would be in the Theory possible with the Lazyflasher? Could we add things like Gouverneurs or default Kernel Clockings? Init.d Support? Sorry if I sound noobish :angel:
So, uh, is there a TL;DR for lazy people? :silly: :laugh:
@jcadduono this is absolutely awesome. thank you for your hard work.
Hope that someone can dev nethunter to Asus zenfone 5 t00f :fingers-crossed:
can you please make a tutorial vedio of it because i don't get it and i'm sorry for my stupidity
Will it work for Android Oreo / LOS 15?
Did anyone succeeded in removing dm-verity? I got this error
good
Enhanced twrp for op3 and op3t
Download from official server:
Download for oxygenos and other non-treble ROMs: https://glassrom.pw/op3_recovery.img
Download for treble ROMs: https://glassrom.pw/op3_recovery-treble.img
Download from CDN:
Download for oxygenos and other non-treble ROMs: https://cdn.glassrom.pw/op3_recovery.img
Download for treble ROMs: https://cdn.glassrom.pw/op3_recovery-treble.img
Unofficial mirrors:
Hosted by @Sytis https://storage.ceres-sys.de/glassrom
Don't ask these questions. Seriously:
Features: none. It's a recovery. It should be as simple as possible because you rely on this stuff to recover your device in case something goes wrong
Seriously. Were you expecting features from a custom recovery?
Screenshots: it looks like TWRP
Important. There is a blank option and a system_root option in the mounts section. These are only for compatibility with scripts. Do not try to tick them yourself
Some scripts may throw a "failed to umount /system_root" message. This is fine
Important: why do some ROMs refuse to flash?
Some ROMs like oxygenos and glassrom use a feature called "downgrade attack prevention". If TWRP's build date is higher than the build date of the ROM the installation script assumes a downgrade attack is happening and the flashing fails
System nandroid restore fails:
You are not supposed to be restoring file-based backups of the system partition on a device with dm-verity in the first place. Backup and restore system image backups.
Glassrom users: if this is your first time flashing glassrom remember that the current enhanced twrp will always have a build date higher than the current glassrom build. In other words you can only flash a newer glassrom build as long as your enhanced twrp build is older or in other words:
Switching to glassrom: use official twrp, flash glassrom and then flash enhanced TWRP to enforce downgrade attack prevention
Updating glassrom: no need to switch to official. Always update glassrom before you update enhanced twrp
This was intentionally done to prevent downgrade attacks on glassrom. Using enhanced twrp with glassrom is recommended
This TWRP addresses a number of issues that have been plaguing the op3:
Uses a backported F2FS driver (5.1-rc1-3.18) that fixes an issue where TWRP would get stuck on the TWRP splash screen for a long time if the user was using F2FS
Uses an upstream kernel that was taken from lineage's common kernel https://github.com/LineageOS/android_kernel_qcom_msm8996
Added all crypto footer code back to resolve all encryption issues
Improved detection of device variant. Recovery now validly detects op3 and op3t
A full selinux policy so that files do not get labelled incorrectly. This resolves a bunch of issues like "device doesn't boot after restoring nandroid"
Built against full lineage source. No minimal manifest or any other nonsense
Upstreamed sdfat driver for better suppport for USB-OTG drives
No prebuilt kernels. Uses a fully source built kernel
Kernel built with a compatible GCC 8. No weird compiler optimisation
Ext4 is the default filesystem instead of f2fs
Current issues: even if the source code is out building TWRP against lineage is not something a beginner can do. If somebody is willing to contribute build documentation they are more than welcome
XDA:DevDB Information
Anupritaisno1's enhanced twrp builds, Tool/Utility for the OnePlus 3
Contributors
anupritaisno1, anupritaisno1, dianlujitao
Source Code: https://github.com/GlassROM-devices
https://bitbucket.org/anupritaisno1/aarch64-linux-gnu
Version Information
Status: Stable
Current Stable Version: 3.3.0
Stable Release Date: 2019-05-01
Created 2019-05-03
Last Updated 2019-05-02
A request to moderators:
People often ask "screenshots" and "features" while this really doesn't make much sense in the context of a recovery. It's a recovery
Please delete such posts to keep the thread clean
Reserved
Feedback:
update-scripts that use run_program("/sbin/busybox) doesn't work as of the latest TWRP builds.
aboodyaiman said:
Feedback:
update-scripts that use run_program("/sbin/busybox) doesn't work as of the latest TWRP builds.
Click to expand...
Click to collapse
Busybox was removed. I've updated my flashable zips to use run_program("/sbin/mount", "/system"); instead.
Replacing 'busybox' with 'toybox' should work too.
Dirk said:
Busybox was removed. I've updated my flashable zips to use run_program("/sbin/mount", "/system"); instead.
Replacing 'busybox' with 'toybox' should work too.
Click to expand...
Click to collapse
Have you tried this*? I'm waiting feedback :silly:
I'm not in a good time for messing around..
*i mean the recovery as general
aboodyaiman said:
Feedback:
update-scripts that use run_program("/sbin/busybox) doesn't work as of the latest TWRP builds.
Click to expand...
Click to collapse
Busybox is pretty terrible and most of it's executables aren't even compliant to standards
Please update your scripts to use toybox or ship the actual statically linked binaries
Dirk said:
Busybox was removed. I've updated my flashable zips to use run_program("/sbin/mount", "/system"); instead.
Replacing 'busybox' with 'toybox' should work too.
Click to expand...
Click to collapse
You should specify the "-o rw,remount" flag otherwise if mount system partition read-only is ticked there's a high chance system is mounted read-only and the script won't actually touch the system partition. This can be achieved by using a shell script instead of run_program()
Your command can also fail with "cannot find /system in the fstab". Instead of calling mount that way you should use this edify command and then call mount with run_program() to make sure it doesn't fail
Code:
mount(fs_type, partition_type, name, mount_point)
Please see https://source.android.com/devices/tech/ota/nonab/inside_packages
Toybox uses a slightly different mount command so merely replacing all instances of busybox with toybox will not work
anupritaisno1 said:
Busybox is pretty terrible and most of it's executables aren't even compliant to standards
Click to expand...
Click to collapse
IMHO bb is much more sophisticated then tb. If compiled with long options enabled bb is more posix compliant then any other multicall binary I know of.
The original decission to replace bb by tb by google was made because of license politics (bb: gnu copy left; tb: apache) - technically bb is superior to tb, for the amount of implememted commands as well as the posix compliance of the implemented commands (if configured correctly). I.e. parts of dns and resolver libs in tb are broken from the beginning of tb used in android (though this doesn't matter in recovery only use). fgrep/egrep are another broken/non-posix-compliant topic, which is solved by adding standalone binaries.
The claim you've made is at least questionable, and since you are publishing your sources (aka complying to gpl), the main reason for not using bb is not true for your twrp builds.
You may consider to put in bb additionally. For los integration, I've made a bb setup not overriding any tb links and installing bb as well as it's links to /system/xbin. With nearly no effort the installation target could be changed to i.e. /xbin or /bb/bin. If the installation dir is added in the path after the path to tb, you'll ship a recovery not only compatible with latest pie sources, but also with backward compatibility for flashable zips relying on bb.
https://github.com/nvertigo/android_external_busybox/tree/nlos-16.0
nvertigo67 said:
IMHO bb is much more sophisticated then tb. If compiled with long options enabled bb is more posix compliant then any other multicall binary I know of.
The original decission to replace bb by tb by google was made because of license politics (bb: gnu copy left; tb: apache) - technically bb is superior to tb, for the amount of implememted commands as well as the posix compliance of the implemented commands (if configured correctly). I.e. parts of dns and resolver libs in tb are broken from the beginning of tb used in android (though this doesn't matter in recovery only use). fgrep/egrep are another broken/non-posix-compliant topic, which is solved by adding standalone binaries.
The claim you've made is at least questionable, and since you are publishing your sources (aka complying to gpl), the main reason for not using bb is not true for your twrp builds.
You may consider to put in bb additionally. For los integration, I've made a bb setup not overriding any tb links and installing bb as well as it's links to /system/xbin. With nearly no effort the installation target could be changed to i.e. /xbin or /bb/bin. If the installation dir is added in the path after the path to tb, you'll ship a recovery not only compatible with latest pie sources, but also with backward compatibility for flashable zips relying on bb.
https://github.com/nvertigo/android_external_busybox/tree/nlos-16.0
Click to expand...
Click to collapse
Thanks. I guess I was wrong about busybox
I'm still not considering shipping busybox. Whenever I've tried it something broke so I'll just be sticking with toybox on that part
What I might be able to do is make a zip that copies busybox to /sbin/busybox and since it's just copying in ram there shouldn't be much of a problem. Users can flash this zip as a way to have backward compatibility with older zips. That sounds like a much better option honestly as then the fix is not just tied to my recovery but can be used on every recovery that doesn't have busybox on the op3
Edit: I also do not think shipping your busybox is a very good idea. You're compiling busybox with this
-Wno-error=implicit-function-declaration -Wno-implicit-function-declaration
Click to expand...
Click to collapse
I don't even know why this is a compiler warning. This should be an error but if you're shipping busybox with that warning disabled instead of fixing it that's just asking for trouble
anupritaisno1 said:
What I might be able to do is make a zip that copies busybox to /sbin/busybox and since it's just copying in ram there shouldn't be much of a problem.
Click to expand...
Click to collapse
...and on every second page of this thread, you'll be asked, if flashing bb is necessary on each update. Then you'll need to answer every time: "no, you need to flash it prior to each flashing of a bb needing zip."
If you just say bb is droped upstream and you want to keep your twrp clean.
Anyway: I've fixed the static build target.
anupritaisno1 said:
Edit: I also do not think shipping your busybox is a very good idea. You're compiling busybox with this
Click to expand...
Click to collapse
Thanx for the heads up - you are absolutly right here! (This was on my todo list more then 2 years ago, then I fogot to do it... I don't like people pointing me to my old and forgotten todos... )
https://github.com/nvertigo/android_external_busybox/commit/f512d6cbb4181970b47383a6efe0c01f27a0d978
nvertigo67 said:
...and on every second page of this thread, you'll be asked, if flashing bb is necessary on each update. Then you'll need to answer every time: "no, you need to flash it prior to each flashing of a bb needing zip."
If you just say bb is droped upstream and you want to keep your twrp clean.
Anyway: I've fixed the static build target.
Thanx for the heads up - you are absolutly right here! (This was on my todo list more then 2 years ago, then I fogot to do it... I don't like people pointing me to my old and forgotten todos... )
https://github.com/nvertigo/android_external_busybox/commit/f512d6cbb4181970b47383a6efe0c01f27a0d978
Click to expand...
Click to collapse
I haven't really checked the code but I'm not that sure about this part
Shouldn't it be like
Code:
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
Idk just sounds more correct that we don't want a redefinition here
Is there any need for a manual mount of 'fakecache' like in Enhanced TWRP of OP2 ?
I hope not...
Thanks for the development !
gps3dx said:
Is there any need for a manual mount of 'fakecache' like in Enhanced TWRP of OP2 ?
I hope not...
Thanks for the development !
Click to expand...
Click to collapse
The entire fakecache experiment was me trying to port treble to the op2
That obviously failed and I'm in the process of removing that hack even from the op2
It's not there on this TWRP. That's for sure
F2FS 5.2-rc1-3.18 is out
The update will first arrive on glassrom and then on enhanced TWRP
anupritaisno1 said:
F2FS 5.2-rc1-3.18 is out
The update will first arrive on glassrom and then on enhanced TWRP
Click to expand...
Click to collapse
Glassrom is out but I've sadly not received any feedback from the twrp testers yet
The new release might be delayed and I'm also busy working on op2
It will definitely come in 1-2 days
Glad you made this twrp @anupritaisno1.
Working great here and happy to see all issues I had with other versions (some warnings on terminal, time issues etc...) are gone!
Keep up the good work
@anupritaisno1
Any chance your TWRP is not compatible with PIE ? ( i.e either that PIE is not supported or PIE is NOT the highest SDK supported )
I ask since many users across OP3 & 3T forum complained about "BSoDwWL" (Black Screen of Death with White Led ) issue that appear randomly ( not during recovery, but in android ) and freeze the device for ~15sec which ends in systemUI reboot.
I'm not sure, but around the week I updated myy recovery to your TWRP, I started to suffer for that issue - which is partially in accordance with this report - i.e that SOME TWRP is responsible
please don't get me wrong... as it might be TWRP original code fault - not something directly related to your own wonderful work here.
I wonder if you encountered this issue as well ?
Does TWRP 3.3.x is already Q compatible ? what's the LAST twrp version that its higher SDK support is PIE (3.2.x / 3.1.x ) ?
gps3dx said:
@anupritaisno1
Any chance your TWRP is not compatible with PIE ? ( i.e either that PIE is not supported or PIE is NOT the highest SDK supported )
I ask since many users across OP3 & 3T forum complained about "BSoDwWL" (Black Screen of Death with White Led ) issue that appear randomly ( not during recovery, but in android ) and freeze the device for ~15sec which ends in systemUI reboot.
I'm not sure, but around the week I updated myy recovery to your TWRP, I started to suffer for that issue - which is partially in accordance with this report - i.e that SOME TWRP is responsible
please don't get me wrong... as it might be TWRP original code fault - not something directly related to your own wonderful work here.
I wonder if you encountered this issue as well ?
Does TWRP 3.3.x is already Q compatible ? what's the LAST twrp version that its higher SDK support is PIE (3.2.x / 3.1.x ) ?
Click to expand...
Click to collapse
Please get me a copy of /sys/fs/pstore/console-ramoops-0 on the next boot after the crash
gps3dx said:
@anupritaisno1
Any chance your TWRP is not compatible with PIE ? ( i.e either that PIE is not supported or PIE is NOT the highest SDK supported )
I ask since many users across OP3 & 3T forum complained about "BSoDwWL" (Black Screen of Death with White Led ) issue that appear randomly ( not during recovery, but in android ) and freeze the device for ~15sec which ends in systemUI reboot.
I'm not sure, but around the week I updated myy recovery to your TWRP, I started to suffer for that issue - which is partially in accordance with this report - i.e that SOME TWRP is responsible
please don't get me wrong... as it might be TWRP original code fault - not something directly related to your own wonderful work here.
I wonder if you encountered this issue as well ?
Does TWRP 3.3.x is already Q compatible ? what's the LAST twrp version that its higher SDK support is PIE (3.2.x / 3.1.x ) ?
Click to expand...
Click to collapse
Hi I checked this myself
There seems to be absolutely no difference between drivers from 5.0.8 and 9.0.2
It feels as if oneplus simply took the drivers from 5.0.8 and smashed them onto 9.0.2 so I have no idea what crashes you're observing. Please submit logs