shell: Make shell interactive mode work
Signed-off-by: Joel Fernandes <joel@joelfernandes.org>
diff --git a/addons/run b/addons/run
index a5bdaf3..9738504 100755
--- a/addons/run
+++ b/addons/run
@@ -1,45 +1,7 @@
#!/system/bin/sh
spath=$( cd "$(dirname "$0")" ; pwd -P )
-
cd $spath
-do_mounts()
-{
- mount --bind /proc debian/proc/ > /dev/null
- mount --bind /dev debian/dev/ > /dev/null
- mount --bind /sys debian/sys/ > /dev/null
- mount --bind /sys/kernel/debug/ debian/sys/kernel/debug/ > /dev/null
- mount --bind /sys/kernel/debug/tracing/ debian/sys/kernel/debug/tracing/
-
- # Fix up weirdness with debugfs permission changing because of
- # above mounts.
- chmod 0777 /sys/kernel/debug > /dev/null
- chmod 0777 debian/sys/kernel/debug > /dev/null
- chmod 0777 /sys/kernel/debug/tracing > /dev/null
- chmod 0777 debian/sys/kernel/debug/tracing > /dev/null
-
- # Mount Android partitions
- if [ -d /d/ ]; then
- if [ ! -d debian/d ]; then ln -s /sys/kernel/debug debian/d; fi
- fi
-
- if [ -d /data/ ]; then
- mkdir -p debian/data/
- mount --bind /data debian/data/
- fi
-
- if [ -d /system/ ]; then
- mkdir -p debian/system/
- mount --bind /system debian/system/
- fi
-
- if [ -d /vendor/ ]; then
- mkdir -p debian/vendor/
- mount --bind /vendor debian/vendor/
- fi
-}
-
-mount | grep debian > /dev/null
-if [ $? -ne 0 ]; then do_mounts; fi
+source run.common
chroot debian/ /bin/bash
diff --git a/addons/run-command b/addons/run-command
index eed84f9..6d5a8ca 100755
--- a/addons/run-command
+++ b/addons/run-command
@@ -2,6 +2,8 @@
spath=$( cd "$(dirname "$0")" ; pwd -P )
cd $spath
+source run.common
+
# Directly execute a command within the chroot of an Android device
CMD="$*"
diff --git a/addons/run.common b/addons/run.common
new file mode 100644
index 0000000..1ef22aa
--- /dev/null
+++ b/addons/run.common
@@ -0,0 +1,38 @@
+do_mounts()
+{
+ mount --bind /proc debian/proc/ > /dev/null
+ mount --bind /dev debian/dev/ > /dev/null
+ mount --bind /sys debian/sys/ > /dev/null
+ mount --bind /sys/kernel/debug/ debian/sys/kernel/debug/ > /dev/null
+ mount --bind /sys/kernel/debug/tracing/ debian/sys/kernel/debug/tracing/
+
+ # Fix up weirdness with debugfs permission changing because of
+ # above mounts.
+ chmod 0777 /sys/kernel/debug > /dev/null
+ chmod 0777 debian/sys/kernel/debug > /dev/null
+ chmod 0777 /sys/kernel/debug/tracing > /dev/null
+ chmod 0777 debian/sys/kernel/debug/tracing > /dev/null
+
+ # Mount Android partitions
+ if [ -d /d/ ]; then
+ if [ ! -d debian/d ]; then ln -s /sys/kernel/debug debian/d; fi
+ fi
+
+ if [ -d /data/ ]; then
+ mkdir -p debian/data/
+ mount --bind /data debian/data/
+ fi
+
+ if [ -d /system/ ]; then
+ mkdir -p debian/system/
+ mount --bind /system debian/system/
+ fi
+
+ if [ -d /vendor/ ]; then
+ mkdir -p debian/vendor/
+ mount --bind /vendor debian/vendor/
+ fi
+}
+
+mount | grep debian > /dev/null
+if [ $? -ne 0 ]; then do_mounts; fi