@mrosi@Orjon
Zip generowany przez skrypt w zasadzie nie różni się od tego od @fredek po za tym, że nie jest podpisywany cyfrowo.
Myślę, że tak właśnie jest. Część nowszych urządzeń może właśnie takowy system partycji posiadać. Tym bardziej, że to wstęp do Androida 11 - z tego co mi wiadomo będzie mieć możliwość aktualizacji bez konieczności restartowania urządzenia w celu flashowania. Tzn. po restarcie dopiero będzie ładowany nowy obraz systemu przy pomocy właśnie mechanizmu partycji dynamicznych.
Jeżeli urządzenia posiadają standardowy system partycji, który umożliwia podmontowanie `/system` z możliwością zapisu (rw) to podmiana hosts przez TWRP zadziała.
W starszych urządzeniach rozpakowywany jest do `/system/etc/`, w nowszych o ze statycznymi partycjami `/system_root/system/etc` z tym, że od wersji TWRP 3.4 już lokalizacja jest bindowana dla zachowania kompatybilności w skryptach. Pozostawiłem rozgraniczenie na wersję v1 i v2 tylko dlatego, że nie wszyscy aktualizują TWRP do najnowszej wersji.
Zainteresowałem się tematem i z tego, co się dowiedziałem to:
https://9to5google.com/2020/06/26/twrp-3-4/
Dużo mówi też sama notka od jednego z autorów TWRP: https://twrp.me/site/update/2019/10/23/twrp-and-android-10.html
Wychodzi na to, że w urządzeniach, które od razu miały Androida 10 jest nowy system partycji dynamicznych i takowe są read-only "by design".
Inaczej sprawa wygląda z urządzeniami, które dostały upgrade do Android 10, w większości przypadków mają jeszcze starszy system partycji.
Na nowych urządzeniach z partycjami dynamicznymi pozostaje tylko wygenerowanie hosts skryptem i podmiana przez jakiś moduł Magiska jak wspomniał Orjon. (do czasu wsparcia dla partycji dynamicznych przez nowszą wersję TWRP)