Documente Academic
Documente Profesional
Documente Cultură
Curs nr. 3
Aplicații Android
q Unde se găsește fișierul .apk generat în Android Studio
q ~/AndroidStudioProjects/numeAplicatie/app/build/outputs/apk/d
ebug/app-debug.apk
q numeAplicatie – MyApplication2 sau HelloWorld(de exemplu)
q Debug vs Release
q Debug - Semnarea aplicației se face cu o cheie implicită de debug
și setarea unui flag corespunzător; se permite depanarea
aplicației
q Release – Semnarea aplicației se face cu o cheie specificată
explicit și flag-ul de debug este off.
1
Aplicații Android
q Fiecare aplicație Android – container (sandbox) protejat
q SO android este un sistem Linux multi-user în care fiecare
aplicație este un user;
q Implicit, sistemul asignează fiecărei aplicații un user ID Linux unic
(ID este folosit numai de sistem și nu este știut de aplicație).
Sistemul setează permisiunile pentru toate fișierele din aplicație
astfel încât numai ID utilizatorului asignat acelei aplicații poate să
le acceseze
q Fiecare proces are propria mașină virtuală (VM) astfel încât o
aplicație se execută izolată de alte aplicații
Aplicații Android
q Implicit, fiecare aplicație rulează propriul său proces Linux.
Sistemul Android pornește procesul atunci când oricare din
componentele aplicației trebuie să fie executată și oprește
procesul atunci când acesta nu mai este necesar sau când
sistemul are nevoie de memorie pentru alte aplicații.
Aplicații Android
q Principiul privilegiului minim:
q Fiecare aplicație are acces numai la componentele cu care trebuie
să lucreze
q Se creează un mediu securizat în care o aplicație nu poate să
acceseze părți din sistem pentru care nu are permisiune de acces
2
Pornirea Android OS
Preluat https://medium.com/@voodoomio/what-the-zygote-76f852d887d9
SRWDM Curs nr. 3 – 2022 – 2023 7
3
Structura unui fișier APK
10
11
12
4
Instalarea/execuția unei aplicații Android
q De la Android 5 (Marshmallow) ART (AOT)
13
14
15
5
SRWDM Curs nr. 3 – 2022 – 2023 16
16
17
18
6
Stocare
q Stocarea internă – model bazat pe permisiuni
q stocarea externă – permite citire/scriere
19
Sistemul de fisiere
q /boot – conține kernelul și bootloader
q /system – conține SO, bibliotecile și interfețele, aplicațiile
implicite ale sistemului
q /recovery – o altenativă la /boot – folosită pentru
mentenanță
q /data (sau /userdata) conține: contacte, mesaje text, setări
personale, aplicații instalate. Ștergerea acestei partiții
echivalează cu revenirea la setările de fabrică
q /cache – browser-ul implicit folosește această partiție
pentru a salva parole, căutări. Sunt salvate rezultate
curente
20
21
7
Sistemul de fișiere
22
23
24
8
Aplicații sistem: /data/data
25
26
/sdcard
27
9
Structura unei aplicații Android
APK
AndroidManifest.xml Detalii de configurare, inclusiv
permisiuni
classes.dex Bytecode-ul generat
resources.arsc resoursele compilate
Res resursele inițiale (raw)
Assets diferite fișiere
META-INF certificatul aplicației
28
Application Structure
q Manifest.mf :
q stochează cheile de control (message digest) ale tuturor fișierelor
din arhivă (.apk) – generate folosind tabele de hashing (se
recomandă folosirea familiei SHA2 – SHA256, dacă nu se impune
altceva)
q în final convertește toate cheile de control în coduri base64-
encoded
q cert.sf:
q stochează codurile base64-encoded ale fișierului manifest.mf și
toate cheile din manifest.sf
q nu folosește vreo cheie privată sau certificat
29
q cert.rsa/cert.dsa
q conține semnătura digitală a fișierului cert.sf și certificatul
30
10
SRWDM Curs nr. 3 – 2022 – 2023 31
31
11