Skip to content

Commit

Permalink
Updated to v1.31.1
Browse files Browse the repository at this point in the history
  • Loading branch information
meefik committed Nov 3, 2019
1 parent 040a603 commit c1c819e
Show file tree
Hide file tree
Showing 63 changed files with 5,169 additions and 327 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG
@@ -1,6 +1,10 @@
Changelog
=========

1.31.1-42
Updated to busybox v1.31.1
Added RAM disk installation

1.30.1-41
Updated to busybox v1.30.1
Added build for aarch64
Expand Down
89 changes: 45 additions & 44 deletions README.md
Expand Up @@ -11,51 +11,52 @@ The app is available for download in Google Play and GitHub.
<a href="https://play.google.com/store/apps/details?id=ru.meefik.busybox"><img src="https://gist.githubusercontent.com/meefik/54a54afa7cc1dc600bdb855cb7895a4a/raw/ad617c006a1ac28d067c9a87cec60199ca8fef7c/get-it-on-google-play.png" alt="Get it on Google Play"></a>
<a href="https://github.com/meefik/busybox/releases/latest"><img src="https://gist.githubusercontent.com/meefik/54a54afa7cc1dc600bdb855cb7895a4a/raw/ad617c006a1ac28d067c9a87cec60199ca8fef7c/get-apk-from-github.png" alt="Get it on Github"></a>

Latest BusyBox v1.30.1, supported 372 applets:
Latest BusyBox v1.31.1, supported 374 applets:

