From c9bd87db5f5edf09d2b770b3c0499476f8b282f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Sun, 7 Jun 2026 21:10:10 +0200 Subject: [PATCH 001/120] Update PL strings.xml Improved Polish translation. Missing information was filled in and errors were corrected. --- app/src/main/res/values-pl/strings.xml | 262 +++++++++++++------------ 1 file changed, 133 insertions(+), 129 deletions(-) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c5d514c62..2fba8c26b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1,110 +1,110 @@ - + Przegląd Moduły - %d moduł aktywowany - Aktywowano %d modułu/ów - Włączono %d moduły/ów - Włączono %d moduły/ów + Włączono %d moduł + Włączono %d moduły + Włączono %d modułów + Włączono %d modułów - Logi + Dzienniki Ustawienia - Opinie lub sugestie + Opinia lub sugestia O aplikacji Zgłoś problem Repozytorium Wszystkie moduły są aktualne - Opublikowano na stronie %s - Zaktualizowany na stronie %s + Opublikowano w %s + Zaktualizowano w %s - %d moduł możliwy do aktualizacji + %d moduł z możliwością aktualizacji %d moduły z możliwością aktualizacji - %d moduły z możliwością aktualizacji + %d modułów z możliwością aktualizacji %d modułów z możliwością aktualizacji Dołącz do naszego kanału %2$s]]> - Adiker, xAzvest - Instaluj - Dotknij, aby zainstalować LSPosed - Nie zainstalowano - LSPosed nie jest zainstalowany - Aktywowano - Częściowo aktywowano - SEPolicy nie jest prawidłowo załadowane - Proszę to zgłosić do twórcy Magiska.]]> - Wstrzyknięcie Frameworku Systemowego nie powiodło się - Magiska lub niektóre moduły Magisk niskiej jakości.
Spróbuj wyłączyć moduły Magisk inne niż Riru i LSPosed lub przesłać pełny log programistom.]]>
- Nieprawidłowy system prop + Łukasz Kuchta + Zainstaluj + Naciśnij, aby zainstalować Vector + Nie zainstalowane + Vector nie jest zainstalowany + Aktywowany + Częściowo aktywowany + Zasady bezpieczeństwa są nieprawidłowo załadowane + Proszę zgłosić to do programisty Magisk.]]> + Wstrzyknięcie do struktury systemu nie powiodło się + Magiska lub niektóre moduły Magisk niskiej jakości.
Spróbuj wyłączyć moduły Magisk inne niż Riru i Vector lub przesłać szczegółowy dziennik programistom.]]>
+ Nieprawidłowa właściwość systemu Moduły mogą czasami działać niepoprawnie.]]> Konieczna aktualizacja - Proszę zainstalować najnowszą wersję LSPosed - Porady dla programisty modułów - Wyłącz optymalizacje wdrażania w Android Studio lub użyj polecenia `gradlew installDebug`, aby zainstalować. W przeciwnym razie moduł APK nie zostanie zaktualizowany. - Wersja API - Wersja frameworka + Proszę zainstalować najnowszą wersję Vector + Wskazówki dla programistów modułów + Proszę wyłączyć optymalizację wdrażania w Android Studio, lub użyć polecenia \'gradlew installDebug\', aby zainstalować. W przeciwnym razie plik APK modułu nie zostanie zaktualizowany. + Wersja interfejsu programowania aplikacji + Wersja struktury Nazwa pakietu menedżera Wersja systemu Urządzenie - ABI systemu - Optymalizator Dex Optimizer Wrapper - Włączone - Wyłączone - Obsługiwana strona - Nieobsługiwane - Niezadowolenie z wersji na Androida - Rozbita + Systemowy interfejs binarny aplikacji + Pośrednik optymalizacji DEX + Włączony + Nie włączony + Wspierany + Nie wspierany + Nieobsługiwana wersja Android + Uległ awarii Montowanie nie powiodło się - SELinux jest permisywny - Zasady SELinuxa są nieprawidłowe - Zaktualizuj LSPosed - Czy chcesz zatwierdzić aktualizację LSPosed? Urządzenie zostanie uruchomione ponownie po zakończeniu aktualizacji - Skopiowane do schowka - - Witamy w LSPosed - Używasz menedżera pasożytów, który może utworzyć skrót na ekranie głównym lub nadal być otwieranym z powiadomienia. - Używasz menedżera pasożytów, który może być otwierany z powiadomienia. + Zasady bezpieczeństwa są zezwalające + Zasady bezpieczeństwa są nieprawidłowe + Zaktualizuj Vector + Czy chcesz zatwierdzić aktualizację Vector? Urządzenie zostanie zrestartowane po zakończeniu aktualizacji + Skopiowano do schowka + + Witaj w Vector + Używasz menadżera pasożytniczego, do którego możesz utworzyć skrót lub otworzyć go z powiadomienia. + Używasz menadżera pasożytniczego, który możesz otworzyć z powiadomienia. Utwórz skrót Nigdy nie pokazuj - Zalecany Menedżer Pasożytowy - LSPosed teraz obsługuje pasożytowanie systemowe by uniknąć wykrycia, możesz otworzyć menedżera pasożytów z okna powiadomień. Zalecane jest odinstalowanie obecnej aplikacji. - + Zalecany menedżer pasożytniczy + Vector obsługuje teraz pasożytnictwo systemowe, aby uniknąć wykrycia. Menedżer pasożytniczy można uruchomić z poziomu powiadomienia. Zaleca się odinstalowanie bieżącej aplikacji. + Zapisz - Logi verbose - Logi modułów + Szczegółowe dzienniki + Dzienniki modułów Zapisywanie dziennika, poczekaj - Zapisane logi + Dzienniki zapisane Nie udało się zapisać:\n%s - Wyczyść log teraz - Logi zostały pomyślnie wyczyszczone. + Wyczyść dziennik teraz + Dzienniki zostały pomyślnie wyczyszczone. Przewiń na górę Ładowanie… Przewiń na dół Przeładuj - Nie udało się wyczyścić logu + Nie udało się wyczyścić dziennika Zawijanie wierszy - Logi verbose włączone - Logi verbose wyłączone - + Szczegółowy dziennik włączony + Szczegółowy dziennik wyłączony + (nie podano opisu) Ten moduł wymaga nowszej wersji Xposed (%d) przez co nie może być aktywowany Ten moduł został zaprojektowany dla nowej wersji Xposed (%d) i dlatego niektóre funkcje mogą nie działać @@ -113,22 +113,22 @@ Ten moduł nie może być załadowany, ponieważ jest zainstalowany na karcie SD, przenieś go do pamięci wewnętrznej Odinstaluj Ustawienia modułu - Wyświetl w repozytorium + Zobacz w repozytorium Czy chcesz odinstalować ten moduł? Odinstalowano %1$s Odinstalowanie nie powiodło się - Dodaj moduł do użytkownika - Dodano %1$s do użytkownika %2$s + Dodaj moduł dla użytkownika + Dodano %1$s dla użytkownika %2$s Dodawanie modułu nie powiodło się Zainstaluj dla użytkownika %s - Chcesz zainstalować %1$s dla użytkownika %2$s? Zalecana jest ręczna instalacja, wymuszanie instalacji przez LSPosed może powodować problemy. + Chcesz zainstalować %1$s dla użytkownika %2$s? Zalecana jest ręczna instalacja, wymuszanie instalacji przez Vector może powodować problemy. rozwiń zwiń - + Ponownie zoptymalizuj Optymalizowanie… Optymalizacja zakończona - Uruchom + Uruchom to Optymalizacja nie powiodła się: zwrócona wartość jest pusta Optymalizacja nie powiodła się: Nazwa aplikacji @@ -144,44 +144,48 @@ Moduły Nie udało się zapisać listy zakresu Wersja: %1$s - Zaznacz + Wybierz Zalecane - Nie wybrałeś żadnej aplikacji. Wybrać rekomendowane aplikacje? + Nie wybrałeś żadnej aplikacji. Wybrać zalecane aplikacje? Wybrać zalecane aplikacje? Wszystkie Żadne - Automatycznie + Automatyczne dołączanie Moduł Xposed nie jest jeszcze aktywowany Zalecane Dostępna aktualizacja: %1$s Moduł %s został wyłączony, ponieważ nie wybrano żadnej aplikacji. - System Framework + Struktura systemu Kopia zapasowa Kopia zapasowa Przywróć Wymuś zatrzymanie Wymusić zatrzymanie? - Jeśli wymusisz zatrzymanie aplikacji, może ona zadziałać nieprawidłowo. - Restart jest wymagany aby ta zmiana została zastosowana + Jeśli wymusisz zatrzymanie aplikacji, może ona zachowywać się nieprawidłowo. + Restart jest wymagany, aby ta zmiana została zastosowana Restart Ukryj - + Wyświetl w innej aplikacji Informacje o aplikacji ¯\\\\_(ツ)_\/¯\nNic tu nie ma - - Framework - Wyłącz logi - Zgłaszanie problemów wymaga dołączenia pełnych dzienników + + Struktura + Wyłącz szczegółowe dzienniki + Zgłaszanie problemów wymaga dołączenia szczegółowych dzienników Czarny ciemny motyw Użyj czarnego motywu, jeśli ciemny motyw jest włączony Motyw + Ciemny motyw + Zawsze wyłączony + Zawsze włączony + Według systemu Kopia zapasowa i przywracanie Kopia zapasowa listy modułów i zakresów. - Przywrócenie listy modułów i listy zakresów. + Przywróć listę modułów i zakresów. Kopia zapasowa Nie udało się utworzyć kopii zapasowej:\n%s - Proszę włączyć DocumentUI + Proszę włączyć interfejs dokumentów Przywróć Nie udało się przywrócić:\n%s Sieć @@ -189,30 +193,30 @@ Obejście zatruwania DNS w niektórych krajach Kolor motywu Kolor akcentu systemowego - Wymuś aplikacjom pokazywanie ikon launchera - Po Android 10 aplikacje nie mogą ukrywać swoich ikon launchera. Wyłącz przełącznik, aby zablokować tę funkcję systemową. + Wymuś wyświetlanie ikon uruchamiania aplikacji + Po Android 10 aplikacje nie mogą ukrywać ikon uruchamiania. Aby wyłączyć tę funkcję systemową, należy wyłączyć przełącznik. System Język - Tłumacze + Współautorzy tłumaczeń Weź udział w tłumaczeniu - Pomóż nam przetłumaczyć %s na Twój język - Utwórz skrót, za pomocą którego otworzysz menadżera \"pasożytów\" + Pomóż nam przetłumaczyć %s na twój język + Utwórz skrót, który może otworzyć menedżer pasożytniczy Skrót przypięty - Bieżący domyślny launcher nie wspiera skrótów pinezkowych + Bieżący domyślny launcher nie wspiera przypinania skrótów Status powiadomień - Pokazuj powiadomienie, za pomocą którego otworzysz menadżera pasożytów + Pokaż powiadomienie, które może otworzyć menedżer pasożytniczy Kanał aktualizacji Stabilny Beta - Wersja nocna - - Readme - Wersje + Kompilacja nocna + + Przeczytaj mnie + Wydania Informacje Strona główna Kod źródłowy Współtwórcy - Assety + Zasoby Otwórz w przeglądarce Pokaż starsze wersje Nie ma więcej wersji @@ -220,29 +224,29 @@ Możliwość uaktualnienia w pierwszej kolejności Zainstalowane - %d pobierz - %d pobieranie - %d pobieranie - %d pobrania + %d pobrany + %d pobrane + %d pobranych + %d pobranych - - Sakura - Czerwony - Różowy - Fioletowy - Ciemny fioletowy - Indigo - Niebieski - Jasnoniebieski - Cyjanowy - Turkusowy - Zielony - Jasnozielony - Limonkowy - Żółty - Bursztynowy - Pomarańczowy - Ciemny pomarańczowy - Brązowy - Niebiesko szary -
+ + Bursztynowy + Brązowy + Cyjanowy + Cyraneczkowy + Czerwony + Indygo + Limonkowy + Niebieski + Jasny niebieski + Niebiesko szary + Pomarańczowy + Głęboki pomarańczowy + Purpurowy + Głęboki purpurowy + Różowy + Jasny różowy + Zielony + Jasny zielony + Żółty + \ No newline at end of file From 21b0d33f17f1264b1071d435e21e0e741601f969 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Sun, 7 Jun 2026 21:11:41 +0200 Subject: [PATCH 002/120] Update PL (deamon) strings.xml Improved Polish translation. Missing information was filled in and errors were corrected. --- daemon/src/main/res/values-pl/strings.xml | 39 +++++++++++------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/daemon/src/main/res/values-pl/strings.xml b/daemon/src/main/res/values-pl/strings.xml index 07c40cec7..36517ce27 100644 --- a/daemon/src/main/res/values-pl/strings.xml +++ b/daemon/src/main/res/values-pl/strings.xml @@ -1,21 +1,20 @@ - - - Moduł Xposed nie jest jeszcze aktywowany - %1$s został zainstalowany, ale nie jest jeszcze aktywny - %1$s został zainstalowany na użytkowniku %2$s, ale nie jest jeszcze aktywowany - Moduł Xposed zaktualizowany - %s został zaktualizowany, wymuś zatrzymanie i ponownie uruchom aplikacje w jego zakresie - Zaktualizowano moduł Xposed, wymagane ponowne uruchomienie systemu - %s został zaktualizowany, ponieważ zakres zawiera System Framework, wymagany restart aby zastosować zmiany - Aktualizowanie modułu zakończone - Status Vector - Vector załadowany - Kliknij powiadomienie, by włączyć menadżer - Żądanie Zakresu - %1$s w użytkowniku %2$s żąda dodania %3$s do jego zakresu. - Żądanie zakresu - Zatwierdź - Odrzuć - Nigdy nie pytaj - + + Moduł nie jest jeszcze aktywowany + %1$s został zainstalowany, ale nie został jeszcze aktywowany + %1$s został zainstalowany dla użytkownika %2$s, ale nie został jeszcze aktywowany + Moduł zaktualizowany + %s został zaktualizowany, wymuś zatrzymanie i restart aplikacji w jego zakresie + Zaktualizowano moduł, wymagany restart systemu + %s został zaktualizowany, ponieważ zakres zawiera strukturę systemu, wymagany jest restart w celu zastosowania zmian + Aktualizacja modułu zakończona + Status Vector + Vector załadowany + Naciśnij powiadomienie, aby otworzyć menedżera + Żądanie zakresu + %1$s na żądanie użytkownika %2$s o dodanie %3$s do jego zakresu. + Żądanie zakresu + Zatwierdź + Odmów + Nigdy nie pytaj + \ No newline at end of file From 669c8d0ab6045d0e4726ab810339f84581f5130f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Sun, 7 Jun 2026 21:25:05 +0200 Subject: [PATCH 003/120] Update strings_untranslatable.xml --- .../main/res/values/strings_untranslatable.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/values/strings_untranslatable.xml b/app/src/main/res/values/strings_untranslatable.xml index b6264e42d..37c2592fd 100644 --- a/app/src/main/res/values/strings_untranslatable.xml +++ b/app/src/main/res/values/strings_untranslatable.xml @@ -1,25 +1,25 @@ - LSPosed - https://github.com/JingMatrix/LSPosed#install - https://github.com/JingMatrix/LSPosed/releases/latest + Vector + https://github.com/JingMatrix/Vector#install + https://github.com/JingMatrix/Vector/releases/latest @string/module_repo - + \ No newline at end of file From 72c05e555c6a9d01f6c27e0362a019c793e80820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Sun, 7 Jun 2026 21:28:48 +0200 Subject: [PATCH 004/120] Update strings_untranslatable.xml Change the name LSPosed to Vector in links and for the entry that displays the text in the manager window. After the change, opening the manager will display the text Vector. The shortcut name may also be correct - Vector instead of LSPosed. --- app/src/main/res/values/strings_untranslatable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings_untranslatable.xml b/app/src/main/res/values/strings_untranslatable.xml index 37c2592fd..999237514 100644 --- a/app/src/main/res/values/strings_untranslatable.xml +++ b/app/src/main/res/values/strings_untranslatable.xml @@ -22,4 +22,4 @@ https://github.com/JingMatrix/Vector#install https://github.com/JingMatrix/Vector/releases/latest @string/module_repo - \ No newline at end of file + From ea6fa0f3c6c69646e165048d36e4320955f2b1d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Sun, 7 Jun 2026 23:10:47 +0200 Subject: [PATCH 005/120] Update build.gradle.kts --- app/build.gradle.kts | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b883c23b7..ec72cc683 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -83,25 +83,25 @@ materialThemeBuilder { themes { for ((name, color) in listOf( - "Red" to "F44336", - "Pink" to "E91E63", - "Purple" to "9C27B0", - "DeepPurple" to "673AB7", - "Indigo" to "3F51B5", - "Blue" to "2196F3", - "LightBlue" to "03A9F4", - "Cyan" to "00BCD4", - "Teal" to "009688", - "Green" to "4FAF50", - "LightGreen" to "8BC3A4", - "Lime" to "CDDC39", - "Yellow" to "FFEB3B", - "Amber" to "FFC107", - "Orange" to "FF9800", - "DeepOrange" to "FF5722", - "Brown" to "795548", - "BlueGrey" to "607D8F", - "Sakura" to "FF9CA8", + "Red" to "FF0000", + "Pink" to "FFC0CB", + "Purple" to "800080", + "DeepPurple" to "36013F", + "Indigo" to "4B0082", + "Blue" to "0000FF", + "LightBlue" to "ADD8E6", + "Cyan" to "00FFFF", + "Teal" to "008080", + "Green" to "008000", + "LightGreen" to "90EE90", + "Lime" to "00FF00", + "Yellow" to "FFFF00", + "Amber" to "FFBF00", + "Orange" to "FFA500", + "DeepOrange" to "FF8C00", + "Brown" to "964B00", + "BlueGrey" to "6A89A7", + "Sakura" to "FCC9B9", )) { create("Material$name") { lightThemeFormat = "ThemeOverlay.Light.%s" @@ -113,7 +113,7 @@ materialThemeBuilder { // Add Material Design 3 color tokens (such as palettePrimary100) in generated theme // rikka.material:material >= 2.0.0 provides such attributes // Enable this if your are using rikka.material:material - generatePalette = true + generatePalette = false } dependencies { From 35f4220b9774c1496a56a98832f1322c93b5eb85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Mon, 8 Jun 2026 06:40:52 +0200 Subject: [PATCH 006/120] Update themes.xml --- app/src/main/res/values/themes.xml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 06810bdd8..98772ffca 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -67,4 +67,23 @@ 24dp + + From a786b95a9204c97c28d7567ce49bbae85f6cecdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 10:05:57 +0200 Subject: [PATCH 007/120] Update themes.xml Restore default, and update name LSPosed to Vector and 2021 to 2026 --- app/src/main/res/values/themes.xml | 31 ++++++------------------------ 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 98772ffca..407efc99b 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,20 +1,20 @@ @@ -67,23 +67,4 @@ 24dp - - - + \ No newline at end of file From 0a917f0145d764b1efb54dea91eed35bfb1ce4e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 16:26:28 +0200 Subject: [PATCH 008/120] Update module.prop --- zygisk/module/module.prop | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zygisk/module/module.prop b/zygisk/module/module.prop index 31c00fc84..51a7f6532 100644 --- a/zygisk/module/module.prop +++ b/zygisk/module/module.prop @@ -1,7 +1,7 @@ id=zygisk_vector -name=Vector +name=Zygisk Vector version=${versionName} (${versionCode}) versionCode=${versionCode} -author=JingMatrix -description=A modern, Xposed-compatible framework for Android application hooking. (Android 8.1 ~ 16) -updateJson=https://raw.githubusercontent.com/JingMatrix/LSPosed/master/zygisk/update.json +author=JingMatrix, Łukasz Kuchta (fork) +description=Nowoczesny, zgodny z Xposed framework do podłączania aplikacji na Androida (Android 8.1–17). +updateJson=https://raw.githubusercontent.com/JingMatrix/Vector/master/zygisk/update.json From eadf70047e9d67ec66a9480d2183a331104a7e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 16:43:45 +0200 Subject: [PATCH 009/120] Update customize.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Przetłumaczono na polski --- zygisk/module/customize.sh | 61 +++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/zygisk/module/customize.sh b/zygisk/module/customize.sh index 44707fee7..a5a208b08 100644 --- a/zygisk/module/customize.sh +++ b/zygisk/module/customize.sh @@ -1,24 +1,24 @@ SKIPUNZIP=1 -# ========================================================= -# Utils functions to extract and verify installation package +# ================================================================================= +# Funkcje narzędzi umożliwiające wyodrębnienie i sprawdzenie pakietu instalacyjnego TMPDIR_FOR_VERIFY="$TMPDIR/.vunzip" mkdir "$TMPDIR_FOR_VERIFY" abort_verify() { - ui_print "*********************************************************" + ui_print "************************************************************" ui_print "! $1" - ui_print "! This zip may be corrupted, please try downloading again" - abort "*********************************************************" + ui_print "! Ten plik zip może być uszkodzony. Spróbuj pobrać ponownie." + abort "************************************************************" } -# Usage: extract [junk_paths: true|false] +# Zastosowanie: wypakuj [junk_paths: true|false] extract() { local zip="$1" local file="$2" local dir="$3" - local junk_paths="${4:-false}" # Defaults to false if not provided + local junk_paths="${4:-false}" # Domyślnie fałsz, jeśli nie podano local opts="-o" local file_path hash_path file_basename @@ -35,34 +35,33 @@ extract() { # Extract the file and its hash unzip $opts "$zip" "$file" -d "$dir" >/dev/null 2>&1 - [ -f "$file_path" ] || abort_verify "Extracted $file does not exist" + [ -f "$file_path" ] || abort_verify "Wyodrębniony plik $file nie istnieje" unzip $opts "$zip" "$file.sha256" -d "${TMPDIR_FOR_VERIFY}" >/dev/null 2>&1 - [ -f "$hash_path" ] || abort_verify "Hash file $file.sha256 does not exist" + [ -f "$hash_path" ] || abort_verify "Plik skrótu $file.sha256 nie istnieje" # Read the expected hash and verify it local expected_hash read -r expected_hash < "$hash_path" - expected_hash="${expected_hash%% *}" # Strip anything after the actual hash string - + expected_hash="${expected_hash%% *}" # Usuń wszystko po rzeczywistym ciągu skrótu if ! echo "$expected_hash $file_path" | sha256sum -c -s -; then - abort_verify "Failed to verify $file" + abort_verify "Nie udało się zweryfikować $file" fi - ui_print "- Verified $file" + ui_print "- Zweryfikowany $file" } # ========================================================= VERSION=$(grep_prop version "${TMPDIR}/module.prop") -ui_print "- Vector version ${VERSION}" +ui_print "- Vector wersja ${VERSION}" # Disable existing LSPosed installation LSPOSED_DIR="/data/adb/modules/zygisk_lsposed" if [ -d "$LSPOSED_DIR" ]; then - ui_print "*********************************************************" - ui_print "LSPosed installation detected, disabling it for Vector" + ui_print "***************************************************" + ui_print "Wykryto instalację LSPosed, wyłączono ją dla Vector" touch "$LSPOSED_DIR/disable" - ui_print "*********************************************************" + ui_print "***************************************************" fi # 1. Map architecture to standard ABI paths, eliminating duplicate logic @@ -76,40 +75,40 @@ case "$ARCH" in ABI64="x86_64" ;; *) - abort "! Unsupported platform: $ARCH" + abort "! Nieobsługiwana platforma: $ARCH" ;; esac -ui_print "- Device platform: $ARCH ($ABI32 / $ABI64)" +ui_print "- Platforma urządzenia: $ARCH ($ABI32 / $ABI64)" -ui_print "- Extracting root module files" +ui_print "- Wyodrębnianie plików modułu głównego" for file in module.prop action.sh service.sh uninstall.sh sepolicy.rule framework/lspd.dex cli daemon.apk daemon manager.apk; do extract "$ZIPFILE" "$file" "$MODPATH" done -ui_print "- Extracting Zygisk libraries" +ui_print "- Wyodrębnianie bibliotek zygisk" mkdir -p "$MODPATH/zygisk" -# Extract 32-bit lib +# Wyodrębnij bibliotekę 32-bitową extract "$ZIPFILE" "lib/$ABI32/libzygisk.so" "$MODPATH/zygisk" true mv "$MODPATH/zygisk/libzygisk.so" "$MODPATH/zygisk/${ABI32}.so" -# Extract 64-bit lib if supported +# Wypakuj bibliotekę 64-bitową, jeśli jest obsługiwana if [ "$IS64BIT" = true ]; then extract "$ZIPFILE" "lib/$ABI64/libzygisk.so" "$MODPATH/zygisk" true mv "$MODPATH/zygisk/libzygisk.so" "$MODPATH/zygisk/${ABI64}.so" fi if [ "$API" -ge 29 ]; then - ui_print "- Extracting dex2oat binaries" + ui_print "- Wyodrębnianie plików binarnych dex2oat" mkdir -p "$MODPATH/bin" - # Extract 32-bit binaries + # Wyodrębnij 32-bitowe pliki binarne extract "$ZIPFILE" "bin/$ABI32/dex2oat" "$MODPATH/bin" true extract "$ZIPFILE" "bin/$ABI32/liboat_hook.so" "$MODPATH/bin" true mv "$MODPATH/bin/dex2oat" "$MODPATH/bin/dex2oat32" mv "$MODPATH/bin/liboat_hook.so" "$MODPATH/bin/liboat_hook32.so" - # Extract 64-bit binaries + # Wyodrębnij 64-bitowe pliki binarne if [ "$IS64BIT" = true ]; then extract "$ZIPFILE" "bin/$ABI64/dex2oat" "$MODPATH/bin" true extract "$ZIPFILE" "bin/$ABI64/liboat_hook.so" "$MODPATH/bin" true @@ -117,9 +116,9 @@ if [ "$API" -ge 29 ]; then mv "$MODPATH/bin/liboat_hook.so" "$MODPATH/bin/liboat_hook64.so" fi - ui_print "- Patching binaries for anti-detection" + ui_print "- Łatanie plików binarnych w celu zapobiegania wykryciu" DEV_PATH=$(tr -dc 'a-z0-9' >"$MODPATH/system.prop" fi -ui_print "- Welcome to Vector!" +ui_print "- Witaj w Vector!" From 20632c922e16e779339bf4f087b7efdbb3bcadfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 16:46:52 +0200 Subject: [PATCH 010/120] Update customize.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Przetłumaczono na polski --- zygisk/module/customize.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zygisk/module/customize.sh b/zygisk/module/customize.sh index a5a208b08..179920836 100644 --- a/zygisk/module/customize.sh +++ b/zygisk/module/customize.sh @@ -33,14 +33,14 @@ extract() { hash_path="${TMPDIR_FOR_VERIFY}/$file.sha256" fi - # Extract the file and its hash + # Wypakuj plik i jego skrót unzip $opts "$zip" "$file" -d "$dir" >/dev/null 2>&1 [ -f "$file_path" ] || abort_verify "Wyodrębniony plik $file nie istnieje" unzip $opts "$zip" "$file.sha256" -d "${TMPDIR_FOR_VERIFY}" >/dev/null 2>&1 [ -f "$hash_path" ] || abort_verify "Plik skrótu $file.sha256 nie istnieje" - # Read the expected hash and verify it + # Odczytaj oczekiwany skrót i zweryfikuj go local expected_hash read -r expected_hash < "$hash_path" expected_hash="${expected_hash%% *}" # Usuń wszystko po rzeczywistym ciągu skrótu @@ -55,7 +55,7 @@ extract() { VERSION=$(grep_prop version "${TMPDIR}/module.prop") ui_print "- Vector wersja ${VERSION}" -# Disable existing LSPosed installation +# Wyłącz istniejącą instalację LSPosed LSPOSED_DIR="/data/adb/modules/zygisk_lsposed" if [ -d "$LSPOSED_DIR" ]; then ui_print "***************************************************" @@ -64,7 +64,7 @@ if [ -d "$LSPOSED_DIR" ]; then ui_print "***************************************************" fi -# 1. Map architecture to standard ABI paths, eliminating duplicate logic +# 1. Mapowanie architektury do standardowych ścieżek ABI, eliminując duplikację logiki case "$ARCH" in arm|arm64) ABI32="armeabi-v7a" From b51a531bfc59e3134dbd3e0564a8b3f5b1bbdee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 16:54:50 +0200 Subject: [PATCH 011/120] Update daemon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Przetłumaczono na polski --- zygisk/module/daemon | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zygisk/module/daemon b/zygisk/module/daemon index faca6adef..9411696c7 100644 --- a/zygisk/module/daemon +++ b/zygisk/module/daemon @@ -4,7 +4,7 @@ dir="${0%/*}" tmpDaemonApk="/data/local/tmp/daemon.apk" debug="@DEBUG@" -# Safely check for debug APK and set classpath +# Bezpiecznie sprawdź debugowanie APK i ustaw ścieżkę klasy if [ -r "$tmpDaemonApk" ]; then java_options="-Djava.class.path=$tmpDaemonApk" debug="true" @@ -12,8 +12,8 @@ else java_options="-Djava.class.path=$dir/daemon.apk" fi -# Apply debug options based on Android SDK version. -# Reference: https://developer.android.com/ndk/guides/wrap-script#debugging_when_using_wrapsh +# Zastosuj opcje debugowania na podstawie wersji Android SDK. +# Odniesienie: https://developer.android.com/ndk/guides/wrap-script#debugging_when_using_wrapsh if [ "$debug" = "true" ]; then os_version=$(getprop ro.build.version.sdk) if [ "$os_version" -eq "27" ]; then @@ -25,22 +25,22 @@ if [ "$debug" = "true" ]; then fi fi -# Mount an empty temporary file system over /data/resource-cache to avoid possible overlay conflicts. -# Note that this script runs inside an isolated mount namespace (via unshare). +# Zamontuj pusty tymczasowy system plików w /data/resource-cache, aby uniknąć potencjalnych konfliktów nakładek. +# Należy pamiętać, że ten skrypt działa w odizolowanej przestrzeni nazw montowania (za pośrednictwem unshare). mount tmpfs -t tmpfs /data/resource-cache -# Wait for Zygote socket using a polling loop +# Poczekaj na gniazdo zygote, używając pętli sondowania if [ ! -S "/dev/socket/zygote" ]; then - # Wait up to ~10 seconds to avoid an infinite hang if something breaks + # Poczekaj do ~10 sekund, aby uniknąć nieskończonego zawieszenia, jeśli coś się zepsuje wait_count=0 while [ ! -S "/dev/socket/zygote" ] &&[ "$wait_count" -lt 100 ]; do sleep 0.1 wait_count=$((wait_count + 1)) done - [ "$debug" = "true" ] && log -p v -t "Vector" "zygote started" + [ "$debug" = "true" ] && log -p v -t "Vector" "zygote uruchomiony" fi -[ "$debug" = "true" ] && log -p d -t "Vector" "Starting daemon $*" +[ "$debug" = "true" ] && log -p d -t "Vector" "Uruchamianie daemon $*" -# Launch the daemon +# Włącz daemon exec /system/bin/app_process $java_options /system/bin --nice-name=lspd org.matrix.vector.daemon.VectorDaemon "$@" >/dev/null 2>&1 From e68ad294de35264c6eefff681d93e8cc9b542d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 17:00:12 +0200 Subject: [PATCH 012/120] Update update.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aktualizacja wersji i linków --- zygisk/update.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zygisk/update.json b/zygisk/update.json index 96fc577a8..b4ead1918 100644 --- a/zygisk/update.json +++ b/zygisk/update.json @@ -1,6 +1,6 @@ { - "version": "v2.0", - "versionCode": 3021, - "zipUrl": "https://github.com/JingMatrix/LSPosed/releases/download/v2.0/Vector-v2.0-Release.zip", - "changelog": "https://raw.githubusercontent.com/JingMatrix/LSPosed/master/zygisk/changelog.md" + "version": "2.0", + "versionCode": 3043, + "zipUrl": "https://github.com/JingMatrix/Vector/releases/download/v2.0/Vector-v2.0-Release.zip", + "changelog": "https://raw.githubusercontent.com/JingMatrix/Vector/master/zygisk/changelog.md" } From 4b74ba99977bd9e97636bf87214450bea94d9950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 17:04:51 +0200 Subject: [PATCH 013/120] Update README.md --- zygisk/README.md | 65 ++++++++++-------------------------------------- 1 file changed, 13 insertions(+), 52 deletions(-) diff --git a/zygisk/README.md b/zygisk/README.md index b3ddf34b6..3c35617e9 100644 --- a/zygisk/README.md +++ b/zygisk/README.md @@ -1,57 +1,18 @@ -# Vector Zygisk Module and Framework Loader +# Moduł Zygisk Vector i moduł ładujący strukturę +Vector nie zapisuje kodu struktury do partycji /data. -## Overview +1. Dostarczanie zasobów: Główny Deamon udostępnia strukturze DEX za pośrednictwem deskryptora pliku `SharedMemory`, używając `kDexTransactionCode`. Warstwa C++ opakowuje ten deskryptor pliku w `java.nio.DirectByteBuffer` i inicjuje `dalvik.system.InMemoryDexClassLoader`. +2. Dynamiczne ponowne linkowanie: Deamon losuje nazwy klas struktury przy każdym uruchomieniu. Moduł natywny pobiera serializowany słownik przez IPC, używając `kObfuscationMapTransactionCode`. `SetupEntryClass` używa tej mapy do lokalizowania losowego punktu wejścia (`org.matrix.vector.core.Main`) i usługi BridgeService, umożliwiając frameworkowi poprawne linkowanie w czasie wykonywania. -This subsystem constitutes the injection engine of the Vector framework. It acts as the bridge between the Android Zygote process and the high-level Java/Kotlin Xposed API. The architecture is designed to avoid standard Android service registration and disk-based class loading, operating entirely through in-memory execution, JNI-level Binder interception, and process identity transplantation. + ## Menedżer pasożytniczy i transplantacja tożsamości -The subsystem is divided into two discrete layers: -1. _Native Zygisk Layer_ (C++): Hooks process creation via Zygisk, filters target processes, establishes the initial IPC bridge, and bootstraps the Dalvik environment from memory. -2. _Framework Loader_ (Kotlin): The Java-world payload. It handles high-level Android framework manipulation, manages the custom Binder routing service, and orchestrates the Parasitic Manager execution. +Aplikacja menedżera Vector nie jest instalowana jako standardowy pakiet. Działa poprzez wydrążenie procesu hosta (np. `com.android.shell`) przy użyciu pasożytniczego modelu wykonywania. -## IPC Architecture and Binder Relay +### Przekierowanie intencji serwera systemowego +W ramach `system_server`, `ParasiticManagerSystemHooker` przechwytuje `ActivityTaskSupervisor.resolveActivity`. Po wykryciu intencji oznaczonej kategorią `LAUNCH_MANAGER` dynamicznie modyfikuje zwrócone dane ActivityInfo. Wymusza na systemie uruchomienie pakietu hosta, ustawiając parametr processName na nazwę pakietu Menedżera i dostosowując flagi motywu i ostatnich zdarzeń, aby naśladować samodzielną aplikację. -Vector utilizes a two-phase IPC routing mechanism to establish communication between injected applications and the root daemon. Instead of registering standard AIDL endpoints with ServiceManager, it intercepts the lowest level of Java Binder communication within the Dalvik VM. - -### The JNI Binder Trap -In `ipc_bridge.cpp`, the module uses the ART internal function `SetTableOverride` to replace the JNI function `CallBooleanMethodV`. This override intercepts all native calls to `android.os.Binder.execTransact` system-wide. - -When a transaction occurs, the hook inspects the transaction code. If it matches the constant kBridgeTransactionCode (`_VEC`), the transaction is diverted to the static Kotlin method `BridgeService.execTransact`. All other transactions pass through to the original Android framework unmodified. - -### Phase 1: System Server Initialization -The `system_server` acts as the primary proxy router for the framework. During the `postServerSpecialize` callback, the following sequence occurs: -1. The native module queries `ServiceManager` for the `serial` service (or `serial_vector` for late-inject scenarios). This service acts as a temporary rendezvous point. -2. The module sends a `_VEC` transaction to retrieve a temporary binder, which it uses to fetch the framework DEX file descriptor and the obfuscation map. -3. The module installs the JNI Binder Trap (`HookBridge`) and bootstraps the Kotlin layer via `Main.forkCommon`. -4. Concurrently, the root daemon initiates a Binder transaction directly to the `system_server`. The JNI trap intercepts this, and BridgeService processes the `SEND_BINDER` action, storing the daemon's primary `IDaemonService` binder, sending back `system_server` context and linking a `DeathRecipient`. - -### Phase 2: User Application Rendezvous -Standard applications initialize their IPC connection by routing requests through the `system_server`. -1. In `postAppSpecialize`, the application queries `ServiceManager` for the `activity` service (which resides in `system_server`). -2. The application sends a `_VEC` transaction containing the `GET_BINDER` action, its process name, and a newly allocated heartbeat `BBinder`. -3. The JNI trap inside `system_server` intercepts this transaction before the Activity Manager processes it. -4. The `system_server`'s BridgeService forwards the application's UID, PID, and heartbeat binder to the root daemon via the `IDaemonService` binder acquired in Phase 1. -5. The daemon evaluates the request against its internal scope state. If approved, it generates an `ILSPApplicationService` binder and returns it to the `system_server`, which writes it back to the waiting application's reply parcel. -6. The application uses this dedicated binder to fetch its specific framework DEX and obfuscation map. - -### The Heartbeat Mechanism -To manage process lifecycles without polling, the native module generates a dummy Binder object (`heartbeat_binder`) during both initialization phases. This object is passed to the daemon and kept alive in the application process via a JNI Global Reference (`env->NewGlobalRef`). If the application or `system_server` terminates normally or is killed by the kernel, the global reference is destroyed, the binder node is released, and the daemon's `DeathRecipient` triggers immediate resource cleanup. - -## Memory Execution and Obfuscation Synchronization - -Vector does not write framework code to the /data partition. - -1. Asset Delivery: The root daemon provides the framework DEX via a `SharedMemory` file descriptor, using `kDexTransactionCode`. The C++ layer wraps this file descriptor in a `java.nio.DirectByteBuffer` and initializes a `dalvik.system.InMemoryDexClassLoader`. -2. Dynamic Relinking: The daemon randomizes framework class names on each boot. The native module fetches a serialized dictionary over IPC, using `kObfuscationMapTransactionCode`. `SetupEntryClass` uses this map to locate the randomized entry point (`org.matrix.vector.core.Main`) and BridgeService, enabling the framework to link correctly at runtime. - -## Parasitic Manager and Identity Transplantation - -The Vector Manager application is not installed as a standard package. It runs by hollowing out a host process (e.g., `com.android.shell`) using a parasitic execution model. - -### System Server Intent Redirection -Within the `system_server`, `ParasiticManagerSystemHooker` intercepts `ActivityTaskSupervisor.resolveActivity`. When it detects an Intent tagged with the `LAUNCH_MANAGER` category, it dynamically modifies the returned ActivityInfo. It forces the system to launch the host package while setting the processName to the Manager's package name and adjusting theme and recents flags to mimic a standalone application. - -### Application Host Hijacking -When the native module detects the host package UID and the Manager process name during `preAppSpecialize`, it injects `GID_INET` (3003) into the process's GID array to ensure network access. Control is then passed to `ParasiticManagerHooker.kt`, which performs the identity transplantation: -1. Code Injection: It intercepts `LoadedApk.getClassLoader` and `ActivityThread.handleBindApplication`, swapping the host's ApplicationInfo with a hybrid object constructed from the manager's APK (provided via file descriptor). The manager's DEX is injected into the host's `PathClassLoader`. -2. State Forgery: The system ActivityManager is unaware of the spoofed Manager activities. To prevent data loss during lifecycle transitions (e.g., screen rotation), the hooker intercepts `performStopActivityInner` to manually capture Bundle and PersistableBundle states into static concurrent maps. These states are reinjected during `scheduleLaunchActivity`. -3. Context Spoofing: It intercepts `ActivityThread.installProvider` and `WebViewFactory.getProvider` to construct forged `ContextImpl` instances, bypassing internal Android and Chromium package-name validation checks. + ### Przejęcie hosta aplikacji +Gdy moduł natywny wykryje identyfikator UID pakietu hosta i nazwę procesu menedżera podczas procedury `preAppSpecialize`, wstrzykuje `GID_INET` (3003) do tablicy identyfikatorów GID procesu, aby zapewnić dostęp do sieci. Kontrola jest następnie przekazywana do `ParasiticManagerHooker.kt`, który przeprowadza transplantację tożsamości: +1. Wstrzyknięcie kodu: Przechwytuje `LoadedApk.getClassLoader` i `ActivityThread.handleBindApplication`, zamieniając obiekt ApplicationInfo hosta na obiekt hybrydowy skonstruowany z pliku APK menedżera (dostarczonego za pośrednictwem deskryptora pliku). DEX menedżera jest wstrzyknięty do `PathClassLoader` hosta. +2. Fałszowanie stanu: Systemowy menedżer aktywności nie jest świadomy podrobionych aktywności menedżera. Aby zapobiec utracie danych podczas zmian w cyklu życia (np. obrotu ekranu), hooker przechwytuje `performStopActivityInner`, aby ręcznie przechwycić stany Bundle i PersistableBundle do statycznych map współbieżnych. Stany te są ponownie wstrzykiwane podczas `scheduleLaunchActivity`. +3. Podszywanie się pod kontekst: Przechwytuje `ActivityThread.installProvider` i `WebViewFactory.getProvider`, aby skonstruować fałszywe instancje `ContextImpl`, omijając wewnętrzne kontrole poprawności nazw pakietów Androida i Chromium. From 5a1c00e09fd17628f6687583c2ec3b92d465747e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 17:29:11 +0200 Subject: [PATCH 014/120] Update build.gradle.kts --- app/build.gradle.kts | 78 ++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ec72cc683..dc942c8d8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,20 +1,20 @@ /* - * This file is part of LSPosed. - * - * LSPosed is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * LSPosed is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with LSPosed. If not, see . - * - * Copyright (C) 2021 LSPosed Contributors +* Ten plik jest częścią Vector. +* +* Vector jest wolnym oprogramowaniem: możesz je redystrybuować i/lub modyfikować +* zgodnie z warunkami Powszechnej Licencji Publicznej GNU, opublikowanej przez +* Fundację Wolnego Oprogramowania, w wersji 3 Licencji lub +* (według własnego wyboru) dowolnej późniejszej wersji. +* +* Vector jest rozpowszechniany z nadzieją, że okaże się użyteczny, +* ale BEZ ŻADNEJ GWARANCJI; nawet bez domniemanej gwarancji +* PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONEGO CELU. Więcej informacji można znaleźć w +* Powszechnej Licencji Publicznej GNU. +* +* Powinieneś otrzymać kopię Powszechnej Licencji Publicznej GNU +* wraz z Vector. W przeciwnym razie zapoznaj się z informacjami na stronie . +* +* Copyright (C) 2026 Współtwórcy Vector */ import java.time.Instant @@ -83,25 +83,25 @@ materialThemeBuilder { themes { for ((name, color) in listOf( - "Red" to "FF0000", - "Pink" to "FFC0CB", - "Purple" to "800080", - "DeepPurple" to "36013F", - "Indigo" to "4B0082", - "Blue" to "0000FF", - "LightBlue" to "ADD8E6", - "Cyan" to "00FFFF", - "Teal" to "008080", - "Green" to "008000", - "LightGreen" to "90EE90", - "Lime" to "00FF00", - "Yellow" to "FFFF00", - "Amber" to "FFBF00", - "Orange" to "FFA500", - "DeepOrange" to "FF8C00", - "Brown" to "964B00", - "BlueGrey" to "6A89A7", - "Sakura" to "FCC9B9", + "Red" to "F44336", + "Pink" to "E91E63", + "Purple" to "9C27B0", + "DeepPurple" to "673AB7", + "Indigo" to "3F51B5", + "Blue" to "2196F3", + "LightBlue" to "03A9F4", + "Cyan" to "00BCD4", + "Teal" to "009688", + "Green" to "4FAF50", + "LightGreen" to "8BC3A4", + "Lime" to "CDDC39", + "Yellow" to "FFEB3B", + "Amber" to "FFC107", + "Orange" to "FF9800", + "DeepOrange" to "FF5722", + "Brown" to "795548", + "BlueGrey" to "607D8F", + "Sakura" to "FF9CA8", )) { create("Material$name") { lightThemeFormat = "ThemeOverlay.Light.%s" @@ -110,10 +110,10 @@ materialThemeBuilder { } } } - // Add Material Design 3 color tokens (such as palettePrimary100) in generated theme - // rikka.material:material >= 2.0.0 provides such attributes - // Enable this if your are using rikka.material:material - generatePalette = false + // Dodaj 3 kolorowe tokeny Material Design (takie jak palettePrimary100) w wygenerowanym motywie + // rikka.material:material >= 2.0.0 zapewnia takie atrybuty + // Włącz tę opcję, jeśli używasz rikka.material:material + generatePalette = true } dependencies { From 5c680455444268429d48f12f286bfd169a96ca07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 17:30:11 +0200 Subject: [PATCH 015/120] Update build.gradle.kts --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dc942c8d8..a712513ef 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,7 +14,7 @@ * Powinieneś otrzymać kopię Powszechnej Licencji Publicznej GNU * wraz z Vector. W przeciwnym razie zapoznaj się z informacjami na stronie . * -* Copyright (C) 2026 Współtwórcy Vector +* Prawo autorskie (C) 2026 współtwórcy Vector */ import java.time.Instant From 1a0dd94ed38e6081db56928ba2c1a601d4f388b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 18:02:26 +0200 Subject: [PATCH 016/120] Update themes.xml --- app/src/main/res/values/themes.xml | 46 +++++++++++++++--------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 407efc99b..255b7418c 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,20 +1,20 @@ @@ -29,11 +29,11 @@ false true - + ?textAppearanceSubtitle1 - + ?colorPrimary - + ?colorPrimary @@ -45,11 +45,11 @@ false true - + ?textAppearanceSubtitle1 - + ?colorPrimary - + ?colorPrimary @@ -67,4 +67,4 @@ 24dp - \ No newline at end of file + From 2980a1a09e0434198dc91d5fae854249edbdfaa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kuchta?= Date: Tue, 9 Jun 2026 18:18:28 +0200 Subject: [PATCH 017/120] Update themes.xml Add ?colorPrimary ?colorPrimary ?android:colorBackground --- app/src/main/res/values/themes.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 255b7418c..5827256b2 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -35,6 +35,9 @@ ?colorPrimary ?colorPrimary + ?colorPrimary + ?colorPrimary + ?android:colorBackground