Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.99 KB | None | 0 0
  1. #!/sbin/sh
  2.  
  3. ui_print "##################################################"
  4. ui_print "## ##"
  5. ui_print "## 88 a8P db 88 88 ##"
  6. ui_print "## 88 .88' d88b 88 88 ##"
  7. ui_print "## 88 88' d8''8b 88 88 ##"
  8. ui_print "## 88 d88 d8' '8b 88 88 ##"
  9. ui_print "## 8888'88. d8YaaaaY8b 88 88 ##"
  10. ui_print "## 88P Y8b d8''''''''8b 88 88 ##"
  11. ui_print "## 88 '88. d8' '8b 88 88 ##"
  12. ui_print "## 88 Y8b d8' '8b 888888888 88 ##"
  13. ui_print "## ##"
  14. ui_print "################### NetHunter ####################"
  15.  
  16. OUTFD=/proc/self/fd/$2;
  17. ZIPFILE="$3";
  18.  
  19. # embedded mode support
  20. readlink /proc/$$/fd/$2 2>/dev/null | grep /tmp >/dev/null;
  21. if [ "$?" -eq "0" ]; then
  22. # rerouted to log file, so suppress recovery ui commands
  23. OUTFD=/proc/self/fd/0;
  24. # try to find the actual fd (pipe with parent updater likely started as 'update-binary 3 fd zipfile')
  25. for FD in `ls /proc/$$/fd`; do
  26. readlink /proc/$$/fd/$FD 2>/dev/null | grep pipe >/dev/null;
  27. if [ "$?" -eq "0" ]; then
  28. ps | grep " 3 $FD " | grep -v grep >/dev/null;
  29. if [ "$?" -eq "0" ]; then
  30. OUTFD=/proc/self/fd/$FD;
  31. break;
  32. fi;
  33. fi;
  34. done;
  35. fi;
  36.  
  37. # Magisk boot mode support
  38. test -e /data/adb/magisk && adb=adb;
  39. ps | grep zygote | grep -v grep >/dev/null && BOOTMODE=true || BOOTMODE=false;
  40. $BOOTMODE || ps -A 2>/dev/null | grep zygote | grep -v grep >/dev/null && BOOTMODE=true;
  41. if $BOOTMODE; then
  42. OUTFD=/proc/self/fd/0;
  43. dev=/dev;
  44. devtmp=/dev/tmp;
  45. if [ ! -f /data/$adb/magisk_merge.img ]; then
  46. (/system/bin/make_ext4fs -b 4096 -l 64M /data/$adb/magisk_merge.img || /system/bin/mke2fs -b 4096 -t ext4 /data/$adb/magisk_merge.img 64M) >/dev/null;
  47. fi;
  48. fi;
  49.  
  50. ui_print() { $BOOTMODE && echo "$1" || echo -e "ui_print $1\nui_print" >> $OUTFD; }
  51. show_progress() { echo "progress $1 $2" >> $OUTFD; }
  52. set_progress() { echo "set_progress $1" >> $OUTFD; }
  53. file_getprop() { grep "^$2" "$1" | head -n1 | cut -d= -f2; }
  54. abort() {
  55. ui_print " ";
  56. ui_print "Your system has not been changed.";
  57. ui_print " ";
  58. ui_print "Script will now exit...";
  59. ui_print " ";
  60. umount $mnt;
  61. umount /system;
  62. umount /data;
  63. umount /cache;
  64. exit 1;
  65. }
  66.  
  67. ui_print " ";
  68. ui_print "Installing Kali Linux Busybox";
  69. modname=KaliNethunter;
  70. show_progress 1.34 0;
  71.  
  72. ui_print " ";
  73. ui_print "Mounting...";
  74. mount -o ro /system;
  75. mount /data;
  76. mount /cache;
  77. set_progress 0.2;
  78.  
  79. case $(basename "$ZIPFILE") in
  80. *uninstall*|*Uninstall*) action=uninstallation;;
  81. *) action=installation;;
  82. esac;
  83.  
  84. case $(basename "$ZIPFILE") in
  85. *system*) system=1; ui_print " "; ui_print "Warning: Forcing a system $action!";;
  86. esac;
  87.  
  88. if [ "$action" == "installation" ]; then
  89. ui_print " ";
  90. ui_print "Extracting files...";
  91. mkdir -p $dev/tmp/$modname;
  92. cd $dev/tmp/$modname;
  93. unzip -o "$ZIPFILE";
  94. set_progress 0.3;
  95.  
  96. ui_print " ";
  97. ui_print "Installing...";
  98. rm -rf /system/xbin/busybox_nh
  99. abi=`getprop ro.product.cpu.abi`;
  100. case $abi in
  101. arm64*) arch=arm64;;
  102. arm*) arch=arm;;
  103. *) ui_print "Unknown architecture: $abi"; abort;;
  104. esac;
  105. ui_print "Using architecture: $arch";
  106. else
  107. ui_print " ";
  108. ui_print "Uninstalling...";
  109. fi;
  110.  
  111. # Magisk clean flash support
  112. if [ -e /data/$adb/magisk -a ! -e /data/$adb/magisk.img ]; then
  113. /system/bin/make_ext4fs -b 4096 -l 64M /data/$adb/magisk.img || /system/bin/mke2fs -b 4096 -t ext4 /data/$adb/magisk.img 64M;
  114. fi;
  115.  
  116. # allow forcing a system installation regardless of su.img/magisk.img detection
  117. if [ ! "$system" ]; then
  118. suimg=$(ls /data/$adb/magisk_merge.img || ls /data/su.img || ls /cache/su.img || ls /data/$adb/magisk.img || ls /cache/magisk.img) 2>/dev/null;
  119. mnt=$devtmp/$(basename $suimg .img);
  120. fi;
  121. if [ "$suimg" ]; then
  122. umount $mnt;
  123. test ! -e $mnt && mkdir -p $mnt;
  124. mount -t ext4 -o rw,noatime $suimg $mnt;
  125. for i in 0 1 2 3 4 5 6 7; do
  126. test "$(mount | grep " $mnt ")" && break;
  127. loop=/dev/block/loop$i;
  128. if [ ! -f "$loop" -o ! -b "$loop" ]; then
  129. mknod $loop b 7 $i;
  130. fi;
  131. losetup $loop $suimg && mount -t ext4 -o loop,noatime $loop $mnt;
  132. done;
  133. case $mnt in
  134. */magisk*) magisk=/$modname/system;;
  135. esac;
  136. if [ -d "$mnt$magisk/xbin" -o "$magisk" -a -d "$root/system/xbin" ]; then
  137. target=$mnt$magisk/xbin;
  138. else
  139. target=$mnt$magisk/bin;
  140. fi;
  141. else
  142. # SuperSU BINDSBIN support
  143. mnt=$(dirname `find /data -name supersu_is_here | head -n1`);
  144. if [ -e "$mnt" -a ! "$system" ]; then
  145. target=$mnt/xbin;
  146. else
  147. mount -o rw,remount /system;
  148. mount /system;
  149. if -d [ "$root/system/xbin" ]; then
  150. target=$root/system/xbin;
  151. else
  152. target=$root/system/bin;
  153. fi;
  154. fi;
  155. fi;
  156. ui_print "Using path: $target";
  157. if [ "$action" == "uninstallation" ]; then
  158. if [ ! -f "$target/busybox" ]; then
  159. ui_print " ";
  160. ui_print "No busybox installation found!";
  161. abort;
  162. fi;
  163. else
  164. mkdir -p $target;
  165. cp -f busybox-$arch $target/busybox;
  166. chown 0:0 "$target/busybox";
  167. chmod 755 "$target/busybox";
  168. if [ "$magisk" ]; then
  169. cp -f module.prop $mnt/$modname/;
  170. touch $mnt/$modname/auto_mount;
  171. if $BOOTMODE; then
  172. test -e /magisk && imgmnt=/magisk || imgmnt=/sbin/.core/img;
  173. if [ "$suimg" == "/data/$adb/magisk_merge.img" ]; then
  174. mkdir -p "$imgmnt/$modname";
  175. touch "$imgmnt/$modname/update";
  176. cp -f module.prop "$imgmnt/$modname/";
  177. fi;
  178. fi;
  179. fi;
  180. set_progress 0.8;
  181.  
  182. ui_print " ";
  183. ui_print "Cleaning...";
  184. fi;
  185. cleanup="$target";
  186. if [ "$target" == "$mnt$magisk/xbin" -a -f "$mnt$magisk/bin/busybox" ]; then
  187. $target/busybox rm -f $mnt$magisk/bin/busybox;
  188. cleanup="$mnt$magisk/bin $target";
  189. fi;
  190. for dir in $cleanup; do
  191. cd $dir;
  192. for i in $(ls -al `find -type l` | $target/busybox awk '{ print $(NF-2) ":" $NF }'); do
  193. case $(echo $i | $target/busybox cut -d: -f2) in
  194. *busybox) list="$list $dir/$(echo $i | $target/busybox cut -d: -f1)";;
  195. esac;
  196. done;
  197. done;
  198. test "$action" == "uninstallation" && list="$list busybox";
  199. $target/busybox rm -f $list;
  200.  
  201. if [ "$action" == "installation" ]; then
  202. ui_print " ";
  203. ui_print "Creating symlinks...";
  204. sysbin="$(ls $root/system/bin)";
  205. test $BOOTMODE && existbin="$(ls $imgmnt/$modname/system/bin 2>/dev/null)";
  206. for applet in `$target/busybox --list`; do
  207. case $target in
  208. */bin)
  209. if [ "$(echo "$sysbin" | grep "^$applet$")" ]; then
  210. if $BOOTMODE && [ "$(echo "$existbin" | grep "^$applet$")" ]; then
  211. $target/busybox ln -sf busybox $applet;
  212. fi;
  213. else
  214. $target/busybox ln -sf busybox $applet;
  215. fi;
  216. ;;
  217. *) $target/busybox ln -sf busybox $applet;;
  218. esac;
  219. done;
  220. test "$magisk" && chcon -hR 'u:object_r:system_file:s0' "$mnt/$modname";
  221. else
  222. test "$magisk" && rm -rf /magisk/$modname /sbin/.core/img/$modname;
  223. fi;
  224. print "Symlinking..."
  225. ln -s /system/xbin/busybox /system/xbin/busybox_nh
  226.  
  227. pm install $dev/tmp/$modname/apps/BlueNMEA.apk
  228. pm install $dev/tmp/$modname/apps/cSploit-release.apk
  229. pm install $dev/tmp/$modname/apps/Drivedroid.apk
  230. pm install $dev/tmp/$modname/apps/Hackerskeyboard.apk
  231. pm install $dev/tmp/$modname/apps/nethunter.apk
  232. pm install $dev/tmp/$modname/apps/OpenVPN.apk
  233. pm install $dev/tmp/$modname/apps/RFAnalyzer.apk
  234. pm install $dev/tmp/$modname/apps/RouterKeygen.apk
  235. pm install $dev/tmp/$modname/apps/Shodan.apk
  236. pm install $dev/tmp/$modname/apps/Term-nh.apk
  237. pm install $dev/tmp/$modname/apps/USBKeyboard.apk
  238. pm install $dev/tmp/$modname/apps/VNC-nh.apk
  239. set_progress 1.0;
  240.  
  241. ui_print " ";
  242. ui_print "Unmounting...";
  243. cd /;
  244. test "$suimg" && umount $mnt;
  245. test "$loop" && losetup -d $loop;
  246. umount /system;
  247. umount /data;
  248. umount /cache;
  249. set_progress 1.2;
  250.  
  251. rm -rf /tmp/$modname /dev/tmp;
  252. ui_print " ";
  253. ui_print "Done!";
  254. set_progress 1.34;
  255. exit 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement