notes/Android Moto G Root Telnet-tVy82Spf.sh
#!/bin/bash
img=boot.img
img2=boot2.img
port=9999
url="https://github.com/metalx1000/Moto-G-root-tricks/blob/master/img/stock_boot.img?raw=true"
dir="work"
#check if root user
if [[ $EUID -ne 0 ]]; then
echo "You must be a root user"
echo "Trying to restart script as sudo"
sudo $0 $@
exit
fi
echo "Removing any previous work..."
rm -fr $dir
mkdir $dir
if [ "$1" = "remote" ]
then
cat << EOM
Warning!!!
This is not safe!
By using 'remote' option you
are granting root access to
anyone on your network
EOM
sleep 2
access=""
else
access="-b 127.0.0.1"
fi
#check for needed programs
if [ ! -f "/usr/bin/abootimg" ] || [ ! -f "/usr/bin/fastboot" ] || [ ! -f "/usr/bin/adb" ]
then
apt-get install abootimg android-tools-fastboot android-tools-adb -y
fi
#get stock boot img
wget -c "$url" -O "$dir/$img"
cd $dir
#unpack stock boot img
file $img
#head -n1 $img
mkdir boot
cd boot
abootimg -x ../$img
file initrd.img
echo "updating bootimg.cfg"
rm bootimg.cfg
wget "https://raw.githubusercontent.com/metalx1000/Moto-G-root-tricks/master/config/bootimg.cfg"
mkdir ramdisk
cd ramdisk
gunzip -c ../initrd.img | cpio -i
echo "Adding Service to Startup..."
cat << EOF >> init.rc
service init_my /init_my.sh
class main
user root
group root
oneshot
EOF
echo "Creating Custom init Script..."
cat << EOS >> init_my.sh
#!/system/bin/sh
echo "loading..."
sleep 30
#/system/bin/busybox telnetd -p $port -l /system/bin/sh $access
/sbin/busybox telnetd -p $port -l /system/bin/sh $access
EOS
chmod 777 init_my.sh
cat << DEB > sbin/debian
#!/system/bin/sh
#mounts and chroots debian system on Android
#might need to create loop
#busybox mknod /dev/loop0 b 7 0
#busybox mknod -m640 /dev/block/loop255 b 7 255
#to install this script you need to make system RW
#mmcblk0p5 might change so check 'mount' command
#mount -o remount,rw /dev/block/mmcblk0p5 /system
#on Lollipop run this to stop ld.so ERROR -- unset LD_PRELOAD
dir=/storage/sdcard1/
chroot=\${dir}debian
img=\${dir}debian_arm.img
mounts () {
mount -o loop -t ext4 \$img \$chroot
busybox mount --bind /dev \$chroot/dev
busybox mount --bind /dev/pts \$chroot/dev/pts
busybox mount -t proc proc \$chroot/proc
busybox mount -t sysfs sysfs \$chroot/sys
}
mount|grep "\$chroot"&&echo "Already Mounted"|| mounts
export PATH=\$bin:/usr/bin:/usr/sbin:/bin:\$PATH
export TERM=linux
export HOME=/root
export USER=root
busybox chroot \$chroot /bin/bash
DEB
chmod 777 sbin/debian
echo "Getting Busybox for boot image..."
wget "https://github.com/metalx1000/Moto-G-root-tricks/blob/master/bin/busybox?raw=true" -O sbin/busybox
chmod 777 sbin/busybox
#repack boot img
cd ../
pwd
rm -fr initrd_new.img
abootimg-pack-initrd initrd_new.img ramdisk/
abootimg --create ../$img2 -f bootimg.cfg -k zImage -r initrd_new.img
cd ../
adb reboot bootloader
echo "Loading $img2 to phone's RAM..."
fastboot boot ./$img2
#adb shell
syntax highlighted by Code2HTML, v. 0.9.1