Upozornění: Shrnutí zásad jsou jen přehledy. Při zajišťování souladu se zásadami se vždy řiďte jejich úplným zněním. V případě rozporu má přednost úplné znění zásad
Google Play vaší aplikaci (a všem sadám SDK třetích stran v ní) zakazuje neoprávněně používat nebo narušovat zařízení uživatele, jiná zařízení, síť, rozhraní API, službu, jiné aplikace v zařízení, jakékoli služby Google nebo síť autorizovaného operátora. To zahrnuje řadu škodlivého, vysoce rizikového nebo rušivého chování, jako je provádění aktualizací mimo Obchod Play, stahování neautorizovaného spustitelného kódu, zneužívání chyb v zabezpečení, usnadňování hackingu nebo vytváření herních cheatů, které ovlivňují jiné aplikace. Ochrana integrity zařízení uživatele a širšího ekosystému je prvořadou prioritou. K zajištění souladu s pravidly si prostudujte úplné znění zásad.
Nepovolujeme aplikace, které neoprávněně zasahují do zařízení uživatele, jiných zařízení či počítačů, sítí, serverů, rozhraní API nebo služeb (mimo jiné včetně jiných aplikací v zařízení, služeb Google nebo sítě autorizovaného operátora), popř. které je narušují, poškozují nebo v nich získávají neoprávněný přístup.
Aplikace na Google Play musejí splnit požadavky na optimalizaci pro výchozí systém Android popsané v pokynech pro zajištění kvality aplikací na Google Play.
Aplikace distribuovaná prostřednictvím Google Play nesmí upravovat, nahrazovat ani aktualizovat sebe sama jiným způsobem než pomocí aktualizačních mechanismů služby Google Play. Stejně tak nesmí aplikace stahovat spustitelný kód (např. soubory DEX, JAR, .SO) z jiného zdroje než z Google Play. Toto omezení se nevztahuje na kód spuštěný na virtuálním počítači nebo interpretu, který poskytuje nepřímý přístup k rozhraním Android API (například JavaScript v komponentě WebView nebo prohlížeči).
Aplikace nebo kód třetí strany (např. sady SDK) v interpretovaných jazycích (JavaScript, Python, Lua atd.) načítané za běhu (tj. kód není součástí balíčku aplikace) nesmějí umožňovat potenciální porušení zásad Google Play.
Nepovolujeme kód, který vnáší chyby zabezpečení nebo je zneužívá. Další informace o nejnovějších bezpečnostních problémech, které byly vývojářům nahlášeny, naleznete v Programu zvyšování zabezpečení aplikací.
Příklady běžných porušení zásad ohledně zneužívání zařízení a sítí:
- Aplikace, které blokují nebo narušují zobrazování reklam v jiných aplikacích.
- Aplikace pro podvádění ve hrách, které ovlivňují hraní v jiných aplikacích.
- Aplikace, které pomáhají napadat služby, software a hardware nebo obcházet bezpečnostní ochranu.
- Aplikace, které používají službu nebo rozhraní API způsobem, jenž porušuje smluvní podmínky služby nebo rozhraní.
- Aplikace, které nesplňují podmínky pro zařazení na seznam povolených aplikací a pokoušejí se obejít systémové řízení spotřeby.
- Aplikace, které zprostředkovávají služby proxy třetím stranám, tak mohou činit pouze v případě, že se jedná o primární a pro uživatele jasně viditelný účel aplikace.
- Aplikace nebo kód třetích stran (například sady SDK), které stahují spustitelný kód, jako jsou soubory dex nebo nativní kód, z jiného zdroje než Google Play.
- Aplikace, které bez předchozího souhlasu uživatele do zařízení instalují jiné aplikace.
- Aplikace, které odkazují na škodlivý software, popř. zprostředkovávají jeho distribuci nebo instalaci.
- Aplikace nebo kód třetí strany (např. sady SDK) obsahující zobrazení WebView s rozhraními JavaScriptu, která načítají nedůvěryhodný webový obsah (např. adresy URL se schématem http://) nebo neověřené adresy URL získané z nedůvěryhodných zdrojů (např. z nedůvěryhodných intentů).
- Aplikace, které používají oprávnění pro intenty na celou obrazovku k vynucení uživatelské interakce s rušivými reklamami nebo oznámeními.
- Aplikace, které obcházejí ochrany izolovaných prostorů systému Android s cílem odvodit aktivitu nebo identitu uživatelů z jiných aplikací.
Co je potřeba zvážit
| Ano | Ne |
| Zajistěte, aby vaše aplikace a všechny integrované sady SDK splňovaly požadavky na optimalizaci systému Android uvedené v pokynech pro zajištění kvality aplikací. | Bez výslovného souhlasu uživatele neinstalujte do zařízení jiné aplikace. |
Respektujte nastavení FLAG_SECURE. Kontejnery v zařízení musí respektovat i nastavení REQUIRE_SECURE_ENV. |
Neposkytujte proxy třetím stranám, pokud to není primární hlavní účel aplikace pro uživatele. |
| Úlohy přenosu dat iniciované uživatelem používejte jen pro síťové přenosy dat iniciované uživatelem a nechte je běžet jen nezbytně nutnou dobu. | Nepoužívejte v aplikaci sady SDK třetích stran, které stahují spustitelný kód (například soubory DEX nebo .SO) odjinud než z Google Play (s výjimkou virtuálních počítačů / interpretů). |
| Další informace o nejnovějších bezpečnostních problémech, které byly vývojářům nahlášeny, najdete v Programu zvyšování zabezpečení aplikací. | Pokud k tomu nesplňujete podmínky, neobcházejte systémové řízení spotřeby. |
| Dodržujte zásady pro služby v popředí. | Neblokujte ani nerušte zobrazování reklam v jiných aplikacích. |
Nepoužívejte oprávnění FULL-SCREEN INTENT k vynucení interakce s rušivými reklamami a oznámeními. |
Použití služby v popředí
Zásady oprávnění pro služby v popředí zajišťují transparentnost pro uživatele, ochranu soukromí a optimální výkon zařízení. U aplikací, které cílí na Android 14 nebo novější, musíte v manifestu a v Play Console deklarovat platné typy služeb v popředí a poskytnout popisy, informace o dopadu na uživatele a ukázkové video zdůvodňující jejich použití na základě akcí iniciovaných a vnímaných uživateli. K zajištění souladu s pravidly si prostudujte úplné znění zásad.
Oprávnění Služba v popředí zajišťuje správné používání služeb v popředí pro uživatele. U aplikací, které cílí na Android 14 a vyšší, musíte pro každou službu v popředí použitou v aplikaci zadat platný typ služby v popředí a deklarovat oprávnění služby v popředí, které je pro daný typ vhodné. Pokud například v aplikaci potřebujete geolokaci v mapě, musíte v manifestu aplikace deklarovat oprávnění FOREGROUND_SERVICE_LOCATION.
Oprávnění služby v popředí mohou aplikace deklarovat pouze v případě, že použití:
- poskytuje funkci, která je užitečná pro uživatele a je relevantní k hlavní funkci aplikace,
- je iniciováno uživatelem nebo ho uživatel může zaznamenat (např. zvuk z přehrávání skladby, odesílání médií do jiného zařízení, přesné a jasné oznámení uživateli, žádost uživatele o nahrání fotky do cloudu),
- může uživatel ukončit nebo zastavit,
- nemůže být systémem přerušeno nebo odloženo, aniž by to mělo negativní dopad na uživatelský dojem nebo způsobilo, že uživatelem očekávaná funkce nebude fungovat tak, jak má (např. telefonní hovor musí začít okamžitě a systém ho nemůže odložit),
- běží pouze tak dlouho, jak je nutné k dokončení úkolu.
Výše uvedená kritéria se nevztahují na následující případy použití služeb v popředí:
- typy služeb v popředí systemExempted a shortService,
- typ služby v popředí dataSync pouze při použití funkcí Play Asset Delivery.
Použití služby v popředí je dále vysvětleno zde.
Co je potřeba zvážit
| Ano | Ne |
| Službu v popředí nechte běžet jen po dobu nezbytně nutnou k dokončení úkolu. | Službu v popředí nepoužívejte, pokud systémová správa vašeho úkolu nerozbije uživatelské prostředí vaší aplikace. Zvažte použití alternativ, jako je nástroj WorkManager. |
| Služba v popředí musí poskytovat hlavní uživatelskou funkci aplikace, musí být iniciována uživatelem a musí být viditelná v oznámení nebo o ní uživatelé musí jinak vědět (například podle zvuku při přehrávání skladby). | Nedeklarujte v manifestu aplikace neplatné nebo nesprávné typy služeb v popředí. |
| Pokud cílíte na Android 14 a vyšší, odešlete v Play Console formulář deklarace a popište případy použití jednotlivých oprávnění pro služby v popředí. Zajistěte, aby byl vybrán správný typ služby v popředí. |
Úlohy přenosu dat iniciované uživateli
Aby uživatelé měli aplikace pod kontrolou a předešlo se dlouhodobé aktivitě na pozadí, uplatňuje Google Play přísná pravidla pro aplikace, které využívají rozhraní API pro přenosy dat iniciované uživatelem. Přenosy dat musí vyvolat přímo uživatel, aby aplikace plnily příkazy a neiniciovaly přenosy nezávisle. Tato funkce je určena výhradně pro přenosy dat po síti a tyto přenosy smí probíhat pouze po dobu, která je nezbytná k dokončení požadované akce. K zajištění souladu s pravidly si prostudujte úplné znění zásad.
API pro uživatelem spouštěné úlohy přenosu dat mohou aplikace používat pouze v případě, že použití:
- iniciuje uživatel,
- slouží pro úlohy síťového přenosu dat,
- běží pouze po dobu nezbytně nutnou k dokončení přenosu dat.
Použití rozhraní API pro přenos dat iniciovaný uživatelem je dále vysvětleno zde.
Co je potřeba zvážit
| Ano | Ne |
| Přenosy zahajujte prostřednictvím akce uživatele. | Nezahajujte přenosy automaticky. |
| Rozhraní API používejte jen pro úlohy síťového přenosu dat. | Nepoužívejte rozhraní API pro úlohy, které se netýkají sítě. |
| Po dokončení přenos ukončete. | Nenechávejte přenosy běžet déle, než je nutné. |
Požadavky na označení Flag Secure
FLAG_SECURE je příznak zobrazení deklarovaný aplikací, který značí, že citlivá data v uživatelském rozhraní musí být omezena na zabezpečená prostředí, a brání pořizování snímků obrazovky a zobrazování a zaznamenávání prostřednictvím nezabezpečených zobrazení. Vývojáři ho používají u obsahu, který nemá být vysílán nebo prohlížen mimo aplikaci/zařízení. Z důvodu zabezpečení a ochrany soukromí Google Play vyžaduje, aby všechny aplikace respektovaly deklarace FLAG_SECURE ostatních aplikací a neobcházely je. K zajištění souladu s pravidly si prostudujte úplné znění zásad.
FLAG_SECURE je příznak zobrazení deklarovaný v kódu aplikace, který značí, že její uživatelské rozhraní obsahuje citlivá data, která mají být při používání aplikace omezena na zabezpečené platformy. Tento příznak je navržen tak, aby zabránil zobrazení dat ve snímcích obrazovek nebo zobrazení na nezabezpečených displejích. Vývojáři tento příznak deklarují v případě, že obsah aplikace nemá být vysílán, prohlížen nebo jinak přenášen mimo aplikaci nebo zařízení uživatelů.
Kvůli zabezpečení a ochraně soukromí musí všechny aplikace distribuované na Google Play respektovat deklaraci FLAG_SECURE ostatních aplikací. To znamená, že aplikace nesmějí zprostředkovávat ani vytvářet řešení k obcházení nastavení FLAG_SECURE v jiných aplikacích.
Aplikace kvalifikované jako nástroje pro usnadnění přístupu jsou z tohoto požadavku vyjmuty. Nesmějí však obsah chráněný příznakem FLAG_SECURE přenášet ani ukládat (ani do mezipaměti) pro přístup mimo zařízení uživatele. Co je potřeba zvážit
| Ano | Ne |
Deklarujte příznak FLAG_SECURE pro citlivá data v uživatelském rozhraní, která je potřeba ochránit před zachycením. |
Neobcházejte nastavení |
Respektujte deklarace FLAG_SECURE ostatních aplikací z důvodu zabezpečení a ochrany soukromí. |
Nepřenášejte a neukládejte (ani do mezipaměti) obsah chráněný nastavením FLAG_SECURE mimo zařízení, a to ani u nástrojů pro usnadnění přístupu. |
Aplikace, ve kterých běží kontejnery Android v zařízení
K zajištění bezpečnosti a soukromí mohou vývojáři v manifestu aplikace použít příznak REQUIRE_SECURE_ENV pro kontejnery Android na zařízení, které nedisponují všemi bezpečnostními funkcemi operačního systému Android. Tento příznak udává, že aplikaci není dovoleno spouštět v simulovaném prostředí. Aplikace poskytující kontejnery musí tento příznak respektovat – nesmí načítat aplikace, které ho deklarují, a nesmí toto bezpečnostní opatření obcházet. K zajištění souladu s pravidly si prostudujte úplné znění zásad.
Kontejnerové aplikace pro Android na zařízení poskytují prostředí, která simulují celý základní operační systém Android nebo jeho části. Tato prostředí nemusí zahrnovat kompletní sadu zabezpečovacích funkcí systému Android. Vývojáři proto do manifestu mohou přidat příznak zabezpečeného prostředí, který kontejnerům Android na zařízeních sděluje, že aplikaci není dovoleno spouštět v jejich simulovaném prostředí Android.
Příznak manifestu bezpečného prostředí
- U aplikací, které se pokoušejí načíst do svého kontejneru Android v zařízení, musejí kontrolovat, zda jejich manifest neobsahuje tento příznak.
- Nesmějí do svého kontejneru Android v zařízení načítat aplikace, které deklarovaly tento příznak.
- Nesmějí fungovat jako prostředníci a zachytáváním či voláním rozhraní API vyvolávat dojem, že jsou nainstalována v kontejneru.
- Nesmějí umožňovat obejití tohoto příznaku (např. načítat starší verzi aplikace s cílem obejít příznak REQUIRE_SECURE_ENV aktuální aplikace).
Co je potřeba zvážit
| Ano | Ne |
Aplikace, které poskytují kontejnery v zařízení, musí před načtením jiných aplikací kontrolovat, zda v manifestu nemají příznak REQUIRE_SECURE_ENV. Aplikace s tímto příznakem nesmí načíst. |
Neignorujte tento příznak. Aplikaci, která deklaruje příznak REQUIRE_SECURE_ENV, nesmíte do svého kontejneru načíst. |
| Vyhýbejte se obcházení. Příznak nesmíte obcházet – například načítáním starších verzí aplikace. | Neobcházejte bezpečnostní opatření. Nevytvářejte alternativní řešení k obejití bezpečnostního nastavení aplikace. |
| Vyhýbejte se zprostředkovávání přístupu k rozhraním API. Neposkytujte funkci zprostředkování, která zachytává nebo přeposílá volání rozhraní API mimo kontejner. | Nevytvářejte dojem, že aplikace běží v bezpečném prostředí, pokud to není pravda. |
| Projděte si požadavky zásad pro kontejnery Android na zařízeních. |