A Linux és az Android disztribúciók nem csupán kapcsolódó operációs rendszerek – általában ugyanazon a kernelen alapulnak, és alacsony szinten nagyon hasonlóak. A Linux-parancsok többsége Androidon működik, telepíthető benne a bash parancshéj, szkriptek készíthetők, sőt szerverek is futtathatók. Miután SSH-t csatlakoztatott Android-eszközére, elérheti azt a számítógépéről, sőt az rsync-t is használhatja a fájlok szinkronizálására. Ma ezekről a trükkökről fogunk beszélni, amelyeket minden unixoid okostelefon-tulajdonosnak tudnia kell.
Tartalom
ADB – Android vezérlés Linuxról
Kezdjük az összes haladó Android-felhasználó kedvenc eszközével - az ADB-vel. Sokszor írtunk már róla, de itt egyszerűen meg kell ismételnünk magunkat. Tehát az ADB az Android Debug Bridge rövidítése, és valójában olyasmi, mint egy okostelefon vezérlőrendszere számítógépről. Az ADB lehetővé teszi szoftverek telepítését és futtatását, fájlok áthelyezését az eszközről és az eszközre, valamint számos egyéb feladat végrehajtását.
Az ADB megfelelő konfigurálásához Windowsban telepítenie kell az illesztőprogramokat és újra kell indítania a rendszert, Linux alatt ez csak működik. Mindössze annyit kell tennie, hogy aktiválja az ADB-t okostelefonján. Ez a Beállítások menü? A fejlesztőknek? USB hibakeresés), és telepítse a csomagot az adb segédprogrammal a rendszerbe:
1234 | # Ubuntu/Debian/Mint$ sudo apt-get install adb# Arch Linux$ sudo pacman -S android-android tools-udev |
Aminek következtébencsatlakoztatnia kell a telefont a számítógéphez, és el kell kezdenie parancsokat adni.
A csatlakoztatott eszközök listájának megtekintése:
1 | $ adb eszközök |
Az APK telepítése a csatlakoztatott eszközre:
1 | $ adb install file.apk |
Fájl áthelyezése eszközre:
1 | $ adb push fájl /sdcard/ |
Fájl letöltése az eszközről:
1 | $ adb pull /sdcard/DCIM/Camera/photo.jpg photo.jpg |
Készítsen képernyőképet, és töltse le a számítógépére:
123 | $ adb shell screencap /sdcard/screenshot.png$ adb pull /sdcard/screenshot.png$ adb shell rm /sdcard/screenshot.png |
Nyomja meg a bekapcsoló gombot:
1 | $ adb shell bemeneti kulcsesemény 26 |
És ami a legfontosabb, az ADB segédprogram használható a telefon parancssorának eléréséhez:
1 | $ adb shell |
Fontos megjegyezni, hogy az ADB segédprogram nem csak USB-n, hanem Wi-Fi-n keresztül is működhet, ehhez azonban root jogokra van szükség az eszközön és a WiFi ADB alkalmazáson. Indítsa el az alkalmazást, kapcsolja be a kapcsolót, és csatlakozzon a telefonhoz az adb connect segítségével és az alkalmazás által megjelenített IP-címmel:
1 | $ adb csatlakozási IP-cím |
Egyes disztribúciók gyökérkönyvtárat igényelhetnek az ADB működéséhez. Ennek oka a speciális Udev-szabályok hiánya a disztribúcióban. Ezeket vagy külön csomagként kell telepítenie (Arch Linuxban az android-udev), vagy magának kell beállítania az Udev-et.
Adb-sync – fájlok szinkronizálása az eszközök között
Az ADB-vel az eszközök közötti fájlok szinkronizálására is lehetőség nyílik (erre még szinkronizálási lehetőség is van), de kényelmesebb az adb-sync script használata.Elég letölteni és futtatni. Például így szinkronizálhatja a zenét készülékén és számítógépén:
1 | $ adb-sync ~/Zene/ /sdcard/Zene |
Így hajtsa végre ugyanazt a szinkronizálást, de a számítógépről törölt fájlok törlésével:
1 | $ adb-sync –delete ~/Zene/ /sdcard/Zene |
A fájlok számítógépre való letöltésének egyszerű módja (fordított szinkronizálás):
1 | $ adb-sync –fordított /sdcard/Letöltés/ ~/Letöltések |
Adbfs - hozzáférés a fájlokhoz
Egy másik érdekes mód az eszközön lévő fájlok elérésére az ADB használatával az adbfs, egy pszeudo-FS használata, amely lehetővé teszi, hogy az eszközt flash meghajtóként vagy bármilyen más tárolóeszközként rögzítse.
Az adbfs telepítésének legegyszerűbb módja az Arch Linux. Itt van az AUR-ban, tehát elég egy parancsot végrehajtani:
1 | $ yaourt -S adbfs-rootless-git |
Az Ubuntu és más rendszerekben az adbf-eket manuálisan kell összegyűjteni:
1234 | $ sudo apt-get install libfuse-android dev-tools-adb$ git klón git://github.com/spion/adbfs-rootless.git$ cd adbfs-rootless $ make |
Nos, akkor csatlakoztathatja a fájlrendszert:
12 | $ mkdir ~/Android$ adbfs ~/Android |
Letiltása:
1 | $ fusermount -u ~/Android |
Go-mtpfs — adatátvitel MTP protokoll használatával
Egy másik lehetőség az eszköz fájlrendszerként történő csatlakoztatására a go-mtpfs, egy olyan fájlrendszer, amely lehetővé teszi az adatok átvitelét az MTP protokoll használatával. Ezt a protokollt használják a memóriakártya nélküli okostelefonokban.
Arch Linuxon a go-mtpfs telepítése nagyon egyszerű:
1 | $ yaourt -S go-mtpfs |
MásokbanA disztribúciók valamivel bonyolultabbak:
12345 | $ sudo apt-get install golang-go libusb1-devel$ mkdir /tmp/go$ export GOPATH=/tmp/go$ go get github.com/hanwen/go-mtpfs$ go install github.com/hanwen/ go-mtpfs |
Akkor minden olyan elemi, mint az adbfs esetében:
12 | $ mkdir ~/Android$ go-mtpfs ~/Android |
Letiltása:
1 | $ fusermount -u ~/Android |
SSH
Furcsának tűnhet az az ötlet, hogy ADB-t használjunk az eszközzel való kommunikációhoz, tekintve, hogy számos különböző SSH-kiszolgáló létezik az Android számára, amelyek nem igényelnek root jogokat. Így van, sok esetben az SSH kényelmesebb és hatékonyabb lesz. Szervermegvalósításként azt javaslom, hogy válassza a SimpleSSHD-t, egy egyszerű ingyenes wrappert a beágyazott rendszerekhez készült, jól bevált DropBear SSH szerverhez. Ha rendelkezik root felhasználóval, azt javaslom, hogy telepítse a BusyBox On Rails programot is, amely a Linux disztribúciókhoz legközelebb álló parancssori segédprogramok készlete.
A SimpleSSHD használata nagyon egyszerű. Indítsa el, nyomja meg a START gombot, és csatlakozzon a megadott IP-címhez (2222-es port):
1 | $ ssh 192.168.31.236 -p 2222 |
Csatlakozáskor egy egyszeri jelszó jelenik meg a képernyőn, amelyet a kliensben kell megadni. Ez nem túl kényelmes hitelesítési módszer, de beállíthatja a kulcs segítségével történő hitelesítést. Csak nevezze át nyilvános kulcsát (~/.ssh/id_rsa.pub) Author_keys névre, és helyezze el okostelefonja memóriakártyájának ssh könyvtárába.
Android használata Linux rendszerrel. EgyszerűSSHDBash, tmux, mc
Egy okostelefonon lévő SSH-szerver önmagában széles lehetőségeket nyit meg, de még szélesebbé tehető, ha olyan klasszikus eszközöket telepít okostelefonjára, mint a bash, tmux és mc. Ez utóbbi lehetővé teszibeleértve a kényelmes navigálást a memóriakártyán és szükség esetén eltávolítva.
Már elmondtam, hogyan kell telepíteni a bash-t, a tmux-ot, az mc-t és a nano-t okostelefonra, de megismétlem magam. És azonnal figyelmeztetem, hogy root jogokra lesz szüksége az okostelefonon.
Tehát letöltjük a Terminal IDE-t, átnevezzük az APK-csomagot ZIP-re, kicsomagoljuk, megkeressük az resources/system-2.0.tar.gz.mp3 fájlt, átnevezzük, eltávolítva az mp3 kiterjesztést, és kicsomagoljuk. Sok könyvtár és fájl lesz benne, amelyek közül minket csak a system/bin system/etc/terminfo érdekel. Az első tartalmazza a szükséges segédprogramokat; másolja a szükségeseket egy külön könyvtárba. A második a közművek megfelelő működéséhez szükséges.
Mentse el a kiválasztott segédprogramokat és a terminfo könyvtárat az okostelefon memóriakártyájára. Ezután csatlakozzon hozzá SSH-n keresztül, és írja be a következő parancsokat, hogy módosítsa a rendszerkönyvtárat:
12 | $ su# mount -o remount,rw /rendszer |
Ezután másolja át az összes szükséges segédprogramot a /system/xbin/ mappába, és állítsa be rajtuk a végrehajtó bitet (példaként a bash használatával):
12 | # cp bash /rendszer/xbin/# chmod 755 /system/xbin/bash |
Ezután hozzon létre egy /sdcard/ssh/.bashrc fájlt, és tegye bele a következő sorokat:
123 | exportálás TERMINFO=/sdcard/terminfoexport TMPDIR=/data/local/tmpexport PS1=”[email protected]h:w $ “ |
Nyissa meg a SimpleSSHD beállításait az okostelefonon, és a Login Shell opciónál írja be a /system/xbin/bash parancsot, állítsa le és indítsa újra a szervert. Amikor legközelebb SSH-n keresztül jelentkezik be, megnyílik a bash, és elérhetők lesznek a másolt segédprogramok.
A Vim és mc megfelelő működésének biztosításához másolja az etc/mc és etc/vim könyvtárakat a memóriakártyára, és adja hozzá a következő sorokat az /sdcard/ssh/.bashrc fájlhoz:
12 | exportálásMC_DATADIR=/sdcard/mcexport VIMRUNTIME=/sdcard/vim |
Android használata Linuxszal. A Midnight Commander elindult Androidon
Rsync – fájlszinkronizálás és biztonsági mentés
Az SSH-szerver lehetőséget ad az rsync használatára, amely egy hatékony segédprogram a fájlszinkronizáláshoz és biztonsági mentéshez. Az Rsync lehetővé teszi a fájlok gyors kétirányú szinkronizálását két gép (vagy egy gép és egy okostelefon, mint esetünkben) között, csak az új és megváltozott fájlok letöltésével és a megszakadt szinkronizálás visszaállításának lehetőségével.
A legegyszerűbb példa az rsync használatára okostelefonnal kapcsolatban:
1 | $ rsync –frissítés –progress -e ‘ssh -p 2222’ -azv 192.168.31.236:/sdcard/DCIM/Camera ~/Photos |
Ez a parancs átmásolja az összes fényképet az okostelefonról a ~/Photos könyvtárba, kihagyva a már a könyvtárban lévőket. Az -azv opció hivatkozása ebben az esetben azt jelenti, hogy a könyvtárat úgy kell átadni, ahogy van az összes alkönyvtárával és hozzáférési jogával (-a jelző), valamint tömörítést kell használni (-z jelző).
Fordított parancs – adatok másolása a készülékről az okostelefonra:
1 | $ rsync –delete –progress -e ‘ssh -p 2222’ -azv ~/Könyvek 192.168.31.236:/sdcard/Books |
Itt a –delete kapcsolóval töröltük a helyi ~/Books könyvtárból törölt fájlokat.
Alapértelmezés szerint az rsync törli a részben átvitt fájlokat, ha a kapcsolat megszakad. Ennek elkerülésére használhatja a –partial kapcsolót, amely arra kényszeríti az rsync-et, hogy mentse a hiányos fájlokat, és a parancs következő futtatásakor folytassa a letöltést.
SSHButton – kapcsolat okostelefonról számítógépre
Ok, csatlakoztunk az okostelefonhoz, a fájlok szinkronizálva lettek, de mi van, ha fordított SSH-kapcsolatra van szükségünk az okostelefonról a számítógépre? Ebbenebben az esetben a tucatnyi Androidra szánt SSH-kliens bármelyike (például ugyanaz a ConnectBot) megteszi, ha természetesen készen áll a parancsok beírására egy kis képernyő érintőbillentyűzetén.
Ha még nem áll készen, akkor az SSH gombalkalmazást választja, amely lehetővé teszi, hogy egy gombnyomással parancsot futtasson a kívánt gépen. Az SSH gomb felülete szörnyű, de az alkalmazás tökéletesen működik. Csak indítsa el az SSH gombot, majd a Menü? Add... és adja meg a szükséges parancsot, az SSH szerver címét, a bejelentkezési nevet és a jelszót.
Android használata Linux rendszerrel. SSH gomb
Az SSH gomb kényelmesen használható a számítógép kikapcsolására vagy leállítására (systemctl felfüggesztés és leállítás parancsok), torrentek indítására és leállítására, zene vezérlésére (például a mocp lejátszó, amelyről az egyik korábbi cikkben beszéltem, lehetővé teszi irányítani magát a parancssoron keresztül).
Együtt
Az Android használata Linuxszal igazán kényelmes. A Windowstól eltérően nincs szükség további illesztőprogramokra, speciális szerverekre és egyéb furcsaságokra. A legtöbb esetben meg lehet boldogulni a szabványos Linux SSH-val és rsync-cel, de mindig találhat érdekesebb eszközöket a weben.