[, [[, acpid, adjtimex, ar, arch, arp, ash, awk, base64, basename,
bbconfig, bc, beep, blkdiscard, blkid, blockdev, bootchartd, brctl,
bunzip2, busybox, bzcat, bzip2, cal, cat, chat, chattr, chgrp, chmod,
chown, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, conspy, cp,
cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt,
depmod, devfsd, devmem, df, dhcprelay, diff, dirname, dmesg, dnsd,
dnsdomainname, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases,
echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand,
expr, factor, fakeidentd, fallocate, false, fatattr, fbset, fbsplash,
fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold,
free, freeramdisk, fsck, fsck.minix, fsfreeze, fstrim, fsync, ftpd,
ftpget, ftpput, fuser, getopt, getty, grep, groups, gunzip, gzip, halt,
hd, hdparm, head, hexdump, hexedit, hostname, httpd, hush, hwclock,
i2cdetect, i2cdump, i2cget, i2cset, id, ifconfig, ifdown, ifenslave,
ifplugd, ifup, inetd, init, inotifyd, insmod, install, ionice, iostat,
ip, ipaddr, ipcalc, iplink, ipneigh, iproute, iprule, iptunnel,
kbd_mode, kill, killall, killall5, klogd, less, link, linux32, linux64,
linuxrc, ln, loadkmap, logger, logname, losetup, lpd, lpq, lpr, ls,
lsattr, lsmod, lsof, lspci, lsscsi, lsusb, lzcat, lzma, lzop, lzopcat,
makedevs, makemime, man, md5sum, mesg, microcom, mkdir, mkdosfs,
mke2fs, mkfifo, mkfs.ext2, mkfs.minix, mkfs.reiser, mkfs.vfat, mknod,
mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount, mountpoint,
mpstat, mt, mv, nameif, nbd-client, nc, netstat, nice, nl, nmeter,
nohup, nologin, nproc, nsenter, nslookup, ntpd, nuke, od, openvt,
partprobe, paste, patch, pgrep, pidof, ping, ping6, pipe_progress,
pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv,
printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev,
readlink, readprofile, realpath, reboot, reformime, renice, reset,
resize, resume, rev, rfkill, rm, rmdir, rmmod, route, rpm, rpm2cpio,
rtcwake, run-init, run-parts, runsv, runsvdir, rx, script,
scriptreplay, sed, sendmail, seq, setarch, setconsole, setfattr,
setkeycodes, setlogcons, setpriv, setserial, setsid, setuidgid, sh,
sha1sum, sha256sum, sha3sum, sha512sum, showkey, shred, shuf, slattach,
sleep, smemcap, softlimit, sort, split, start-stop-daemon, stat,
strings, stty, sum, sv, svc, svlogd, svok, swapoff, swapon,
switch_root, sync, sysctl, tac, tail, tar, taskset, tc, tcpsvd, tee,
telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr,
traceroute, traceroute6, true, truncate, tty, ttysize, tunctl, tune2fs,
ubiattach, ubidetach, ubimkvol, ubirmvol, ubirsvol, ubiupdatevol,
udhcpc, udhcpd, udpsvd, uevent, umount, uname, uncompress, unexpand,
uniq, unix2dos, unlink, unlzma, unlzop, unshare, unxz, unzip, uptime,
usleep, uudecode, uuencode, vconfig, vi, volname, watch, watchdog, wc,
wget, which, whoami, whois, xargs, xxd, xz, xzcat, yes, zcat, zcip
[, [[, acpid, adjtimex, ar, arch, arp, ash, awk, base64, basename,
bbconfig, bc, beep, blkdiscard, blkid, blockdev, bootchartd, brctl,
bunzip2, busybox, bzcat, bzip2, cal, cat, chat, chattr, chgrp, chmod,
chown, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm, conspy, cp,
cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt,
depmod, devfsd, devmem, df, dhcprelay, diff, dirname, dmesg, dnsd,
dnsdomainname, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases,
echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand,
expr, factor, fakeidentd, fallocate, false, fatattr, fbset, fbsplash,
fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold,
free, freeramdisk, fsck, fsck.minix, fsfreeze, fstrim, fsync, ftpd,
ftpget, ftpput, fuser, getopt, getty, grep, groups, gunzip, gzip, halt,
hd, hdparm, head, hexdump, hexedit, hostname, httpd, hush, hwclock,
i2cdetect, i2cdump, i2cget, i2cset, i2ctransfer, id, ifconfig, ifdown,
ifenslave, ifplugd, ifup, inetd, init, inotifyd, insmod, install,
ionice, iostat, ip, ipaddr, ipcalc, iplink, ipneigh, iproute, iprule,
iptunnel, kbd_mode, kill, killall, killall5, klogd, less, link,
linux32, linux64, linuxrc, ln, loadkmap, logger, logname, losetup, lpd,
lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsscsi, lsusb, lzcat, lzma,
lzop, lzopcat, makedevs, makemime, man, md5sum, mesg, microcom, mkdir,
mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix, mkfs.reiser, mkfs.vfat,
mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount,
mountpoint, mpstat, mt, mv, nameif, nbd-client, nc, netstat, nice, nl,
nmeter, nohup, nologin, nproc, nsenter, nslookup, ntpd, nuke, od,
openvt, partprobe, paste, patch, pgrep, pidof, ping, ping6,
pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff, powertop,
printenv, printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate,
rdev, readlink, readprofile, realpath, reboot, reformime, renice,
reset, resize, resume, rev, rfkill, rm, rmdir, rmmod, route, rpm,
rpm2cpio, rtcwake, run-init, run-parts, runsv, runsvdir, rx, script,
scriptreplay, sed, sendmail, seq, setarch, setconsole, setfattr,
setkeycodes, setlogcons, setpriv, setserial, setsid, setuidgid, sh,
sha1sum, sha256sum, sha3sum, sha512sum, showkey, shred, shuf, slattach,
sleep, smemcap, softlimit, sort, split, start-stop-daemon, stat,
strings, stty, sum, sv, svc, svlogd, svok, swapoff, swapon,
switch_root, sync, sysctl, tac, tail, tar, taskset, tc, tcpsvd, tee,
telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr,
traceroute, traceroute6, true, truncate, ts, tty, ttysize, tunctl,
tune2fs, ubiattach, ubidetach, ubimkvol, ubirmvol, ubirsvol,
ubiupdatevol, udhcpc, udhcpd, udpsvd, uevent, umount, uname,
uncompress, unexpand, uniq, unix2dos, unlink, unlzma, unlzop, unshare,
unxz, unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, volname,
watch, watchdog, wc, wget, which, whoami, whois, xargs, xxd, xz, xzcat,
yes, zcat, zcip

**Requirements**:

Expand Down
13 changes: 7 additions & 6 deletions app/build.gradle
@@ -1,15 +1,15 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
compileSdkVersion 29
buildToolsVersion '29.0.2'

defaultConfig {
applicationId 'ru.meefik.busybox'
minSdkVersion 14
targetSdkVersion 28
versionCode 41
versionName '1.30.1'
targetSdkVersion 29
versionCode 42
versionName '1.31.1'
}
buildTypes {
release {
Expand All @@ -20,5 +20,6 @@ android {
}

dependencies {
implementation 'com.android.support:design:28.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
}
13 changes: 9 additions & 4 deletions app/src/main/AndroidManifest.xml
@@ -1,18 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.meefik.busybox" >
xmlns:tools="http://schemas.android.com/tools"
package="ru.meefik.busybox"
android:installLocation="internalOnly">

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />

<application
android:allowBackup="true"
android:requestLegacyExternalStorage="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/DarkTheme" >
android:theme="@style/DarkTheme"
android:supportsRtl="true"
tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

Expand Down
8 changes: 7 additions & 1 deletion app/src/main/assets/all/scripts/info.sh
@@ -1,6 +1,6 @@
#!/system/bin/sh
# BusyBox information
# (c) 2015-2018 Anton Skshidlevsky <meefik@gmail.com>, GPLv3
# (c) 2015-2019 Anton Skshidlevsky <meefik@gmail.com>, GPLv3

busybox printf "System:\n"
DEVICE=$(getprop ro.product.model)
Expand Down Expand Up @@ -32,6 +32,12 @@ BB_SIZE=$(busybox stat -c '%s' "$BB_BIN")
busybox printf "* size: $BB_SIZE bytes\n"
BB_MD5=$(busybox md5sum "$BB_BIN" | busybox awk '{print $1}')
busybox printf "* md5: $BB_MD5\n"
if busybox test -e "$(which ssl_helper)"
then
busybox printf "* ssl_helper: yes\n"
else
busybox printf "* ssl_helper: no\n"
fi

busybox printf "\nInstalled BusyBox:\n"
if busybox test -e "$INSTALL_DIR/busybox"
Expand Down
33 changes: 15 additions & 18 deletions app/src/main/assets/all/scripts/install.sh
@@ -1,10 +1,21 @@
#!/system/bin/sh
# BusyBox installer
# (c) 2015-2018 Anton Skshidlevsky <meefik@gmail.com>, GPLv3
# (c) 2015-2019 Anton Skshidlevsky <meefik@gmail.com>, GPLv3

SYSTEM_REMOUNT=$(busybox printf "$INSTALL_DIR" | busybox grep -c "^/system/")
IS_SYSTEM=$(busybox printf "$INSTALL_DIR" | busybox grep -c "^/system/")
IS_RAM=$(busybox grep -c "^tmpfs $INSTALL_DIR" /proc/mounts)

if busybox test "$SYSTEM_REMOUNT" -ne 0
if busybox test "$MOUNT_RAMDISK" = "true" -a "$IS_RAM" -eq 0
then
busybox printf "Mounting $INSTALL_DIR as tmpfs ... "
busybox mount -o size=50M -t tmpfs tmpfs "$INSTALL_DIR"
if busybox test $? -eq 0
then
busybox printf "done\n"
else
busybox printf "fail\n"
fi
elif busybox test "$IS_SYSTEM" -ne 0
then
busybox printf "Remounting /system to rw ... "
busybox mount -o rw,remount /system
Expand All @@ -13,7 +24,6 @@ then
busybox printf "done\n"
else
busybox printf "fail\n"
exit 1
fi
fi

Expand Down Expand Up @@ -75,7 +85,7 @@ then
fi
fi

if busybox test "$SYSTEM_REMOUNT" -ne 0 -a -d /system/addon.d
if busybox test "$IS_SYSTEM" -ne 0 -a -d /system/addon.d -a "$MOUNT_RAMDISK" != "true"
then
busybox printf "Installing addon.d script ... "
echo "$INSTALL_DIR" > /system/addon.d/busybox-install-dir
Expand All @@ -90,16 +100,3 @@ then
busybox printf "fail\n"
fi
fi

if busybox test "$SYSTEM_REMOUNT" -ne 0
then
busybox printf "Remounting /system to ro ... "
busybox mount -o ro,remount /system
if busybox test $? -eq 0
then
busybox printf "done\n"
else
busybox printf "skip\n"
exit 1
fi
fi
20 changes: 3 additions & 17 deletions app/src/main/assets/all/scripts/remove.sh
@@ -1,10 +1,10 @@
#!/system/bin/sh
# BusyBox uninstaller
# (c) 2015-2018 Anton Skshidlevsky <meefik@gmail.com>, GPLv3
# (c) 2015-2019 Anton Skshidlevsky <meefik@gmail.com>, GPLv3

SYSTEM_REMOUNT=$(busybox printf "$INSTALL_DIR" | busybox grep -c "^/system/")
IS_SYSTEM=$(busybox printf "$INSTALL_DIR" | busybox grep -c "^/system/")

if busybox test "$SYSTEM_REMOUNT" -ne 0
if busybox test "$IS_SYSTEM" -ne 0
then
busybox printf "Remounting /system to rw ... "
busybox mount -o rw,remount /system
Expand All @@ -13,7 +13,6 @@ then
busybox printf 'done\n'
else
busybox printf 'fail\n'
exit 1
fi
fi

Expand Down Expand Up @@ -66,16 +65,3 @@ then
else
busybox printf "not found\n"
fi

if busybox test "$SYSTEM_REMOUNT" -ne 0
then
busybox printf 'Remounting /system to ro ... '
busybox mount -o ro,remount /system
if busybox test $? -eq 0
then
busybox printf "done\n"
else
busybox printf "skip\n"
exit 1
fi
fi
Binary file modified app/src/main/assets/arm/static/bin/busybox
Binary file not shown.
Binary file modified app/src/main/assets/arm64/static/bin/busybox
Binary file not shown.
Binary file modified app/src/main/assets/x86/static/bin/busybox
Binary file not shown.
20 changes: 11 additions & 9 deletions app/src/main/java/ru/meefik/busybox/AboutActivity.java
@@ -1,34 +1,36 @@
package ru.meefik.busybox;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;

/**
* Created by anton on 19.09.15.
*/
import androidx.appcompat.app.AppCompatActivity;

public class AboutActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
PrefStore.setLocale(this);
super.onCreate(savedInstanceState);
getSupportActionBar().setTitle(getString(R.string.title_activity_about));
PrefStore.setLocale(this);
setContentView(R.layout.activity_about);

TextView versionView = (TextView) findViewById(R.id.versionView);
TextView versionView = findViewById(R.id.versionView);
versionView.setText(getString(R.string.app_version,
PrefStore.getVersion(getApplicationContext())));

// enable context clickable
TextView aboutView = (TextView) findViewById(R.id.aboutTextView);
TextView aboutView = findViewById(R.id.aboutTextView);
aboutView.setMovementMethod(LinkMovementMethod.getInstance());
}

@Override
public void setTheme(int resid) {
public void setTheme(int resId) {
super.setTheme(PrefStore.getTheme(this));
}

@Override
public void onResume() {
super.onResume();
setTitle(R.string.title_activity_about);
}
}
Expand Up @@ -18,23 +18,22 @@
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.support.annotation.LayoutRes;
import android.support.annotation.Nullable;
import android.support.v4.app.NavUtils;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatDelegate;
import android.support.v7.widget.Toolbar;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.LayoutRes;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.app.NavUtils;

/**
* A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls
* A {@link PreferenceActivity} which implements and proxies the necessary calls
* to be used with AppCompat.
* <p/>
* This technique can be used with an {@link android.app.Activity} class, not just
* {@link android.preference.PreferenceActivity}.
* {@link PreferenceActivity}.
*/
public abstract class AppCompatPreferenceActivity extends PreferenceActivity {
private AppCompatDelegate mDelegate;
Expand All @@ -56,10 +55,6 @@ public ActionBar getSupportActionBar() {
return getDelegate().getSupportActionBar();
}

public void setSupportActionBar(@Nullable Toolbar toolbar) {
getDelegate().setSupportActionBar(toolbar);
}

@Override
public MenuInflater getMenuInflater() {
return getDelegate().getMenuInflater();
Expand Down Expand Up @@ -117,10 +112,9 @@ protected void onDestroy() {

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
if (item.getItemId() == android.R.id.home) {
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
Expand Down

0 comments on commit c1c819e

Please sign in to comment.