Android 11 sprísni skryté obmedzenia API a odstráni meta-reflexiu

click fraud protection

Android 9 Pie zaviedol skryté obmedzenia API a teraz Android 11 tieto obmedzenia sprísni, aby sa odstránil obtok meta-reflexie.

Pre tých z vás, ktorí to nepoznajú, Google predstavil dosť nepríjemnú zmenu v systéme Android 9 Pie, ktorá sa týka nadšených vývojárov, ktorí chcú posunúť hranice toho, čo je v systéme Android možné. Hovorím samozrejme o pridaní skrytej čiernej listiny API. S úmyslom podporiť stabilitu aplikácie Google zablokoval prístup k väčšine skrytých API – API, ktoré existujú v rámci Androidu, ale nie sú zdokumentované v Android SDK. K týmto rozhraniam API bolo možné pristupovať prostredníctvom reflexie až do systému Android 9 Pie a v súčasnosti je stále možné pristupovať pomocou riešenia meta reflexie.

Ak netušíte, o čom hovorím, asi by ste mali prečítaj si článok čo som napísal pred niekoľkými mesiacmi na túto tému. Vysvetlí vám všetko, čo potrebujete vedieť o metareflexii a ako to funguje. Bohužiaľ, zdá sa, že Google si toto riešenie všimol (hops). V novom záväzku k AOSP spoločnosť Google zaviedla kód na „zosilnenie“ skrytých kontrol API systému Android. To v podstate znamená, že metareflexia už nebude fungovať.

To samozrejme neovplyvní všetky aplikácie. Rovnako ako v prípade pôvodnej čiernej listiny rozhrania API budú ovplyvnené iba aplikácie zacielené na Android 11 (úroveň rozhrania API 30) alebo novší. Stále môžete zacieliť na úroveň API 29 alebo nižšiu a použiť meta reflexiu. S Obchodom Play progresívne zvyšovanie minimálnych cieľových požiadaviek SDK, toto však nebude platné riešenie dlho.

V súčasnosti neviem o žiadnych riešeniach pre aplikácie zacielené na API 30. Android 11 je však ďaleko, takže existuje veľká šanca, že niekto nájde spôsob, ako obnoviť prístup. Ak medzitým používate skryté rozhrania API, možno budete chcieť podať žiadosť o ich zverejnenie v systéme Android 11. Ak ste dobrí v analýze C++ a Java a chcete sa pokúsiť „opraviť“ túto situáciu na malej čiernej listine, pozrite si príslušný príkaz.