Skip to content

Instantly share code, notes, and snippets.

@bboa
Last active November 2, 2016 22:48
Show Gist options
  • Save bboa/0582f9bd6107ba6519dd56813522f06c to your computer and use it in GitHub Desktop.
Save bboa/0582f9bd6107ba6519dd56813522f06c to your computer and use it in GitHub Desktop.
Flyme OS 5 secondary BusyBox installer/uninstaller
#! /system/bin/sh
########################################################################
#
# Скрипт для установки и деинсталляции второго BusyBox во Flyme OS 5
# без удаления встроенного в прошивку BusyBox от Meizu.
#
# Работа проверялась только на Meizu MX4 Pro с прошивкой 5.1.10.0G.
# Необходим root и установленный на смартфоне эмулятор терминала.
#
# Разместите этот файл (bbm) в корне карты памяти: /sdcard/bbm.
# Рядом необходимо разместить бинарный файл BusyBox, переименовав его
# в "busybox", без кавычек. Используйте BusyBox для архитектуры ARM.
#
# Для установки, введите в терминале:
# su
#
# Предоставьте терминалу права root. После этого, введите:
# sh /sdcard/bbm
#
# Скрипт выполнит установку и выведет сообщение "INSTALLED.".
# Если путь к скрипту другой, измените команду sh /sdcard/bbm.
#
# Скрипт установит BusyBox как /system/xbin/bb и создаст ссылки.
# Вы можете изменить конечное имя bb на другое, изменив в этом скрипте
# строчку TRG=bb на свою.
#
# Для деинсталляции повторите запуск скрипта.
# Путь к скрипту с пробелами укажите в кавычках: sh "/sdcard/1 2/bbm"
#
# Скрипт работает с любыми BusyBox, выводящими список апплетов
# по команде "busybox --list", в том числе:
# BusyBox (Meefik), BusyBox (Stericson), BusyBox On Rails.
#
# Об ошибках и предложениях сообщайте man'yak@4pda.ru.
# Copyleft man'yak@4pda, 2016. bbm = busybox management.
#
# Благодарю участников проекта BusyBox (busybox.net):
# Erik Andersen, Rob Landley, Denis Vlasenko и других.
# Благодарю Meefik (meefik.ru) за компиляцию BusyBox для ARM:
# https://github.com/meefik/busybox/releases
#
########################################################################
TRG=bb
b=busybox
DIR=`$b dirname "$0"`
if test -z "$DIR"
then
DIR=/sdcard
fi
mount -o remount,rw /system || exit
sync
if test -e "/system/xbin/$TRG"
then
for L in `$b find /system/xbin -type l`
do
if echo `$b readlink $L` | grep -q "$TRG"
then rm -f $L
fi
done
sh -c "rm -f \"/system/xbin/$TRG\""
sync
mount -o remount,ro /system
echo UNINSTALLED.
exit
fi
mv /system/xbin/$b /system/xbin/${b}meizu
cat "$DIR/$b" > /system/xbin/$b
cat /system/xbin/$b > "/system/xbin/$TRG"
chmod 0755 /system/xbin/$b "/system/xbin/$TRG"
chown 0:2000 /system/xbin/$b "/system/xbin/$TRG"
APL=`/system/xbin/$b --list`
for A in $APL
do ln -s "/system/xbin/$TRG" /system/xbin/$A
done
rm -f /system/xbin/$b
mv /system/xbin/${b}meizu /system/xbin/$b
sync
mount -o remount,ro /system
echo INSTALLED.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment