Меня всегда не устраивал тот факт, что установка энтвари требует уже установленное на устройстве минимальное программное обеспечение, тот же бизибокс. Даже когда оно установлено, не всегда оно работало как надо (тот же wget). Кроме того, на устройстве печатать команды не всегда удобно, так что приходится использовать удаленные средства: adb или ssh. С ssh-серверами из Play Marketa тоже беда. Одни работают кое-как, так как написаны на джаве или ее активно используют, другие либо представляют собой бинарное старье, либо не поддерживают авторизацию через пароли. Выложенные в данном разделе apk-установщики решают проблему лишь частично. В общем, собрал под себя набор статически скомпонованных бинарей static.tar.gz, с одной стороны облегчающих установку entware, а с другой стороны отчасти заменяющих entware-программы (не на каждом устройстве понадобится ставить OpenVPN или Transmission). Набор включает: dropbear-server, openssh-client, busybox, mc. Установка:
Код: Выделить всё
cd /data/local
tar -xzf /sdcard/static.tar.gz
(Ну да, tar и gzip все равно нужны. Если их нет, можно действовать через кастомное рекавери, или вытащить busybox из архива на компьютере, дать ему права и симлинки tar,gzip, и распаковать ими все окончательно). После распаковки можно сразу же запустить /data/local/static/bin/dropbear.
Особенности программ.
1. Все программы (хотя они и статические бинари) работают с конфигурационными файлами, находящимися в директории /data/local/static. Для dropbear это критично, так как необходим /data/local/static/etc/passwd.
2. Особенность сборки dropbear: в дочерних процессах переменные окружения не очищаются, поэтому вместо profile можно (и даже нужно) определить PATH до запуска сервера:
Код: Выделить всё
export PATH=/data/local/static/bin:$PATH
/data/local/static/bin/dropbear
Иногда в андроиде может не быть TERMINFO. Можно взять TERMINFO=/data/local/static/etc/terminfo.
3. Дефолтный root-пароль 12345. Меняем через /data/local/static/bin/passwd.
4. Дефолтные ключи сервера можно поменять, например, так:
Код: Выделить всё
cd /data/local/static/etc/dropbear/
rm dropbear_rsa_host_key; dropbearkey -t rsa -f dropbear_rsa_host_key -s 4096
rm dropbear_ecdsa_host_key; dropbearkey -t ecdsa -f dropbear_ecdsa_host_key -s 521
5. Авторизация через ключи и ssh-config находятся в ~/.ssh. После авторизации (и с правильным PATH) пробуем
Код: Выделить всё
ssh self ls
Авторизационные ключи меняются через
Код: Выделить всё
ssh-keygen -b 4096 -t rsa -f key
cat key.pub > ~/.ssh/authorized_keys
6. Файлы hosts и resolv.conf в директории /data/local/static/etc работают в обычном линуксовом смысле для определения хоста в ssh и бизибоксных утилитах (ping, wget и прочих). Ну почему, почему такого нет в энтвари?!
7. За безупречную работу ВСЕХ апплетов busybox никаких гарантий не даю. Но wget качает, tar и gzip распаковывают, passwd меняет пароли в /data/local/static/etc/passwd (или shadow).