├── .github └── FUNDING.yml ├── LICENSE ├── META-INF └── com │ └── google │ └── android │ ├── update-binary │ └── updater-script ├── README.md ├── changelog.md ├── customize.sh ├── module-alt.prop ├── module.prop ├── post-fs-data.sh ├── service-test.sh ├── service.sh ├── toybox-aarch64 ├── toybox-armv7l ├── toybox-armv7m ├── update-alt.json └── update.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: ["https://zgfg.github.io/PayPal.html"] -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2006, 2019 by Rob Landley 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any 4 | purpose with or without fee is hereby granted. 5 | 6 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 7 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 8 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 9 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 10 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 11 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 12 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 13 | -------------------------------------------------------------------------------- /META-INF/com/google/android/update-binary: -------------------------------------------------------------------------------- 1 | #!/sbin/sh 2 | 3 | ################# 4 | # Initialization 5 | ################# 6 | 7 | umask 022 8 | 9 | # echo before loading util_functions 10 | ui_print() { echo "$1"; } 11 | 12 | require_new_magisk() { 13 | ui_print "*******************************" 14 | ui_print " Please install Magisk v20.4+! " 15 | ui_print "*******************************" 16 | exit 1 17 | } 18 | 19 | ######################### 20 | # Load util_functions.sh 21 | ######################### 22 | 23 | OUTFD=$2 24 | ZIPFILE=$3 25 | 26 | mount /data 2>/dev/null 27 | 28 | [ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk 29 | . /data/adb/magisk/util_functions.sh 30 | [ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk 31 | 32 | install_module 33 | exit 0 34 | -------------------------------------------------------------------------------- /META-INF/com/google/android/updater-script: -------------------------------------------------------------------------------- 1 | #MAGISK 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ToyBox-Ext 2 | 3 | ### Description 4 | Systemless Magisk module 5 | to install (additional) ToyBox applets, using **ARMv7 or higher** binaries from: 6 | https://github.com/landley/toybox 7 | 8 | **Supported**: ARMv7 and higher, all Android versions 9 | 10 | ##### TEST 11 | 12 | Ussually, **ToyBox** comes preinstalled to `/system/bin`, but with limited number of **applets**. 13 | The module installes additional `toybox-ext` binary, with the additional applets (**UNIX/Linux command-line utilities**). 14 | 15 | **Install** the module and **reboot**. Use **Terminal Emulator** - **Toybox applets** are for Terminal and **shell scripts**. 16 | 17 | Make sure that `/system/bin` and/or `/system/xbin` (the latter might not be available on some devices) are in the `PATH`. 18 | Check e.g. with (all commands are **case sensitive**): 19 | 20 | ``` 21 | su 22 | echo $PATH 23 | ``` 24 | 25 | Check if `toybox-ext` was properly installed and is it installed to `/system/xbin` or `/system/bin`: 26 | 27 | ``` 28 | toybox-ext --help 29 | which toybox-ext 30 | ``` 31 | 32 | If the responded toybox-ext path was `/system/xbin` then check: 33 | 34 | ``` 35 | ls -l /system/xbin | grep toybox-ext 36 | ``` 37 | 38 | whereas if the toybox-ext path was `/system/bin` then use: 39 | 40 | ``` 41 | ls -l /system/bin | grep toybox-ext 42 | ``` 43 | 44 | The command will show all toybox-ext applets as installed (symlinked to the toybox-ext binary). 45 | Usually, `w` will be one of them, hence you can try: 46 | 47 | ``` 48 | w 49 | ``` 50 | 51 | **Note 1**: Some applets are common to **BusyBox** and **ToyBox**, e.g. `ascii`. 52 | 53 | Hence, if you have also the `busybox` installed, `toybox-ext` will symlink less number of (additional) applets. 54 | 55 | **Note 2**: Since ToyBox-Ext **v1.0.2**, the module also looks if there are not-symlinked applets available from the pre-installed toybox binary (ROMs usually come with the pre-installed ToyBox but with smaller or an older binary and with a less number of applets). 56 | 57 | For me, the additionally found applets from the pre-installed ToyBox were e.g. `getfattr` and `iotop`. 58 | 59 | #### Source 60 | 61 | [My Repo:](https://github.com/zgfg/ToyBox-Ext) 62 | 63 | ![GitHub release (latest by date)](https://img.shields.io/github/v/release/zgfg/ToyBox-Ext?label=Release&style=plastic) ![GitHub Release Date](https://img.shields.io/github/release-date/zgfg/ToyBox-Ext?label=Release%20Date&style=plastic) 64 | ![GitHub Releases](https://img.shields.io/github/downloads/zgfg/ToyBox-Ext/latest/total?label=Downloads%20%28Latest%20Release%29&style=plastic) 65 | ![GitHub All Releases](https://img.shields.io/github/downloads/zgfg/ToyBox-Ext/total?label=Total%20Downloads%20%28All%20Releases%29&style=plastic) 66 | 67 | [Alt-Repo:](https://github.com/Magisk-Modules-Alt-Repo/ToyBox-Ext) 68 | 69 | ![GitHub release (latest by date)](https://img.shields.io/github/v/release/Magisk-Modules-Alt-Repo/ToyBox-Ext?label=Release&style=plastic) ![GitHub Release Date](https://img.shields.io/github/release-date/Magisk-Modules-Alt-Repo/ToyBox-Ext?label=Release%20Date&style=plastic) 70 | ![GitHub Releases](https://img.shields.io/github/downloads/Magisk-Modules-Alt-Repo/ToyBox-Ext/latest/total?label=Downloads%20%28Latest%20Release%29&style=plastic) 71 | ![GitHub All Releases](https://img.shields.io/github/downloads/Magisk-Modules-Alt-Repo/ToyBox-Ext/total?label=Total%20Downloads%20%28All%20Releases%29&style=plastic) 72 | 73 | #### Copyright (c) zgfg @ xda, 2022- 74 | 75 |

