Faceți căutări pe acest blog

Se afișează postările cu eticheta Android. Afișați toate postările
Se afișează postările cu eticheta Android. Afișați toate postările

vineri, 16 februarie 2018

Boot iso images from hdd - 2 (Windows- Grub2Win)

 Putem boota distribuții Linux în sesiune live și direct din imaginile iso descărcate pe hdd și din Windows. Eu am testat din Windows 7, dar sunt convins că funcționează și din XP, 8 și 10, dacă mă iau după specificații. Sincer să fiu nu mă gândisem la așa ceva, nu folosesc windows, dar de curând am fost întrebat dacă și cum se poate face, și am găsit ideea utilă. Utilă pentru utilizatorii de windows ce ar dori să testeze Linux, aceasta este categoria care mă interesează mai mult, dar și pentru cei ce vor să-și facă backup/ restore, să navigheze în intimitate sau pentru pentesting. Fără să pună imaginea iso pe cd, dvd sau stick usb!
 Bootloaderul windowsului este primitiv comparativ cu Grub2, nu știe să facă așa ceva, dar cred că-i intenționat așa, cei de la MS nu au interes să folosească utilizatorii alte sisteme de operare!
 Am încercat alte bootloadere EasyBCD, AioBoot, Grub4Dos, Easy2Boot, fără rezultate notabile, am reușit până la urmă cu Grub2win.
 Descărcați (https://sourceforge.net/projects/grub2win/), instalați și rulați Grub2win, este simplu. Într-un fel este mai simplu de folosit, mai intuitiv comparativ cu Grub2, are interfață grafică, încarcă automat o imagine, vă dă un ”menuentry”, deci aveți un model de sintaxă, tot ce trebuie făcut este să puneți parametrii corecți, cam aceeași ca-n cazul Grub2, cale către imaginea kernelului și imaginea initrd, parametrii specifici de bootare. Evident, este implementarea Grub2 pentru windows...
 Dar mie mi-a dat bătăi de cap, sintaxa este diferită, prea multe clickuri, prea mult timp pierdut cu fiecare distribuție în parte, am preferat să trec intrările distribuțiilor direct în fișierul de configurări grub.cfg din directorul (folderul) grub2.  Este mai rapid, trecem simultan mai multe intrări (menuentries), se folosește exact aceeași sintaxă ca în Grub2, deci nu avem surprize. Cu excepția faptului că doar 10 intrări (11 cu tot cu cea implicită cu setările, Boot Information and utilities) sunt afișate, cred că-i o limitare, neimportantă oricum, nu cred că vreți 50 de intrări, pentru 50 de distribuții... Regret, a fost o greșeală de-a mea, poate n-am închis un menuentry...
Uitați 2 screenshoturi cu fișierul, se vede clar poziția în care se inserează intrările, pozițiile de început și sfârșit.



Cerințe:
1- Verificați md5sum a imaginii iso, merge și fără, dar trebuie să vedeți dacă imaginea descărcată este corectă.
2- Trebuie să cunoașteți căile corecte către imaginile comprimate ale kernelului și sistemului de fișiere și module necesare la bootare. Denumirile acestora diferă, vmlinuz și initrd.img, cu variante precum vmlinuz0 și initrd0.img (în cazul Rosa, OpenMandriva, Fedora) sau vmlinuz.efi și initrd.lz (în cazul Ubuntu) sau chiar generic (ultima denumire a imaginii kernelului în Slackware), sau archiso (imaginea initrd.img /initial RAM disk în Arch), șamd, în timp pot varia aceste denumiri chiar în cadrul unei distribuții. Căile diferă și acestea, imaginile pot fi păstrate în diverse directoare, live, boot, isolinux, casper, arch, pmagic, șamd. Mai mult, pot fi mai multe asemenea fișiere, în live pentru sesiuni live și-n install pentru instalare
3- Trebuie să pasați parametrii potriviți, diferă de la distribuție la distribuție. Parametrii potriviți pot fi găsiți de obicei în fișierul de setări grub.cfg (/boot/grub/grub.cfg). Dacă aveți un utilitar pentru arhivare capabil să vă arate conținutul imaginii iso îl puteți citi, eu în Linux folosesc Ark. Același utilitar vă permite să găsiți căile (path) către kernel și initrd.img.
4- În exemplele mele, windows este pe partiția a patra a primului disc, de aici (hd0,4) (sau /dev/sda4). Toate imaginile iso sunt stocate în directorul ISO pe partiția (hd0,4), partiție C a windowsului. Înlocuiți după caz, Grub2 începe numerotarea discurilor de la 0 și a partițiilor de la 1. Deci prima partiție a primului disc este /dev/sda1 și/ sau (hd0,1), a doua /dev/sda2 și/ sau (hd0,2).
 În cazul meu discul este partiționat clasic (MBR/ Master Boot Record, nu GPT/ GUID Partition Table), în BIOS e setat pe Legacy Boot, nu UEFI.Windows este instalat pe a patra partiție, este versiunea pe 64 biți (x86_64).

 Nu am testat multe distribuții, în nici un caz nu voi testa și-n windows 100 și ceva de distribuții, voi pune mai jos menuentries pentru câteva distribuții, cele pe care le cred utile utilizatorilor (Clonezilla, Gparted, PartedMagic, RedoBackup, Kali, BlackArch, Parrot), și unele mai cunoscute (Lubuntu), plus cele pe care le aveam eu pe hdd (AntiX, ArchBang, Manjaro, Porteus)poate voi adăuga altele pe parcurs. Mai degrabă nu, vă puteți inspira din celălalt material (http://stressat.blogspot.ro/2014/04/boot-iso-images-from-hdd-grub2.html), mai verificaţi oricum aici menuentries actuale, există mici diferențe.
 Nu veți reuși să bootați toate distribuțiile, e un proces trial and error!
 După instalarea Grub2win, acesta va rescrie/ înlocui bootloaderul windowsului și la boot veți avea 2 opțiuni de bootare, windows și Grub 2 for windows, cu prima intrați în windows, cu a doua primiți lista cu distribuțiile adăugate în Grub2win.

 
 Adăugarea unei distribuții este simplă, porniți aplicația Grub2win (după instalare veți avea shortcut pe desktop), apăsați butonul Manage Boot Menu, apoi butonul Add New Entry, la Type selectați isoboot, click Select Iso File, căutați imaginea iso (eu am creat un director în C numit ISO în care am pus toate imaginile iso Linux), click Edit Custom Code, aveți sintaxa necesară, dar trebuie puși parametrii de boot necesari fiecărei distribuții, aveți exemple corecte mai jos, pentru alte distribuții găsiți parametri ok în materialul dedicat bootării imaginilor iso din Linux. Click Apply, click Ok, închideți, restartați, alegeți Grub 2 for windows, selectați distribuția dorită.






 Repet, eu am avut rezultate 100% ok trecând intrările în folderul /grub2/grub.cfg, chiar la finalul secțiunii start-grub2win-auto-menu-section, vă recomand același lucru!


 Dar puteți folosi interfața grafică pentru introducerea intrărilor, aveți în partea de sus butonul Syntax, așa se verifică sintaxa intrării, dacă de exemplu ați uitat un { sau }. Diferența față de exemplele date este lipsa primei și ultimei linii, de exemplu pentru AntiX veți pune (nu veți pune menuentry ”AntiX”  { și }):
insmod loopback
insmod iso9660
set isofile='/ISO/antiX-13.2_x64-full.iso'
set root=(hd0,4)menuentry "Hiren 15.2" {
linux (loop)/antiX/vmlinuz fromiso=$isofile from=all quiet

initrd (loop)/antiX/initrd.gz

Exemple funcţionale:

menuentry ”AntiX”  {

insmod loopback
insmod iso9660
set isofile='/ISO/antiX-13.2_x64-full.iso'
set root=(hd0,4)menuentry "Hiren 15.2" {
linux (loop)/antiX/vmlinuz fromiso=$isofile from=all quiet

initrd (loop)/antiX/initrd.gz
}
menuentry "Archbang" {
insmod loopback
insmod iso9660
set isofile="/ISO/archbang-lite-beta-1216-i686.iso"
loopback loop (hd0,4)/$isofile
linux (loop)/arch/boot/i686/vmlinuz archisolabel=ARCHBANG img_dev=/dev/sda4 img_loop=$isofile earlymodules=loop panic=5
initrd (loop)/arch/boot/i686/archiso.img

menuentry "BlackArch" {
set isofile="/ISO/blackarchlinux-live-2017.12.11-x86_64.iso"
loopback loop (hd0,4)$isofile
linux (loop)/blackarch/boot/x86_64/vmlinuz archisobasedir=blackarch archisolabel=BLACKARCH_201712 img_dev=/dev/sda4 img_loop=$isofile earlymodules=loop panic=5
#initrd (loop)/blackarch/boot/intel_ucode.img
initrd (loop)/blackarch/boot/x86_64/archiso.img
}  

menuentry "ISO Manjaro 17.7.4" {
set isofile="/ISO/manjaro-xfce-17.1.4-stable-x86_64.iso"
loopback loop (hd0,4)$isofile
linux (loop)/boot/vmlinuz-x86_64 img_dev=/dev/sda4 img_loop=$isofile misobasedir=manjaro misolabel=MJRO1714 nouveau.modeset=1 i915.modeset=1 radeon.modeset=1
initrd (loop)/boot/initramfs-x86_64.img
}

menuentry "Porteus" {
insmod loopback
insmod iso9660
set isofile="/ISO/Porteus-XFCE-v3.1-i486.iso"
loopback loop (hd0,4)$isofile
linux (loop)/boot/syslinux/vmlinuz from=/ISO/Porteus-XFCE-v3.1-i486.iso copy2ram panic=5
initrd (loop)/boot/syslinux/initrd.xz

menuentry "Lubuntu 16.04" {
set isofile="/ISO/lubuntu-16.04-desktop-i386.iso"
loopback loop (hd0,4)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject panic=5
initrd (loop)/casper/initrd.lz

menuentry "Parrot" {
set isofile='/ISO/Parrot-security-3.11_amd64.iso'
loopback loop (hd0,4)$isofile
linux (loop)/live/vmlinuz boot=live config fromiso=/dev/sda4/$isofile hostname=parrot splash noautomount  panic=5
initrd (loop)/live/initrd.img
}
menuentry "Kali" {
set isofile="/ISO/kali-linux-2016.2-i386.iso"
loopback loop (hd0,4)$isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali noprompt noeject panic=5
initrd (loop)/live/initrd.img
}
menuentry "Clonezilla 2.5.0" {
set gfxpayload=1368x768x16
set root='hd0,4'
set isofile_abspath="/ISO/clonezilla-live-2.5.0-5-amd64.iso"
set isofile_devpath="${devroot}${isofile_abspath}"
loopback loop "(${root})${isofile_abspath}"
linux '(loop)/live/vmlinuz' boot='live' union='overlay' username='user' config components noswap edd='on' nomodeset nodmraid noeject locales='' keyboard-layouts='' ocs_live_run='ocs-live-general' ocs_live_extra_param='' ocs_live_batch='no' ip='' acpi='off'irqpoll noapic noapm nodma nomce nolapic nosmp nomodeset nosplash panic=5 findiso="${isofile_abspath}"
initrd '(loop)/live/initrd.img'
}
menuentry "GParted" {
set gfxpayload=1368x768x16
set root='hd0,4'
set isofile_abspath="/ISO/gparted-live-0.27.0-1-amd64.iso"
set isofile_devpath="${devroot}${isofile_abspath}"
loopback loop "(${root})${isofile_abspath}"
linux '(loop)/live/vmlinuz' boot='live' union='overlay' username='user' config components noswap noeject toram='filesystem.squashfs' ip='' nosplash panic=5 findiso="${isofile_abspath}"
initrd '(loop)/live/initrd.img'
}
menuentry "Parted Magic" {
set isofile="/ISO/pmagic_2016_07_12.iso"
loopback loop (hd0,4)$isofile
linux (loop)/pmagic/bzImage64 edd=off load_ramdisk=1 prompt_ramdisk=0 rw livemedia noeject loglevel=9 max_loop=256 vmalloc=384MiB iso_filename=/ISO/Downloads/ISO/pmagic_2016_07_12.iso panic=4
initrd (loop)/pmagic/initrd.img (loop)/pmagic/fu.img (loop)/pmagic/m64.img
}
menuentry "RedoBackup" {
set isofile="/ISO/redobackup-livecd-1.0.4.iso"
loopback loop (hd0,4)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject panic=5
initrd (loop)/casper/initrd.lz
}


Grub2win poate boota chiar şi derivatele Android pentru PC, am testat cu RemixOS. Diferenţa este la Type în loc de Isoboot se alege Android. RemixOS este salvat tot în directorul ISO din C, este dezarhivat (extras din imaginea iso) în subdirectorul remis-os (deci calea, path este /ISO/remix-os), imaginea iso este copiată în directorul /ISO/remix-os. Este bootat cu persistenţă, modificările vor fi salvate într-un director numit data pe care îl creăm noi in remix-os (calea este /ISO/remix-os/data). Exact ca şi cu Grub2 în Linux, nu trebuie trecută partiţia la path (/dev/sda2 de exemplu pentru Linux sau C ori D pentru windows, bootloaderele consideră acea partiţie ca fiind /, partiţia rădăcină)! În mod similar procedaţi pentru PhoenixOS sau Android-x86. Vă puteţi inspira de aici:
https://stressat.blogspot.ro/2016/10/remix-os.html
https://stressat.blogspot.ro/2016/10/phoenix-os.html
 Eu am trecut intrarea direct în grub.cfg, cum am mai spus.
menuentry "Remix-64" {
set root='hd0,4'
loopback loop (hd0,4)$isofile
search --set=root --file /ISO/remix-os/kernel
linux /ISO/remix-os/kernel root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive SRC=/ISO/remix-os DATA= CREATE_DATA_IMG=1 UVESA_MODE=1368x768 panic=5
initrd /ISO/remix-os/initrd.img
}

 Putem boota astfel și sisteme de operare diferite de Linux, KolibriOS, MenuetOS, ReactOS, Hiren'sBootCD (utilitarele, nu Mini Windows XP), vedeți aici (http://stressat.blogspot.ro/2016/12/boot-non-linux-iso-images-from-hdd-with.html) cum anume și exemple funcționale.


Completare:
Am avut câteva cazuri în care distribuții Linux nu bootau complet, dădeau tot felul de erori, am descoperit cauza, nu suportă partițiile ntfs... Un artificiu bun pentru unele distribuții este adăugarea parametrului insmod ntfs (vedeți în exemplele următoare unde anume), dar nu funcționează în toate cazurile. Soluția corectă, preferabilă, este crearea unei partiții ext4 (poate fi partiție logică în cadrul uneia extinse) pe care să depozitați imaginile iso! Evident că trebuie modificate apoi căile, voi pune 4 exemple. Ca fapt divers, CentOS Gnome și Slackware le-am descărcat azi în Linux, le-am copiat pe partiția ntfs (păstrându-le și pe ext4 pe care am testat într-o clipă de inspirație) și-n final am editat din Linux fișierul de configurări al Grub2Win /grub2/grub.cfg, la boot totul a mers fără probleme! D-aia-i bună CLI... Posted Image  Ca să înțelegeți diferențele: partiția ext4 este a doua pe disc, deci /dev/sda2 sau (hd0,2), (hd0,msdos2) pentru că am partiționare MBR, ar fi fost (hd0,gpt2) pentru schemă de partiționare GPT, imaginile iso sunt păstrate în directorul /dan/Downloads/ISO.
menuentry "ISO CentOS-7-livecd-KDE" {
insmod ntfs
insmod loopback
insmod iso9660
set root=(hd0,2)
set isofile='/dan/Downloads/ISO/CentOS-7-livecd-KDE-x86_64.iso'
loopback loop (hd0,2)$isofile
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-livecd-KDE-x86_64 iso-scan/filename=$isofile rd.live.image
initrd (loop)/isolinux/initrd0.img
}
menuentry "ISO CentOS-7-livecd-Gnome" {
insmod ntfs
insmod loopback
insmod iso9660
set root=(hd0,2)
set isofile='/dan/Downloads/ISO/CentOS-7-livecd-GNOME-x86_64.iso'
loopback loop (hd0,2)$isofile
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-livecd-GNOME-x86_64 iso-scan/filename=$isofile rd.live.image
initrd (loop)/isolinux/initrd0.img
}
menuentry "Slackware" {
insmod loopback
insmod iso9660
set isofile="/dan/Downloads/ISO/slackware64-14.2-install-dvd.iso"
loopback loop (hd0,2)$isofile
linux (loop)/kernels/huge.s/bzImage  load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 SLACK_KERNEL=huge.s
kbd=us tz=Europe/Bucharest locale=us_EN.utf8
initrd (loop)/isolinux/initrd.img
}

menuentry "Slackware live" {
insmod loopback
insmod iso9660
set isofile="/dan/Downloads/ISO/slackware64-live-xfce-current.iso"
loopback loop (hd0,2)$isofile
linux (loop)/boot/generic livemedia=/dev/sda2:${isofile} load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 kbd=us tz=Europe/Bucharest locale=us_EN.utf8
initrd (loop)/boot/initrd.img
}
menuentry "ISO Mint 18 Sylvia" {
set isofile="/dan/Downloads/ISO/linuxmint-18.3-mate-64bit.iso"
loopback loop (hd0,2)$isofile
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash noprompt
initrd (loop)/casper/initrd.lz
}





Sursă: https://sourceforge.net/projects/grub2win/

duminică, 30 octombrie 2016

Boot iso from hdd- listă distribuții

 Am publicat acum vreo 2 ani un material despre bootarea imaginilor iso ale distribuțiilor Linux de pe hdd cu ajutorul Grub2: http://stressat.blogspot.ro/2014/04/boot-iso-images-from-hdd-grub2.html
 A atins deja proporții impresionante, l-am actualizat permanent, sunt listate distribuțiile principale, derivate cunoscute și până și chestii exotice, cum ar fi derivatele Android-x86.

 Aici voi pune lista acestora la acest moment (sunt 118 distribuții/ OS-uri, inclusiv cele bazate pe Android, și ”bonusurile” KolibriOS, MenuetOS, Hiren'sBootCD, UltimateBootCD, ReactOS, FreeDOS, Windows XP...), mă gândesc că poate cei ce-au citit deja materialul ar fi interesați să testeze vreo distribuție. Am încercat să le împart pe categorii, lucru oarecum arbitrar, de exemplu ArchAssault și BlackArch sunt ”derivate” ale Arch Linux, de fapt sunt Arch cu aplicații speciale pentru pentesting (utilizatorii de Arch pot obține una din ele activând un repository), Kali Linux e bazată pe Debian, Gparted la fel, SystemRescueCd e bazată pe Gentoo, Pentoo tot pe Gentoo, Xiaopan pe TCL (Tiny Core Linux), etc.

 Distribuții specializate în clonări, partiționări, recuperări, șamd:
3MLinux
Boot Repair Disk
Clonezilla
Finnix 
Gparted
GRML
Parted Magic
RedoBackup
Rescatux
Slitaz (core și rolling)
SystemRescueCd

 Distribuții pentru testări securitate, vulnerabilități, penetrare, navigare anonimă pe net (intimitate), hacking ”etic” în general:
ArchAssault
Backbox
BlackArch
Kali Linux
Parrot
Pentoo
SubgraphOS
Tails
Xiaopan

 Distribuții majore și derivate ale acestora:
Arch
AlphaOS
Apricity
Archbang
Archboot
ArchKdeDark 
Archex
Antergos
Arquetype
Bluestar Linux
Bridge Linux
Chakra
Delta Linux 
Evo/Lution Linux
KaOS
LinHES
Manjaro Linux
Obarun
Parabola Linux
TalkingArch
VeltOS
RHEL
CentOS
Fedora
Korora
Oracle Linux
Scientific
Trinity Desktop Fedora
OpenMandriva
Rosa Linux
PCLinuxOS 
OpenSuse
CR OS Linux
Gentoo
Sabayon
Rogentos
Slackware
Absolute Linux
Porteus
Salix
Slax
Slacko Puppy
Vector Linux
WifiSlax
Zenwalk
Debian
Debian-BSD
AcademiX
Aptosid
BunsenLabs
Crunchbang
Deepin
AntiX
Elive
Exe GNU/Linux
Kanotix
KDE Neon
Knoppix
LinuxBBQ
LMDE (Linux Mint Debian Edition) 
PIXEL
Mepis (MX)
n00bix
Robolinux
Sparky Linux
Ubuntu
Kubuntu
Lubuntu
Xubuntu
Bodhi Linux
ChaletOS
CottonOS
Cylon
EasyPeasy
Elementary OS
ExTix
Mint
Netrunner
Puppy Tahr
Trinity Desktop Ubuntu
Trisquel
Voyager Linux
Watt Os
Zorin
GalliumOS (distribuție bazată pe Xubuntu, dedicată Chromebook-urilor)

”Distribuții” bazate pe Android care funcționează pe PC (x86):
Android-x86
Bliss OS
Lineage OS
OpenThOS
Phoenix OS
Remix OS

 Bonus:
FreeDOS
Hiren'sBootCD
KolibriOS
MenuetOS 
ReactOS
UltimateBootCD 
Windows XP


 Am testat multe alte distribuții fără succes, Mageia, Puppy, FreeBSD, șamd, dacă mai aveți informații despre cum pot boota alte distribuții în afara celor din lista de mai sus aș aprecia să mă puneți la curent! La fel cum aș aprecia un feedback de orice fel.

sâmbătă, 29 octombrie 2016

Phoenix OS

 După ce-am scris despre Remix OS, e timpul să amintesc și de alternativa sa, Phoenix OS. Este bazat tot pe Android-x86, are un look și-n feeling similar cu Remix OS, se poate instala sau rula în sesiune live cu ajutorul opțiunii loopback a Grub2. Are meniu, panel, taskbar, bară notificări, shortcuturi pe desktop, toate componentele sunt recunoscute și funcționează ok.
 Din punctul meu de vedere, atât Phoenix OS cât și Remix OS pot constitui o alternativă viabilă la sistemele desktop actuale, Windows, Linux, OS X, cel puțin pentru cei ce au nevoi mai limitate/ clasice, pentru consumatorii de conținut, cei ce se mulțumesc cu o tabletă!

 Comparație între cele două: http://android.stackexchange.com/questions/134561/what-is-the-difference-between-remix-os-and-phoenix-os
 Comparație video: https://www.youtube.com/watch?v=E6BNcXRyOr4&feature=youtu.be

 Se descarcă imaginea iso PhoenixOSInstaller-v1.1.1-216.iso: http://www.phoenixos.com/en/download_x86
 Se mută într-un director dedicat, eu am numit acel director phoenix și se dezarhivează.
 Menuentry Grub2 pentru sesiune live și pentru instalare pe disc:
menuentry 'Phoenix-OS Live' --class android-x86 {
search --set=root --file /shogun/phoenix/kernel
linux /shogun/phoenix/kernel root=/dev/ram0 androidboot.hardware=android_x86 SRC=/shogun/phoenix

UVESA_MODE=1368x768
 initrd /shogun/phoenix/initrd.img
}
menuentry 'Phoenix OS Install' --class android-x86 {
search --set=root --file /shogun/phoenix/kernel
linux /shogun/phoenix/kernel root=/dev/ram0 androidboot.hardware=android_x86 INSTALL=1 DEBUG=
initrd /shogun/phoenix/initrd.img
}

 Imaginea și conținutul dezarhivat se află în cazul meu în directorul /home/shogun/phoenix, dacă ar fi fost într-un director să-l numim /home/dan/Downloads/phoenis înlocuiam /shogun/phoenix cu /dan/Downloads/phoenix!
 Dacă doriți și persistența setărilor/ datelor, creați în directorul unde este imaginea iso și conținutul dezahivat al acesteia (directorul phoenix în cazul expus de mine) un director data și setați menuentry de tipul:
menuentry 'Phoenix-OS --class android-x86' {
search --file --no-floppy --set=root /shogun/phoenix/kernel
linux /shogun/phoenix/kernel root=/dev/ram0 androidboot.hardware=android_x86 androidboot.selinux=permissive SRC=/shogun/phoenix DATA= CREATE_DATA_IMG=1 UVESA_MODE=1368x768
initrd /shogun/phoenix/initrd.img
}

 După cum cred c-ați înțeles, persistența (puteți să considerați procesul ca o instalare a Phoenix OS în directorul phoenix...) depinde de parametrul
DATA= CREATE_DATA_IMG=1

 Screenshoturi (pentru screenshots apăsați în partea din dreapta a panoului și există opțiunea, printre altele):








duminică, 23 octombrie 2016

Remix OS

 Android este asociat cu dispozitivele mobile, dar este disponibil și pe alte platforme, proiectul Android-x86 a portat Android pe arhitectura x86, iar cei de Jide (foști angajați ai Google... :http://www.jide.com/remixos), în colaborare cu cei de la Android-x86 au realizat Remix OS. Ultima versiune de Remix OS e bazată pe Android 6 Marshmallow și se poate instala pe PC-uri (desktop, laptop) sau pe un stick usb. Dacă folosiți Linux, e posibil să bootați Remix OS chiar de pe imaginea iso descărcată.

 Câteva precizări: 
- sistemul este gratuit, va rămâne gratuit și după lansarea versiunii finale, chiar dacă (spre deosebire Android-x86...) codul sursă nu este public, e closed source, dar nu cred că e important pentru majoritatea utilizatorilor;
- cerințele sunt rezonabile:
 CPU dual core la 2 GHz
 2 GB RAM
 8 GB spațiu liber pe hdd;
- aplicațiile Android sunt disponibile în Magazin Play și rulează ok;
- aspectul și comportamentul sunt oarecum previzibile și intuitive, setările sunt cele tradiționale Android, dar avem un panel cu meniu, taskbar, ceas, lansatoare, ferestrele sunt independente (multi tasking), nu ocupă tot ecranul, se pot mări/ micșora/ minimiza în taskbar, șamd;
- tastatura (inclusiv tastele funcționale!) merge ok, mouse-ul la fel, deasemenea touchpad-ul, conexiunea wi-fi e impecabilă, se realizează direct la boot/ instalare;funcționează ok transferul prin bluetooth, se pot viziona fișiere audio/ video locale sau de pe youtube pe PC sau pe tv cu ajutorul Chromecast;
- deocamdată sunt prezente unele mici buguri (nimic exagerat de deranjant), comportamentul nu este perfect (nu funcționează clic dreapta pe desktop, un meniu contextual ar fi de dorit, în managerul de ferestre nu avem meniu contextual, pentru a copia ceva în altă locație trebuie folosite hotkeys precum Ctrl+c și Ctrl+v, pentru ștergere Ctrl+Del, dacă copiem fișiere nu par a fi recunoscute și oferite variante skip, replace ci direct redenumite, astfel avem duplicate și alte mărunțișuri);
- e posibil ca pe dispozitive mai vechi să nu funcționeze, eu am reușit să-l rulez pe 2 laptopuri, dar nu și pe desktop (dual core la 1,6 GHz și 2 GB RAM).

 Descărcare imagine iso: http://www.jide.com/remixos-for-pc#downloadNow
 Documentație instalare: http://support.jide.com/hc/en-us/articles/216394327
 Instalare pe Linux (nu doar Ubuntu, eu am Arch): http://techposts.org/installing-remix-os-hdd-using-ubuntu-linux-os/

 Putem rula Remix OS fără instalare (într-un anume sens, de fapt prin procesul de boot instalăm Remix OS pe partiția dedicată sau în directorul dedicat), direct din imaginea iso descărcată, cu câteva mici ”ajustări”:
- descărcăm imaginea iso;
- creăm un director dedicat în care copiem/ mutăm imaginea iso;
- fie dezarhivăm imaginea iso în acel director, fie o dezarhivăm altundeva și doar copiem acolo următoarele fișiere: initrd.img, kernel, system.sfs, ramdisk.img; în primul caz vom avea atât imaginea iso, cât și conținutul dezarhivat al acesteia;
- în același director creăm un nou director gol, numit ”data”;
- adăugăm un menuentry în Grub2.

 Eu am creat 2 directoare, android pentru versiunea x86 și remixos pentru versiunea x86_64. În directorul cu pricina mai facem un director numit data. Fiind create chiar în /home/user (/home/shogun în cazul meu), calea trecută în menuentry este /shogun/android, respectiv /shogun/remixos, dacă cele 2 directoare ar fi fost în /home/dan/Downloads, căile corecte ar fi fost:
/dan/Downloads/android și
/dan/Downloads/remixos
 Partiția mea este /dev/sda4, de aceea e notată (hd0,4), primul disc, a patra partiție, dacă era /dev/sdb2 o notam (hd1,2), /dev/sda3 o notam (hd0,3), șamd.
 Întrările (menuentry) sunt de forma:
menuentry 'Remix-64' {
set root='hd0,3'
loopback loop (hd0,3)$isofile
linux /shogun/remixos/kernel quiet root=/dev/ram0 androidboot.hardware=remix_x86_64 androidboot.selinux=permissive SRC=/shogun/remixos DATA= CREATE_DATA_IMG=1 UVESA_MODE=1368x768
initrd /shogun/remixos/initrd.img
}
menuentry 'Remix-32' {
set root='hd0,3'
loopback loop (hd0,3)$isofile
linux /shogun/android/kernel quiet root=/dev/ram0 androidboot.hardware=remix_x86 androidboot.selinux=permissive SRC=/shogun/android DATA= CREATE_DATA_IMG=1
UVESA_MODE=1368x768
initrd /shogun/android/initrd.img
}

 
 Putem rula Remix OS și în Guest Mode, nu neapărat în Resident Mode, dar în Resident Mode avem persistență, aplicațiile instalate, setările, documentele sunt păstrate! La primul boot are loc procesul inițial, alegem limba (disponibile doar engleză și chineză), acceptarea termenilor de utilizare, stabilirea conexiunii la net, activarea Google Play, dacă bootăm în Resident Mode la următorul boot nu va trebui reluat procesul! Pentru Guest Mode menuentry ar fi:
 menuentry 'RemixOS 64 Guest mode' --class android-x86 {
set isofile="/shogun/remixos/Remix_OS_for_PC_Android_M_64bit_B2016101201.iso"
set root="(hd0,3)"
loopback loop (hd0,3)$isofile
search --file --no-floppy --set=root /shogun/remixos/kernel
probe -u $root
linux /shogun/remixos/kernel androidboot.hardware=remix_x86_64 androidboot.selinux=permissive quiet SERIAL=random logo.showlogo=1 REMOUNT_RW=0 DATA= DATA_IN_MEM=1 UVESA_MODE=1368x768
initrd /shogun/remixos/initrd.img
}
menuentry 'RemixOS 32 Guest mode' --class android-x86 {
set isofile="/shogun/android/Remix_OS_for_PC_Android_M_32bit_B2016101201.iso"
set root="(hd0,3)"
loopback loop (hd0,3)$isofile
search --file --no-floppy --set=root /shogun/android/kernel
probe -u $root
linux /shogun/android/kernel androidboot.hardware=remix_x86 androidboot.selinux=permissive quiet SERIAL=random logo.showlogo=1 REMOUNT_RW=0 DATA= DATA_IN_MEM=1 UVESA_MODE=1368x768
initrd /shogun/android/initrd.img
}


 În caz că aveți probleme puteți adăuga parametri precum:
insmod gzio
insmod loopback
insmod iso9660
insmod part_msdos      # pentru tabelă partiții MBR (msdos)
insmod part_gpt           # pentru tabelă de partiții GPT
insmod ext2
insmod fat
 Pentru alte rezoluții modificați linia:
UVESA_MODE=1368x768 cu rezoluția dorită, de exemplu:
UVESA_MODE=1920x1080

 Aceste menuentry Grub2 vor trebui trecute fie în /etc/grub.d/40_custom, fie într-un fișier special creat pentru așa ceva (citiți vă rog aici: http://stressat.blogspot.ro/2014/04/boot-iso-images-from-hdd-grub2.html), și actualizată baza de date Grub2:
sudo nano /etc/grub.d/40_custom
sudo grub-mkconfig -o /boot/grub/grub.cfg   (în Arch)

sudo update-grub              (în Ubuntu)

 În colțul stânga jos este butonul Meniu, în dreapta jos butonul Notificări clic pe el și printre butoane este unul pătrat pentru screenshoturi. Printre ferestre navigăm tradițional cu Alt+Tab, avem shortcuturi pe display, lansatoare în meniu și taskbar.
 Screenshoturi în Resident Mode:










 Iată emulatorul de terminal termux: https://termux.com/, https://termux.com/help.html

















 După cum pomeneam, putem rula Remix OS într-o sesiune live, Guest Mode (în conțul din stânga sus este afișat Guest Mode):

marți, 23 august 2016

Android SDK- emulator Android pentru Linux

 Există destule aplicații pentru emularea Android pe un PC, multe din ele funcționează pe Linux: Android SDK, Genymotion, Andro VM, ANDY OS Android Emulator, Jar of Beans, șamd. Cum Android SDK este emulatorul oficial al Google, am ales android-sdk.
 Cerințe Linux:
  • GNOME or KDE desktop Tested on Ubuntu® 12.04, Precise Pangolin (64-bit distribution capable of running 32-bit applications)
  • 64-bit distribution capable of running 32-bit applications
  • GNU C Library (glibc) 2.11 or later
  • 2 GB RAM minimum, 8 GB RAM recommended
  • 2 GB of available disk space minimum,
    4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and emulator system image)
  • 1280 x 800 minimum screen resolution
  • Java Development Kit (JDK) 8
  • For accelerated emulator: Intel® processor with support for Intel® VT-x, Intel® EM64T (Intel® 64), and Execute Disable (XD) Bit functionality, or AMD processor with support for AMD Virtualization™ (AMD-V™)
 Pot garanta că sunt ok și Xfce și Lxde, nu numai Kde și Gnome!
 În funcție de distribuția folosită e posibil să aveți unele din aceste aplicații în mediile de pachete online, utilizatorii de Arch pot instala din AUR android-sdk sau genymotion. Dar poate fi dificil sau frustrant, genymotion rulează doar pe 64 biți (x86_64) și necesită Virtual Box, android-sdk nu se compilează din cauza unei erori la validarea semnăturii unei dependențe: ncurses5-compat-libs.
==> Validating source files with md5sums...
ncurses-6.0.tar.gz ... Passed
ncurses-6.0.tar.gz.asc ... Skipped
==> Verifying source file signatures with gpg...
ncurses-6.0.tar.gz ... FAILED (unknown public key 702353E0F7E48EDB)
==> ERROR: One or more PGP signatures could not be verified!
==> ERROR: Makepkg was unable to build ncurses5-compat-libs.
==> Restart building ncurses5-compat-libs ? [y/N]
Eu am reușit instalarea cu:
yaourt --m-arg "--skippgpcheck" -Sb ncurses5-compat-libs
după care am reluat instalarea android-sdk. A urmat altă eroare, până la urmă am folosit  opțiunea --force la yaourt:
yaourt -S --force android-sdk
 E posibil ca nici așa să nu se compileze, pe laptop am reușit, pe desktop nu...A mers compilat din surse, dar nu pornește nici un AVD. Recomand instalarea din surse!
 Cei ce nu reușesc instalarea, nu doresc să sară peste validarea unei chei, să forțeze compilarea, sau preferă să instaleze direct din surse, precum și cei ce folosesc altă distribuțe trebuie să descarce pachetul de aici: https://developer.android.com/studio/index.html, sau să dea în terminal comenzile pentru descărcare, dezarhivare, mutare în directorul rezultat, începerea instalării (exact în ordinea asta sunt și liniile următoare, asta face fiecare din ele):
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
tar -xzvf android-sdk_r24.4.1-linux.tgz
cd android-sdk-linux/tools
./android
 În fereastra apărută selectați pachetele pe care le doriți instalate. Userii de Ubuntu dau înaintea acestor comenzi încă una:
sudo apt-get install openjdk-6-jre openjdk-6-jdk icedtea6-plugin
 Deschideți fișerul .bashrc, adăugați la finalul acestuia calea către android-sdk:
export PATH=${PATH}:~/android-sdk-linux/tools
export PATH=${PATH}:~/android-sdk-linux/platform-tools
dacă directorul android-sdk-linux/tools e-n /home/user, sau modificați în concordanță cu situația, de exemplu dacă e-n /home/user/Downloads liniile vor fi:
export PATH=${PATH}:~/Downloads/android-sdk-linux/tools
export PATH=${PATH}:~/Downloads/android-sdk-linux/platform-tools
 Log out- log in, porniți un terminal și tastați android sau android avd, pe urmă vă descurcați. Prima comandă deshide Android SDK Manager, puteți instala pachete, face update-uri, dezinstala, porni din Tools AVD (Android Virtual Device) Manager, a doua va porni direct AVD Manager. Puteți alege unul din dispozitivele disponibile (Device Definitions), alegeți setările, creați un AVD pe care-l puteți găsi în Android Virtual Device și porni cu Start- Launch.

Procesul de configurare a unui dispozitiv virtual Android implică specificarea următoarelor proprietăți:
1- denumire (AVD Name): caracterele permise sunt litere minuscule / majuscule (a-z, A-Z), ., _ și -.
2- dispozitiv virtual (Device): se alege dintr-o listă în care fiecare dispozitiv virtual este identificat prin dimensiunea ecranului (diagonală exprimată în inchi, rezoluție exprimată în pixeli - lungime x lățime, densitate: ldpi, mdpi, hdpi, xhdpi, xxhdpi, tvdpi)
3- nivelul de API care va fi folosit (Target), în funcție de ceea ce a fost instalat anterior
4- tipul de procesor (CPU/ABI): ARM (armeabi-v7a), MIPS (mips), Intel Atom (x86)
 Este recomandată alegerea arhitecturii x86, evident cu condiția să fie disponibilă:

5- posibilitatea de a folosi tastatura sistemului gazdă (Keyboard) este activată în cazul în care este selectată opțiunea Hardware keyboard present
6- tipul de interfață grafică (Skin)
7- utilizarea unor dispozitive ale sistemului gazdă pentru camerele dispozitivului virtual (Front Camera, Back Camera)
8- valorile corespunzătoare pentru dimensiunea memoriei RAM și a heap-ului (Memory Options)
9- valoarea corespunzătoare spațiului de stocare pe discul local (Internal Storage)
10- informații cu privire la cardul de memorie (SD Card): dimensiune (exprimată în MB), fișier din cadrul sistemului gazdă care să îi reflecte conținutul
11- opțiuni legate de emulare (Emulation Options)
  a- Snapshot - permite ca starea dispozitivului virtual să fie stocată, astfel încât acesta să pornească mai rapid ulterior
  b- Use Host GPU - folosirea unității de procesare grafică a sistemului gazdă











Surse: 
http://techapple.net/2014/07/runinstall-official-android-sdk-emulator-linux-ubuntulinuxmint/
http://ocw.cs.pub.ro/courses/eim/tutoriale/android_virtual_device 
 

Back to top