Android aplikace: Kam = do jakych slozek v Androidu ukladaji nainstalovane aplikace sva data?
Dobry den,
potrebuji vedet, kam = do jakych slozek v souborovem systemu v Androidu ukladaji nainstalovane aplikace sva data? Tj. programova data i uzivatelska data?
A potrebuji vedet, jak tato data muzu vyuzit - precist, zkopirovat, zalohovat, obnovit ze zalohy, vlozit, pripadne zmenit nebo vymenit?
Dekuji.
(Jako kdyz napr. ve Windows je to pro programove soubory slozka: "C:\Program Files\<Nazev programu>" a pro uzivatelska data nekdy tataz slozka, jindy slozka: "C:\Users\<Jmeno uzivatele>\Data apliakci\<Nazev programu>", nekdy registry Windows, nebo jsou ve Windows jeste nejaka dalsi mista, o kterych nevim?, tak v Androidu do kterych slozek v souborovem systemu ukladaji nainstalovane aplikace sva data?)
Zpravidla je to v adresáři Android\data\
Tam jsem hledal, ale byla to spise vyjimka nez pravidlo tam neco najit. Sva data tam mely spis jen nektere opensource aplikace, zbytek ne.
Čím to prohlížíš? Zkus aplikaci X-Plore
Podržením prstu na aplikaci (systémové nebo nainstalované) ti naběhne docela slušné menu.
A jo, X-Plore je dobry, program, obcas ho pouzivam. Pri kliknuti na "Ukazat detaily" u uplikace se sice ukazou 2 nejake cesty, typicky /data/... a /system/... nebo /vendor/... , ale tyto slozky nelze nijak najit, ani nejsou v systemu souboru. Co s tim?
A mas opravneni root (s pravy zapisu a cteni) ze chces mimo 'storage/emulated/*/android/data ' nebo '/android/obb' explotovat systemove soubory ve slozkach typu './system/' ?
Proc nepouzijes Android ve virtualce nebo pod 'subsytem android' jestli jestl chces jen neco zkouset, zamenovat a vymenovat ?
Popripade se k telefonu pripojit jako root pres rozhrani [adb shell] (navigovat ve slozkach pres terminal) bez potreby pouziti nejake apky.
https://developer.android.com/about/versions/11/privacy/storage
DIRECTORY DESCRIPTION / API
=====================================================================================
APP CODE
========
/data/app/<pkg>* (user apps installation directory)
/data/app/<pkg>*/base.apk (original `.apk` file)
/data/app/<pkg>*/lib/<arch>/*.so (shared libraries)
/data/app/<pkg>*/oat/<arch>/base.[art|odex|vdex] (compiled executable code)
/data/dalvik-cache/<arch>/*.[art|dex|oat|vdex] (compiled executable code, only for system apps)
/data/misc/profiles/cur/<user_id>/<pkg>/primary.prof (ART profile)
/data/misc/profiles/ref/<pkg>/primary.prof (ART profile)
INTERNAL STORAGE
================
/data/user[_de]/<user_id>/<pkg> getDataDir
/data/user[_de]/<user_id>/<pkg>/files getFilesDir
/data/user[_de]/<user_id>/<pkg>/[code_]cache getCacheDir or getCodeCacheDir
/data/user[_de]/<user_id>/<pkg>/databases getDatabasePath
/data/user[_de]/<user_id>/<pkg>/no_backup getNoBackupFilesDir
/data/user[_de]/<user_id>/<pkg>/shared_prefs getSharedPreferences
EXTERNAL STORAGE
================
/storage/emulated/obb/<pkg>/*.obb (shared by multi-users, exposed in following view)
/storage/emulated/<user_id>/Android/obb/<pkg>/*.<pkg>.obb getObbDirs
/storage/emulated/<user_id>/Android/media/<pkg> getExternalMediaDirs
/storage/emulated/<user_id>/Android/data/<pkg>/
/storage/emulated/<user_id>/Android/data/<pkg>/files getExternalFilesDirs
/storage/emulated/<user_id>/Android/data/<pkg>/[code_]cache getExternalCacheDirs
Dekuji, Vase odpoved se mi zda nejvice uzitecna .
1.) Jsou Vami vypsana mista tedy jedina mista, kam aplikace v Androidu - ty systemove i ty nainstalovane uzivatelem - muzou neco ukladat? (Nebo muzou ukladat i jinam?)
2.) Jsou jejich data ulozena v nejake citelne podobe (Aspon minimalne tak citelne jako ve Windows "C:\Program files\...")?
Obecně může cokoli ukládat data kamkoli to zvládne (většinou jen tam, kam má práva, ale ...) a v jakém chce formátu.
Že jsou nějaké věci povážovány za obvyklé, nebo doporučované je jiná pohádka
Ahoj.
Odpovidám sice jako poslední, ale při vší skromnosti kvalifikovaně.
Na soubory můžeš přistupovat jedině ze své vlastní aplikace.
Důvodem je bezpečnostní politika systému android.
Bez nestandardního hacku zvaného "root", nejsou soubory jiných aplikací ve výchozím stavu viditelné.
A ani to nedoporučuji.
Vyjímkou jsou aplikace, které mají práva ukládat data na jiná "obecná umístění".
To znamená:
1) Aplikace je navržena tak, aby uměla ukládat data i mimo svůj prostor (např. WhatsApp)
2) Aplikace má povolení (tzv. permission) od uživatele k této akci.
Vzhledem k tomu, že se ptáš, pro tebe předchozí dva označené body neplatí.
Neposkytuji ve své odpovědi mnoho detailů, ale obecně to takto platí.