Sunteți pe pagina 1din 11

Universitatea Tehnică "Gheorghe Asachi" din Iași

Facultatea de Automatică și Calculatoare

SECURITATEA REȚELELOR WIRELESS ȘI A


DISPOZITIVELOR MOBILE

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.

SRWDM Curs nr. 3 – 2022 – 2023 2

SRWDM Curs nr. 3 – 2022 – 2023 3

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

SRWDM Curs nr. 3 – 2022 – 2023 4

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.

SRWDM Curs nr. 3 – 2022 – 2023 5

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

SRWDM Curs nr. 3 – 2022 – 2023 6

2
Pornirea Android OS

Preluat https://medium.com/@voodoomio/what-the-zygote-76f852d887d9
SRWDM Curs nr. 3 – 2022 – 2023 7

SRWDM Curs nr. 3 – 2022 – 2023 8

Structura unui fișier APK

Structura unui fișier APK


SRWDM Curs nr. 3 – 2022 – 2023 9

3
Structura unui fișier APK

Structura unui fisier APK

SRWDM Curs nr. 3 – 2022 – 2023 10

10

Instalarea/execuția unei aplicații Android


q Până la 4.4 (KitKat)
q Mașină Dalvik
q JIT

SRWDM Curs nr. 3 – 2022 – 2023 11

11

Instalarea/execuția unei aplicații Android


q mașină virtuală Dalvik/ART

SRWDM Curs nr. 3 – 2022 – 2023 12

12

4
Instalarea/execuția unei aplicații Android
q De la Android 5 (Marshmallow) ART (AOT)

q AOT – Ahead Of Time

SRWDM Curs nr. 3 – 2022 – 2023 13

13

Instalarea/execuția unei aplicații Android


q De la Android 7 (Nougat) ART (AOT + JIT)

SRWDM Curs nr. 3 – 2022 – 2023 14

14

SRWDM Curs nr. 3 – 2022 – 2023 15

15

5
SRWDM Curs nr. 3 – 2022 – 2023 16

16

SRWDM Curs nr. 3 – 2022 – 2023 17

17

Stocarea în dispozitivele Android


q Stocare internă:
q shared preferences
q internal storage
q SQLite
q Stocare externă
q Card SD

SRWDM Curs nr. 3 – 2022 – 2023 18

18

6
Stocare
q Stocarea internă – model bazat pe permisiuni
q stocarea externă – permite citire/scriere

SRWDM Curs nr. 3 – 2022 – 2023 19

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

SRWDM Curs nr. 3 – 2022 – 2023 20

20

q /misc – conține setări de sistem, date de configurare, date


ale operatorului
q /sdcard
– toate datele de pe SD card. Aplicații și
documente pe care utilizatorul le dorește pe card-ul extern
q /sd-ext – nu este folosită de sistem. Dacă dispozitivul este
încărcat cu un software personalizat, această partiție
lucrează ca o partiție de tip /data. Este de obicei folosită ca
o extensie a memoriei interne (este prezentă doar pe unele
dispozitive).

SRWDM Curs nr. 3 – 2022 – 2023 21

21

7
Sistemul de fișiere

SRWDM Curs nr. 3 – 2022 – 2023 22

22

Aplicații sistem: /data/data

SRWDM Curs nr. 3 – 2022 – 2023 23

23

Aplicații sistem: /data/data

SRWDM Curs nr. 3 – 2022 – 2023 24

24

8
Aplicații sistem: /data/data

SRWDM Curs nr. 3 – 2022 – 2023 25

25

Aplicații proprii: /data/app

SRWDM Curs nr. 3 – 2022 – 2023 26

26

/sdcard

SRWDM Curs nr. 3 – 2022 – 2023 27

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

SRWDM Curs nr. 3 – 2022 – 2023 28

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

SRWDM Curs nr. 3 – 2022 – 2023 29

29

q cert.rsa/cert.dsa
q conține semnătura digitală a fișierului cert.sf și certificatul

q pot exista mai multe semnături și ca urmare va fi cert1.sf și


cert1.rsa, cert2.sf și cert2.rsa; cert1.sf și cert2.sf au același
conținut

SRWDM Curs nr. 3 – 2022 – 2023 30

30

10
SRWDM Curs nr. 3 – 2022 – 2023 31

31

11

S-ar putea să vă placă și