Replace printf boot script with individual echo commands for mobile

printf \n escapes also get mangled by Android clipboard (expanded to real
newlines). Individual echo >> commands are the only reliable approach for
copy-pasting multi-line scripts to a mobile terminal.

Bunker Admin
This commit is contained in:
bunker-admin 2026-02-27 08:50:33 -07:00
parent a8de30cf8e
commit 5461ebd187
2 changed files with 21 additions and 13 deletions

View File

@ -447,11 +447,14 @@ export default function SmsSetupPage() {
<Divider style={{ margin: '12px 0' }} />
<Paragraph strong>Auto-start on phone reboot:</Paragraph>
<Paragraph type="secondary">
Install <Text strong>Termux:Boot</Text> from F-Droid, then run these two commands:
Install <Text strong>Termux:Boot</Text> from F-Droid, then run these commands one at a time:
</Paragraph>
<div style={{ background: 'rgba(0,0,0,0.1)', padding: 12, borderRadius: 6 }}>
<CmdLine comment="Create the boot scripts directory" cmd="mkdir -p ~/.termux/boot" />
<CmdLine comment="Create boot script that starts the watchdog on phone reboot" cmd={"printf '#!/data/data/com.termux/files/usr/bin/bash\\ntermux-wake-lock\\ncd ~/sms-server/android\\nnohup bash sms-watchdog.sh >> ~/logs/watchdog.log 2>&1 &\\n' > ~/.termux/boot/start-sms-server && chmod +x ~/.termux/boot/start-sms-server"} />
<CmdLine comment="Create boot dir + first line of script" cmd="mkdir -p ~/.termux/boot && echo '#!/data/data/com.termux/files/usr/bin/bash' > ~/.termux/boot/start-sms-server" />
<CmdLine cmd="echo 'termux-wake-lock' >> ~/.termux/boot/start-sms-server" />
<CmdLine cmd="echo 'cd ~/sms-server/android' >> ~/.termux/boot/start-sms-server" />
<CmdLine cmd="echo 'nohup bash sms-watchdog.sh >> ~/logs/watchdog.log 2>&1 &' >> ~/.termux/boot/start-sms-server" />
<CmdLine comment="Make it executable" cmd="chmod +x ~/.termux/boot/start-sms-server" />
</div>
<Paragraph type="secondary" style={{ marginTop: 8, marginBottom: 0 }}>
Also disable battery optimization: Android Settings Apps Termux Battery Unrestricted.

View File

@ -162,16 +162,19 @@ This is **required** regardless of which method you use below:
Install [Termux:Boot](https://f-droid.org/packages/com.termux.boot/) from F-Droid (must be same source as Termux), then open it once to register with Android.
```bash
# Create the boot scripts directory
mkdir -p ~/.termux/boot
Run each command one at a time (copy-paste friendly):
# Create the auto-start script (single command, no heredoc)
printf '#!/data/data/com.termux/files/usr/bin/bash\nsource ~/.bashrc\ntermux-wake-lock\nmkdir -p ~/logs\nnohup python ~/sms-server/android/termux-sms-api-server.py >> ~/logs/sms-api.log 2>&1 &\n' > ~/.termux/boot/start-sms-server && chmod +x ~/.termux/boot/start-sms-server
```bash
mkdir -p ~/.termux/boot && echo '#!/data/data/com.termux/files/usr/bin/bash' > ~/.termux/boot/start-sms-server
echo 'source ~/.bashrc' >> ~/.termux/boot/start-sms-server
echo 'termux-wake-lock' >> ~/.termux/boot/start-sms-server
echo 'mkdir -p ~/logs' >> ~/.termux/boot/start-sms-server
echo 'nohup python ~/sms-server/android/termux-sms-api-server.py >> ~/logs/sms-api.log 2>&1 &' >> ~/.termux/boot/start-sms-server
chmod +x ~/.termux/boot/start-sms-server
```
!!! tip "Why printf instead of heredoc?"
Heredoc (`<< 'EOF'`) blocks are unreliable when copy-pasting on mobile devices — trailing whitespace or clipboard quirks prevent the `EOF` from being recognized. The `printf` one-liner is more reliable for mobile copy-paste.
!!! tip "Why individual echo commands?"
Heredocs and `printf` with `\n` are unreliable when copy-pasting to a mobile terminal — the clipboard mangles escape sequences or adds trailing whitespace. Individual `echo >>` commands are the most reliable approach for mobile copy-paste.
#### C. Watchdog (auto-restart on crash)
@ -193,9 +196,11 @@ The watchdog:
For maximum reliability, use the watchdog as your boot script:
```bash
mkdir -p ~/.termux/boot
printf '#!/data/data/com.termux/files/usr/bin/bash\ntermux-wake-lock\ncd ~/sms-server/android\nnohup bash sms-watchdog.sh >> ~/logs/watchdog.log 2>&1 &\n' > ~/.termux/boot/start-sms-server && chmod +x ~/.termux/boot/start-sms-server
mkdir -p ~/.termux/boot && echo '#!/data/data/com.termux/files/usr/bin/bash' > ~/.termux/boot/start-sms-server
echo 'termux-wake-lock' >> ~/.termux/boot/start-sms-server
echo 'cd ~/sms-server/android' >> ~/.termux/boot/start-sms-server
echo 'nohup bash sms-watchdog.sh >> ~/logs/watchdog.log 2>&1 &' >> ~/.termux/boot/start-sms-server
chmod +x ~/.termux/boot/start-sms-server
```
#### D. Quick Background (simplest)