Android telefon med konventionel Linux system

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.

IMG_0066Android 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

  1. FAT32 partition mindre end 32Gb, f.ex 26Gb med samme navn som jeg har givet telefonen
  2. 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.

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

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.

This entry was posted in Android, Linux. Bookmark the permalink.

One Response to Android telefon med konventionel Linux system

  1. Pingback: Android Phone – bare ikke som telefon | Peter Lorenzen

Comments are closed.