76 | 77 | OBSD License 78 | 79 | Donate a coffee 80 | 81 |

82 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | #### Coffee 2 | Support development by donating a [coffee](https://zgfg.github.io/PayPal.html) 3 | 4 | #### v1.0.9 5 | ToyBox binaries updated to v0.8.10 (build Jul 30, 2023) 6 | 7 | #### v1.0.8 8 | Service fix for v1.0.7 and improved logging 9 | 10 | #### v1.0.7 11 | Logging and notify when new ToyBox binary is ready for installation 12 | 13 | #### v1.0.6 14 | Force the latest ToyBox applets 15 | 16 | #### v1.0.5 17 | Update to the latest ToyBox binary on installation 18 | 19 | #### v1.0.4 20 | ToyBox binaries updated to v0.8.9 (build Jan 10, 2023) 21 | 22 | #### v1.0.3 23 | ToyBox binaries updated to v0.8.7 (build May 5, 2022) 24 | 25 | #### v1.0.2 26 | Install additional stock toybox applets if found 27 | 28 | #### v1.0.1 29 | Alt Repository release 30 | 31 | #### v1.0.0 32 | Find the most suitable ARMv7 or higher toybox binary 33 | 34 | #### v0.9.9 35 | Initial release - Install (additional) toybox applets. SUPPORTED: ARMv7 and higher 36 | -------------------------------------------------------------------------------- /customize.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | 3 | # Magisk Module: ToyBox-Ext v1.0.9 4 | # Copyright (c) zgfg @ xda, 2022- 5 | # GitHub source: https://github.com/zgfg/ToyBox-Ext 6 | 7 | if [ -z $BOOTMODE ] || [ "$BOOTMODE" != "true" ] 8 | then 9 | abort "ERROR: Install from Magisk app, not from TWRP!" 10 | fi 11 | 12 | # Log file for debugging - uncomment for logging 13 | #LogFile="$MODPATH/customize.log" 14 | if [ ! -z $LogFile ] 15 | then 16 | exec 3>&1 4>&2 2>$LogFile 1>&2 17 | set -x 18 | date +%c 19 | 20 | # Log Magisk version and magisk --path 21 | magisk -c 22 | magisk --path 23 | 24 | # Log dual-slots ROM info 25 | getprop ro.product.cpu.abi 26 | getprop ro.product.cpu.abilist 27 | fi 28 | 29 | # Module's own path (local path) 30 | cd $MODPATH 31 | pwd 32 | 33 | # toybox ARMv7 and higher binaries 34 | TBTYPEList=" 35 | toybox-aarch64 36 | toybox-armv7m 37 | toybox-armv7l 38 | " 39 | 40 | # toybox binary to be installed 41 | TBEXT=toybox-ext 42 | 43 | # Find the applicable binary 44 | TBTYPE="" 45 | for TB in $TBTYPEList 46 | do 47 | if [ -z $TBTYPE ] 48 | then 49 | # Test if binary executes 50 | echo "Testing archived $TB" 51 | chmod 755 $TB 52 | Applets=$(./$TB) 53 | 54 | if [ ! -z "$Applets" ] 55 | then 56 | # Applicable binary found 57 | TBTYPE=$TB 58 | mv $TBTYPE $TBEXT 59 | Version=$(./$TBEXT --version) 60 | echo "Archived $TBTYPE $Version installed" 61 | continue 62 | fi 63 | fi 64 | 65 | # Delete binary (already found or doesn't execute) 66 | rm -f $TB 67 | done 68 | 69 | if [ -z $TBTYPE ] 70 | then 71 | # Applicable binary not found 72 | echo 73 | echo "ERROR: ToyBox not installed!" 74 | echo 75 | echo "$(cat /proc/cpuinfo)" 76 | echo 77 | exit -1 78 | fi 79 | 80 | # Current time 81 | DLTIME=$(date +"%s") 82 | 83 | # Save the toybox binary type and installation time 84 | TBSCRIPT='./tbtype.sh' 85 | echo "TBTYPE=$TBTYPE" > $TBSCRIPT 86 | echo "LASTDLTIME=$DLTIME" >> $TBSCRIPT 87 | 88 | # Download latest binary 89 | echo "Downloading latest $TBTYPE" 90 | wget -c -T 10 "http://landley.net/toybox/bin/$TBTYPE" 91 | 92 | # Test the download 93 | if [ ! -f $TBTYPE ] 94 | then 95 | # Not downloaded 96 | echo "$TBTYPE not downloaded" 97 | else 98 | echo "Testing downloaded $TBTYPE" 99 | # Compare checksums for the old and new binary 100 | MD5Old=$(md5sum $TBEXT | head -c 32) 101 | MD5New=$(md5sum "$TBTYPE" | head -c 32) 102 | if [ "$MD5New" = "$MD5Old" ] 103 | then 104 | # Delete, same as old binary 105 | echo "Downloaded $TBTYPE same version as installed" 106 | rm -f $TBTYPE 107 | else 108 | # Test downloaded binary 109 | chmod 755 $TBTYPE 110 | Applets=$(./$TBTYPE) 111 | if [ -z "$Applets" ] 112 | then 113 | # Delete, not working 114 | echo "Downloaded $TBTYPE not working" 115 | rm -f $TBTYPE 116 | else 117 | # Install 118 | mv $TBTYPE $TBEXT 119 | Version=$(./$TBEXT --version) 120 | echo "Downloaded $TBTYPE $Version installed" 121 | fi 122 | fi 123 | fi 124 | 125 | if [ ! -z $LogFile ] 126 | then 127 | set +x 128 | exec 1>&3 2>&4 3>&- 4>&- 129 | fi 130 | -------------------------------------------------------------------------------- /module-alt.prop: -------------------------------------------------------------------------------- 1 | id=ToyBox-Ext 2 | name=ToyBox (Ext) 3 | version=1.0.9 4 | versionCode=109 5 | author=zgfg @ xda 6 | description=Additional toybox applets. SUPPORTED: ARMv7 and higher, all Android versions 7 | updateJson=https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/main/update.json 8 | -------------------------------------------------------------------------------- /module.prop: -------------------------------------------------------------------------------- 1 | id=ToyBox-Ext 2 | name=ToyBox (Ext) 3 | version=1.0.9 4 | versionCode=109 5 | author=zgfg @ xda 6 | description=Additional toybox applets. SUPPORTED: ARMv7 and higher, all Android versions 7 | updateJson=https://raw.githubusercontent.com/zgfg/ToyBox-Ext/main/update.json 8 | -------------------------------------------------------------------------------- /post-fs-data.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | 3 | # Magisk Module: ToyBox-Ext v1.0.9 4 | # Copyright (c) zgfg @ xda, 2022- 5 | # GitHub source: https://github.com/zgfg/ToyBox-Ext 6 | 7 | # Module's own path (local path) 8 | MODDIR=${0%/*} 9 | 10 | # Log file for debugging 11 | LogFile="$MODDIR/post-fs-data.log" 12 | exec 3>&1 4>&2 2>$LogFile 1>&2 13 | set -x 14 | 15 | # Log Magisk version and magisk --path 16 | magisk -c 17 | magisk --path 18 | 19 | # Source the original toybox binary type 20 | cd $MODDIR 21 | pwd 22 | TBSCRIPT='./tbtype.sh' 23 | if [ -f $TBSCRIPT ] 24 | then 25 | . $TBSCRIPT 26 | fi 27 | 28 | # ToyBox-Ext 29 | TB=toybox 30 | TBEXT=toybox-ext 31 | if [ ! -z $TBTYPE ] && [ -f $TBTYPE ] 32 | then 33 | # Replace toybox-ext with the latest downloaded binary 34 | mv $TBTYPE $TBEXT 35 | fi 36 | chmod 755 $TBEXT 37 | 38 | # Clean-up old stuff 39 | rm -rf "$MODDIR/system" 40 | 41 | # Choose XBIN or BIN path 42 | SDIR=/system/xbin 43 | if [ ! -d $SDIR ] 44 | then 45 | SDIR=/system/bin 46 | fi 47 | TBDIR=$MODDIR$SDIR 48 | mkdir -p $TBDIR 49 | cd $TBDIR 50 | pwd 51 | 52 | # ToyBox-Ext applets 53 | TBEXTBIN=$MODDIR/$TBEXT 54 | Applets=$TB$'\n'$TBEXT$'\n'$($TBEXTBIN) 55 | 56 | # Create symlinks for toybox-ext applets 57 | for Applet in $Applets 58 | do 59 | if [ ! -x $SDIR/$Applet ] 60 | then 61 | # Create symlink 62 | ln -s $TBEXTBIN $Applet 63 | fi 64 | done 65 | 66 | # Stock ToyBox applets 67 | TBSTOCK=$(which $TB) 68 | Applets="" 69 | if [ ! -z "$TBSTOCK" ] 70 | then 71 | TBPATH=$(echo "$TBSTOCK" | sed "s,/$TB$,,") 72 | Applets=$TB$'\n'$($TBSTOCK) 73 | fi 74 | 75 | # Create symlinks for toybox-stock applets 76 | for Applet in $Applets 77 | do 78 | if [ ! -h "$Applet" ] && [ ! -x "$TBPATH/$Applet" ] && [ ! -x "$SDIR/$Applet" ] 79 | then 80 | # Create symlink 81 | ln -s $TBSTOCK $Applet 82 | fi 83 | done 84 | chmod 755 * 85 | chcon u:object_r:system_file:s0 * 86 | 87 | # Log results for ToyBox-Ext 88 | ls -lZ $TBEXT 89 | $TBEXTBIN --version 90 | ls -l | grep $TBEXT | grep ^lr.x | rev | cut -d ' ' -f 3 | rev 91 | ls -l | grep $TBEXT | grep ^lr.x | wc -l 92 | 93 | # Log results for stock ToyBox 94 | $TBSTOCK --version 95 | ls -l | grep $TB | grep -v $TBEXT | grep ^lr.x | rev | cut -d ' ' -f 3 | rev 96 | ls -l | grep $TB | grep -v $TBEXT | grep ^lr.x | wc -l 97 | 98 | set +x 99 | exec 1>&3 2>&4 3>&- 4>&- 100 | -------------------------------------------------------------------------------- /service-test.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | 3 | # Magisk Module: ToyBox-Ext v1.0.8 4 | # Copyright (c) zgfg @ xda, 2022- 5 | # GitHub source: https://github.com/zgfg/ToyBox-Ext 6 | 7 | # Module's own path (local path) 8 | MODDIR=${0%/*} 9 | cd $MODDIR 10 | 11 | # Log for debugging 12 | LogFile="$MODDIR/service.log" 13 | exec 3>&2 2>$LogFile 14 | set -x 15 | LogTime=$(date +%c) 16 | 17 | # Current time 18 | DLTIME=$(date +"%s") 19 | 20 | # Source the original toybox binary type and last download time 21 | TBSCRIPT='./tbtype.sh' 22 | if [ -f $TBSCRIPT ] 23 | then 24 | . $TBSCRIPT 25 | fi 26 | 27 | # Passed time since the last download 28 | PASSEDTIME=$(($DLTIME - $LASTDLTIME)) 29 | 30 | # Waiting time between downloads (15 days) 31 | #WAITTIME=$((15 * 24 * 3600)) 32 | WAITTIME=$((20 * 60)) # toDo: Remove - for testing 33 | 34 | # If waiting time passed, download the latest binary again 35 | if [ ! -z $TBTYPE ] && [ $PASSEDTIME -gt $WAITTIME ] 36 | then 37 | # Wait to finish booting 38 | until [ "$(getprop sys.boot_completed)" = 1 ] 39 | do 40 | sleep 1 41 | done 42 | 43 | # and few more seconds 44 | sleep 3 45 | rm -f $TBTYPE 46 | /data/adb/magisk/busybox wget -c -T 20 "http://landley.net/toybox/bin/$TBTYPE" 47 | fi 48 | 49 | # Test the download 50 | if [ ! -z $TBTYPE ] && [ -f $TBTYPE ] 51 | then 52 | # Compare checksums for the old and new binary 53 | MD5Old=$(md5sum toybox-ext | head -c 32) 54 | MD5New=$(md5sum "$TBTYPE" | head -c 32) 55 | if [ "$MD5New" = "$MD5Old" ] 56 | then 57 | # Save the download time 58 | echo "LASTDLTIME=$DLTIME" >> $TBSCRIPT 59 | 60 | # Delete, same as old binary 61 | rm -f $TBTYPE 62 | else 63 | # Test downloaded binary 64 | chmod 755 $TBTYPE 65 | Applets=$(./$TBTYPE) 66 | if [ -z "$Applets" ] 67 | then 68 | # Delete, not working 69 | rm -f $TBTYPE 70 | else 71 | # Save the binary type and installation time 72 | echo "TBTYPE=$TBTYPE" > $TBSCRIPT 73 | echo "LASTDLTIME=$DLTIME" >> $TBSCRIPT 74 | 75 | # Notify user to reboot 76 | exec 2>&3 3>&- 77 | su -lp 2000 -c "cmd notification post -S bigtext -t 'ToyBox-Ext Module' 'Tag' 'Reboot to update ToyBox binary'" 1>/dev/null 78 | exec 3>&2 2>>$LogFile 79 | fi 80 | fi 81 | fi -------------------------------------------------------------------------------- /service.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | 3 | # Magisk Module: ToyBox-Ext v1.0.9 4 | # Copyright (c) zgfg @ xda, 2022- 5 | # GitHub source: https://github.com/zgfg/ToyBox-Ext 6 | 7 | # Module's own path (local path) 8 | MODDIR=${0%/*} 9 | 10 | # Log file for debugging 11 | LogFile="$MODDIR/service.log" 12 | exec 3>&1 4>&2 2>$LogFile 1>&2 13 | set -x 14 | date +%c 15 | 16 | # Log Magisk version and magisk --path 17 | magisk -c 18 | magisk --path 19 | 20 | # Log dual-slots ROM info 21 | getprop ro.product.cpu.abi 22 | getprop ro.product.cpu.abilist 23 | 24 | # Log results for stock ToyBox 25 | TB=toybox 26 | $TB --version 27 | TBBIN=$(which $TB) 28 | ls -lZ $TBBIN 29 | TBDIR=$(echo "$TBBIN" | sed "s,/$TB$,,") 30 | TBEXT=toybox-ext 31 | if [ -d $TBDIR ] 32 | then 33 | cd $TBDIR 34 | pwd 35 | ls -la | grep $TB | grep -v $TBEXT | grep ^lr.x | rev | cut -d ' ' -f 3 | rev 36 | ls -la | grep $TB | grep -v $TBEXT | grep ^lr.x | wc -l 37 | fi 38 | 39 | # Log results for ToyBox-Ext 40 | $TBEXT --version 41 | TBEXTBIN=$(which $TBEXT) 42 | ls -lZ $TBEXTBIN 43 | TBEXTDIR=$(echo "$TBEXTBIN" | sed "s,/$TBEXT$,,") 44 | if [ -d $TBEXTDIR ] 45 | then 46 | cd $TBEXTDIR 47 | pwd 48 | ls -la | grep $TBEXT | grep ^lr.x | rev | cut -d ' ' -f 3 | rev 49 | ls -la | grep $TBEXT | grep ^lr.x | wc -l 50 | if [ "$TBEXTDIR" != "$TBDIR" ] 51 | then 52 | ls -la | grep $TB | grep -v $TBEXT | grep ^lr.x | rev | cut -d ' ' -f 3 | rev 53 | ls -la | grep $TB | grep -v $TBEXT | grep ^lr.x | wc -l 54 | fi 55 | fi 56 | 57 | # Source the original toybox binary type and last download time 58 | cd $MODDIR 59 | pwd 60 | TBSCRIPT='./tbtype.sh' 61 | if [ -f $TBSCRIPT ] 62 | then 63 | . $TBSCRIPT 64 | fi 65 | 66 | # Current time 67 | DLTIME=$(date +"%s") 68 | 69 | # Passed time since the last download 70 | PASSEDTIME=$(($DLTIME - $LASTDLTIME)) 71 | 72 | # Waiting time between downloads (15 days) 73 | WAITTIME=$((15 * 24 * 3600)) 74 | #WAITTIME=$((15 * 60)) # 15 min, for testing 75 | 76 | # If waiting time passed, download the latest binary again 77 | if [ ! -z $TBTYPE ] && [ $PASSEDTIME -gt $WAITTIME ] 78 | then 79 | # Wait to finish booting 80 | until [ "$(getprop sys.boot_completed)" = 1 ] 81 | do 82 | sleep 1 83 | done 84 | 85 | # Wait few additional seconds 86 | sleep 3 87 | rm -f $TBTYPE 88 | /data/adb/magisk/busybox wget -c -T 20 "http://landley.net/toybox/bin/$TBTYPE" 89 | fi 90 | 91 | # Test the download 92 | if [ ! -z $TBTYPE ] && [ -f $TBTYPE ] 93 | then 94 | # Compare checksums for the old and new binary 95 | MD5Old=$(md5sum $TBEXT | head -c 32) 96 | MD5New=$(md5sum "$TBTYPE" | head -c 32) 97 | if [ "$MD5New" = "$MD5Old" ] 98 | then 99 | # Save the download time 100 | echo "LASTDLTIME=$DLTIME" >> $TBSCRIPT 101 | 102 | # Delete, same as old binary 103 | rm -f $TBTYPE 104 | else 105 | # Test downloaded binary 106 | chmod 755 $TBTYPE 107 | Applets=$(./$TBTYPE) 108 | if [ -z "$Applets" ] 109 | then 110 | # Delete, not working 111 | rm -f $TBTYPE 112 | else 113 | # Save the binary type and installation time 114 | echo "TBTYPE=$TBTYPE" > $TBSCRIPT 115 | echo "LASTDLTIME=$DLTIME" >> $TBSCRIPT 116 | 117 | # Notify user to reboot 118 | Version=$(./$TBTYPE --version) 119 | exec 1>&3 2>&4 120 | su -lp 2000 -c "cmd notification post -S bigtext -t 'ToyBox-Ext Module' 'Tag' 'Reboot to update ToyBox binary to $Version'" 1>/dev/null 121 | exec 3>&1 4>&2 2>>$LogFile 1>&2 122 | fi 123 | fi 124 | fi 125 | 126 | set +x 127 | exec 1>&3 2>&4 3>&- 4>&- 128 | -------------------------------------------------------------------------------- /toybox-aarch64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/4534949ee01942c67be5dc1ffdfc5fab5cbf86cc/toybox-aarch64 -------------------------------------------------------------------------------- /toybox-armv7l: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/4534949ee01942c67be5dc1ffdfc5fab5cbf86cc/toybox-armv7l -------------------------------------------------------------------------------- /toybox-armv7m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/4534949ee01942c67be5dc1ffdfc5fab5cbf86cc/toybox-armv7m -------------------------------------------------------------------------------- /update-alt.json: -------------------------------------------------------------------------------- 1 | { 2 | "versionCode": 109, 3 | "version": "v1.0.9", 4 | "zipUrl": "https://github.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/releases/download/109/ToyBox-Ext_v1.0.9.zip", 5 | "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/main/changelog.md" 6 | } 7 | -------------------------------------------------------------------------------- /update.json: -------------------------------------------------------------------------------- 1 | { 2 | "versionCode": 109, 3 | "version": "v1.0.9", 4 | "zipUrl": "https://github.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/releases/download/109/ToyBox-Ext_v1.0.9.zip", 5 | "changelog": "https://raw.githubusercontent.com/Magisk-Modules-Alt-Repo/ToyBox-Ext/main/changelog.md" 6 | } 7 | --------------------------------------------------------------------------------