Skip to content

Commit

Permalink
Improvements for tailscale/d
Browse files Browse the repository at this point in the history
* Improvements for `tailscale` & `tailscaled` command.
* Changed `/data/local/tmp/` to `/data/adb/tailscale/` & Refactor variable name.
  • Loading branch information
anasfanani authored Dec 26, 2023
1 parent 7a36368 commit cb267c2
Show file tree
Hide file tree
Showing 7 changed files with 262 additions and 191 deletions.
358 changes: 195 additions & 163 deletions README.md

Large diffs are not rendered by default.

50 changes: 26 additions & 24 deletions customize.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,43 +5,45 @@ case $ARCH in
esac

ui_print "- Detected architecture: $F_ARCH"
ui_print "- Extracting module files"
ui_print "- Copying module files"

F_TARGETDIR="$MODPATH/system/bin"
CUSTOM_DIR="/data/adb/tailscale"
CUSTOM_BIN_DIR="$CUSTOM_DIR/bin"
CUSTOM_TMP_DIR="$CUSTOM_DIR/tmp"

mkdir -p "$F_TARGETDIR"
unzip -qq -o "$ZIPFILE" "files/tailscaled-$F_ARCH" -j -d "$F_TARGETDIR"
unzip -qq -o "$ZIPFILE" "files/tailscale-$F_ARCH" -j -d "$F_TARGETDIR"
mkdir -p "$CUSTOM_DIR" "$CUSTOM_BIN_DIR" "$CUSTOM_TMP_DIR"

mv "$F_TARGETDIR/tailscaled-$F_ARCH" "$F_TARGETDIR/tailscaled"
mv "$F_TARGETDIR/tailscale-$F_ARCH" "$F_TARGETDIR/tailscale"

ui_print "- Extracted files to $F_TARGETDIR"
cp "$MODPATH/tailscale/"* "$CUSTOM_DIR"
cp "$MODPATH/files/tailscaled-$F_ARCH" "$CUSTOM_BIN_DIR/tailscaled"
cp "$MODPATH/files/tailscale-$F_ARCH" "$CUSTOM_BIN_DIR/tailscale"

ui_print "- Setting permissions"

#set_perm_recursive $F_TARGETDIR 0 2000 0644 0755
set_perm $MODPATH/system/bin/tailscale 0 0 0755
set_perm $MODPATH/system/bin/tailscaled 0 0 0755
# I wont hardcode the binary names here, because I will add other binaries in the future

ui_print "- Cleaning up"
set_perm_recursive $CUSTOM_BIN_DIR 0 0 0755 0755
set_perm_recursive $MODPATH/system/bin 0 0 0755 0755

rm -r "$MODPATH/files" # cleanup
if [ -f "/data/local/tmp/tailscaled.state" ]; then
ui_print "- Moving existing state file"
cp "/data/local/tmp/tailscaled.state" "$CUSTOM_TMP_DIR/tailscaled.state"
rm -f /data/local/tmp/tailscale* # cleanup old files
fi

ui_print "- Cleaning up"
rm -r "$MODPATH/files"
rm -r "$MODPATH/tailscale"

ui_print "*******************"
ui_print " Instructions "
ui_print "*******************"
ui_print "1. Reboot your device."
ui_print "2. Open the Teminal and type 'cd /data/local/tmp/'."
ui_print "3. Run 'su' to gain root access."
ui_print "4. Run 'tailscale login' to login to your Tailscale account."
ui_print "5. Open url in browser to authorize your device."
ui_print "6. Run 'tailscale status' to check Tailscale connection."
ui_print "2. Run 'su' to gain root access."
ui_print "3. Run 'tailscale login' to login to your Tailscale account."
ui_print "4. Open url in browser to authorize your device."
ui_print "5. Run 'tailscale status' to check Tailscale connection."
ui_print "*******************"
ui_print " Troubleshooting "
ui_print "*******************"
ui_print "1. Check logs in /data/local/tmp/tailscaled.log."
ui_print "2. Read the docs."



ui_print "1. Check logs in /data/adb/tailscale/tmp/tailscaled.log."
ui_print "2. Read the docs."
8 changes: 4 additions & 4 deletions service.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ done
# ensure boot has actually completed & network is ready
sleep 5
# start tailscaled
echo "Starting tailscaled">/data/local/tmp/tailscaled.log
echo "Starting tailscaled">/data/adb/tailscale/tmp/tailscaled.log
while true;do
# https://github.com/tailscale/tailscale/issues?q=no+safe+place+found+to+store+log+state
cd /data/local/tmp/ && tailscaled -tun=userspace-networking -statedir=/data/local/tmp/ -state=/data/local/tmp/tailscaled.state -socket=/data/local/tmp/tailscaled.sock -port=41641 >> /data/local/tmp/tailscaled.log 2>&1
# https://github.com/tailscale/tailscale/issues?q=no+safe+place+found+to+store+log+state
cd /data/adb/tailscale/tmp/ && tailscaled >> /data/adb/tailscale/tmp/tailscaled.log 2>&1
sleep 5
echo "Tailscaled restarting">>/data/local/tmp/tailscaled.log
echo "Tailscaled restarting">>/data/adb/tailscale/tmp/tailscaled.log
done
6 changes: 6 additions & 0 deletions system/bin/tailscale
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/system/bin/sh
if echo "$@" | grep -q -- '--socket='; then # if socket is specified, use it
/data/adb/tailscale/bin/tailscale "$@"
else # otherwise, use the default socket
/data/adb/tailscale/bin/tailscale --socket=/data/adb/tailscale/tmp/tailscaled.sock "$@"
fi
7 changes: 7 additions & 0 deletions system/bin/tailscaled
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/system/bin/sh
if [ $# -eq 0 ]; then # if no arguments are passed, start tailscaled
export PATH=/data/adb/tailscale/bin:$PATH
/data/adb/tailscale/bin/tailscaled -tun=userspace-networking -statedir=/data/adb/tailscale/tmp/ -state=/data/adb/tailscale/tmp/tailscaled.state -socket=/data/adb/tailscale/tmp/tailscaled.sock -port=41641
else # otherwise, run tailscale with the arguments passed
/data/adb/tailscale/bin/tailscaled "$@"
fi
23 changes: 23 additions & 0 deletions tailscale/bin/getent
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/system/bin/sh

# Custom getent script to simulate "getent passwd" for specific users
# Because tailscale ssh need getent command
# Reference :
# - https://github.com/tailscale/tailscale/blob/5812093d31c8a7f9c5e3a455f0fd20dcc011d8cd/util/osuser/user.go#L121C19-L121C33
case "$1" in
passwd)
case "$2" in
root)
echo "root:x:0:0:root:/:/bin/sh"
;;
*)
echo "User not found"
exit 1
;;
esac
;;
*)
echo "Unknown getent command"
exit 1
;;
esac
1 change: 1 addition & 0 deletions uninstall.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rm -rf /data/adb/tailscale

0 comments on commit cb267c2

Please sign in to comment.