Forrige afsnit: Android Phone – bare ikke som telefon
Android kører oven på Linux kernen, men det er stortset også det eneste Android har tilfælles med et konventionelt Linux system som Ubuntu, Debian, Suse eller Redhat.
Android er baseret på Java, således at det meste af systemet kører i en Java virtual maskine.
Min Telefon kører Android 4.4.2 også kaldet KitKat, hvor Dalvik agerer Java-VM.
Jeg interesserer mig ikke særlig meget for selve Android systemet, jeg vil blot bruge systemet som “host” for min egen verden som er et gammeldags konventionelt Linux system. Ihvertfald indtil jeg ved bedre.
Telefon kommer med 4Gb indbygget disk, det rækker ikke langt, men der er et micro-SD-card-slot så vi nemt og billigt kan tilføje 32Gb ($11 hos amazon.com).
SD-card – udfør test og partition
Der er mange fake kinesiske sd-card i omløb, typisk indeholder de en brøkdel af den annoncerede FLASH og virker fint indtil du overskrider den. Der er masser af check programmer, men det mest sikre er at fylde kortet helt, og checke at alt er som forventet, det tager tid, men bør gøres HVERGANG der kommer et nyt SD-card/usb-stick i huset. h2testw og f3read/f3write gør præcis det, og det tager en helv…s tid. Programmerne findes til Windows/Mac/Linux
Android systemer beskriver tit at SD-card kan maximalt være på 32 Gb, det skyldes sikkert at max størrelse for FAT32 er netop 32Gb, SD-cards større end det er normalt formatteret som exFAT, som er patenteret af MicroSoft, og giver mulighed for større filsystemer og filer (FAT32 maxfilstørrelse 4Gbyte). Det ser ud til at 64Gb exFAT virker fint på den her telefon, men f.ex på en traditionel Linux box er exFAT ikke supporteret i kernen, p.gr.a ovennævnte patent, man skal via FUSE og installere exfat-utils og exfat-fuse. Så jeg holder mig til FAT32 og de begrænsninger det giver.
Jeg deler SD-card i to partitions
- FAT32 partition mindre end 32Gb, f.ex 26Gb med samme navn som jeg har givet telefonen
- ext4 partion på f.ex 4Gb til installation af Debian
Men Først BACKUP
Man kan lave backup med f.ex. Online Nandroid Backup, men da man skal restore fra “custom recovery”sp, fex twrp bruger jeg også twrp til at lave backup-en.
twrp virker lige som Clonezilla som vi jo alle sammen bruger til a backe vores Windows PC-ere op med. Dvs maskinen booter et lille stand-alone system, Android er altså slukket, på samme måde som Windows ikke kører når Clonezilla kører.
Når man har lavet en backup er det tid til lave en backup af SD-card. det kan være så simpelt som at flytte det fysisk til Desktop/Laptop computer og kopiere det ind der, næste gang når vi har faet intalleret vores Debian bruger vi rsync.
Check backup-en
$ cd TWRP/BACKUPS/LGVS450PP1a2de6d/2015-11-15--11-14-40_KOT49I.VS450PP1 $ ls -l total 4284256 -rw-r--r-- 1 peter staff 23068672 Nov 15 17:14 boot.emmc.win -rw-r--r-- 1 peter staff 48 Nov 15 17:14 boot.emmc.win.md5 -rw-r--r-- 1 peter staff 41984 Nov 15 17:14 cache.ext4.win -rw-r--r-- 1 peter staff 49 Nov 15 17:14 cache.ext4.win.md5 -rw-r--r-- 1 peter staff 57 Nov 15 17:14 cache.info -rw-r--r-- 1 peter staff 936572928 Nov 15 17:15 data.ext4.win -rw-r--r-- 1 peter staff 48 Nov 15 17:16 data.ext4.win.md5 -rw-r--r-- 1 peter staff 64 Nov 15 17:15 data.info -rw-r--r-- 1 peter staff 945458 Nov 15 17:18 recovery.log -rw-r--r-- 1 peter staff 1232872960 Nov 15 17:17 system.ext4.win -rw-r--r-- 1 peter staff 50 Nov 15 17:18 system.ext4.win.md5 -rw-r--r-- 1 peter staff 65 Nov 15 17:17 system.info $ for i in *.md5;do expected=`cut -f1 -d' ' $i`; fil=`basename $i .md5`; real=`md5 -r $fil | cut -f1 -d' '`; if [ $expected != $real ]; then echo ERROR on $fil, md5=$real, expected $expected; else echo $fil OK; fi; done
Debian under Android
Der er flere måder at have et konventionelt linux system tilgængelig under Android, en del er beskrevet her: http://www.linux-magazine.com/Online/Features/Convert-an-Android-Device-to-Linux.
- KBOX: No Root Required
- Linux Deploy: Debian i chroot under Android
- Den Svenske måde: Android i chroot, under Debian
Målet er ikke at sidde og taste Unix kommandoer på en lille bitte touchskærm. Jeg vil køre via ssh fra en Desktop/Laptop, og da jeg gerne vil have fat i hardware behøver vi root access, så det bliver ikke KBOX.
Linux Deploy installeres fra google-play, et par klik og vi er i luften.
Den sidste er interesant http://whiteboard.ping.se/Android/Debian måske lidt for invasivt og er det nu nødvendigt?
Linux deploy
Installer Linux Deploy via google play.
Linux Deploy bruges til at installere et konventionelt Linux-system, default er Debian med root-filsystem i 1Gb fil på den interne 4Gb flash. Jeg vil gerne installere til partition2 på SD-card, som vi lavede lige før, så vi skal lige rette lidt.
- Start Linux Deploy
- tryk på de tre streger nederst til højre
- i listen der popper op tryk på:
- Settings
- Lock Wifi: ON
- Autostart: ON
- Properties
- Installation type: Partition
- Installation path: /dev/block/mmcblk1p2
- Filesystem: ext4
- Install
- Settings
Det tager lidt tid man kan følge med på skærmen, når der står
“<<< install” er den færdig.
Fra min Laptop kan jeg nu ssh til IP-addressen står øverst på telefon-skærmen. Jeg opretter mig selv med sudo-privilegier
ssh android@droid2 $ sudo -s # aduser peter # echo "peter ALL = NOPASSWD: ALL" > /etc/sudoers.d/peter
På min Mac/Linux Laptop installerer jeg password-fri ssh-login som jeg tidligere har beskrevet i rsh-som-i-gamle-dage
newssh peter@droid2
Det var alt for denne gang, næste gang vil jeg forsøge at få adgang til virkeligheden uden for selve telefonen, nærmere bestemt vil jeg logge hvor meget min gas-vand-varmer er tændt.
Pingback: Android Phone – bare ikke som telefon | Peter Lorenzen