Przejdź do treści
Portal poradnikowy

Android 17 zaczyna blokować ciche przekierowanie połączeń kodami USSD — aplikacje nie uruchomią już *21* w tle, a system wymusi potwierdzenie użytkownika

Kod przekierowania połączeń przestaje być dla aplikacji „zwykłym” poleceniem USSD, które można wysłać do sieci w tle. Android 17 QPR2 Beta 3, udostępniony 14 sierpnia 2026 r., wprowadza zabezpieczenie wymierzone w jeden z bardziej podstępnych mechanizmów wykorzystywanych przy oszustwach telefonicznych: nakłonienie ofiary albo aplikacji do uruchomienia przekierowania wszystkich rozmów na numer kontrolowany przez kogoś innego.

Zmiana dotyczy przede wszystkim kodów związanych z call forwarding, w tym kodu usługi 21 używanego przy bezwarunkowym przekazywaniu połączeń. Do tej pory aplikacja posiadająca uprawnienie CALL_PHONE mogła korzystać z TelephonyManager.sendUssdRequest() do wysyłania żądań USSD. W nowym mechanizmie samo to uprawnienie nie wystarczy, jeśli Android rozpozna polecenie dotyczące przekierowania. Standardowa aplikacja próbująca wykonać je programowo dostanie odmowę zamiast odpowiedzi operatora.

Android rozpoznaje już, co aplikacja próbuje zrobić z kodem USSD

Najważniejsza zmiana nie polega na całkowitym zablokowaniu USSD. Android zaczyna analizować rodzaj wysyłanego polecenia i inaczej traktować operacje związane z przekierowywaniem połączeń.

To istotna różnica. USSD nadal jest wykorzystywane przez operatorów do wielu normalnych czynności: sprawdzania stanu usług, salda czy wykonywania innych operacji sieciowych. Google nie wyłącza więc całego mechanizmu. Ograniczenie jest selektywne i obejmuje kody uruchamiające przekierowania połączeń. Zwykłe żądania USSD niezwiązane z ich aktywacją mają działać jak wcześniej.

Technicznie aplikacje mogą korzystać z metody:

TelephonyManager.sendUssdRequest()

API istnieje od Androida 8.0, czyli API 26, i standardowo wymaga uprawnienia CALL_PHONE. W Androidzie 17 QPR2 Beta 3 pojawia się jednak dodatkowa kontrola po stronie systemu. Jeżeli aplikacja spróbuje wysłać w ten sposób kod przekierowania, samo posiadanie CALL_PHONE nie otworzy już drogi do wykonania operacji.

Zamiast tego aplikacja otrzyma poprzez callback błąd:

USSD_ERROR_NOT_ALLOWED

Jego wartość to -3, a znaczenie jest jednoznaczne: żądanie USSD nie zostało wykonane, ponieważ wywołująca je aplikacja nie ma prawa go wysłać. Dla programistów to ważny szczegół, bo nie jest to zwykły błąd sieci ani brak odpowiedzi operatora. Trzeba go obsłużyć osobno i zmienić przebieg konfiguracji przekierowania.

W praktyce aplikacja, która do tej pory miała przycisk „Włącz przekierowanie” i po jego naciśnięciu sama przesyłała polecenie do sieci komórkowej, nie powinna już zakładać, że taki scenariusz zadziała na Androidzie 17 QPR2.

Google wskazuje właściwą ścieżkę migracji: aplikacja może użyć ACTION_DIAL, otworzyć systemowy ekran telefonu i przygotować odpowiedni numer lub kod, ale dalsza operacja wymaga udziału użytkownika. To mały krok w interfejsie, ale duża zmiana z punktu widzenia bezpieczeństwa — aplikacja może doprowadzić użytkownika do właściwego miejsca, lecz nie powinna za jego plecami zmieniać sposobu obsługi przychodzących rozmów.

Kod 21 nie znika. Pojawia się natomiast obowiązkowe potwierdzenie

Użytkownik nadal będzie mógł samodzielnie zarządzać przekierowaniem. Android nie usuwa operatorom usługi ani nie unieważnia kodów sieciowych. Zmienia się moment autoryzacji operacji.

Przy ręcznym wybraniu kodu przekierowania w systemowej aplikacji Telefon Android 17 QPR2 Beta 3 ma wyświetlić systemowe okno potwierdzenia, zanim polecenie zostanie wykonane. Użytkownik dostaje więc dodatkową okazję do zauważenia, że nie wybiera zwykłego numeru telefonu, lecz zmienia ustawienie mające wpływ na wszystkie przyszłe połączenia.

W Polsce ma to szczególne znaczenie, ponieważ przekierowania są normalnie dostępne u największych operatorów i korzystają ze standardowych kodów usług dodatkowych.

Dla bezwarunkowego przekierowania charakterystyczny jest kod usługi 21. W praktyce operatorskiej można spotkać m.in.:

  • **21*numer# — aktywacja bezwarunkowego przekierowania na wskazany numer,

  • ##21# — skasowanie takiego przekierowania,

  • *#21# — sprawdzenie stanu przekierowania, zależnie od implementacji operatora i urządzenia.

Takie kody dokumentują m.in. T-Mobile i Plus, przy czym operator może wymagać konkretnego formatu numeru, np. z prefiksem +48. Plus podaje przykładowo wariant **21*+48xxxxxxxxx#, a T-Mobile również opisuje konfigurację z numerem zapisanym w formacie międzynarodowym.

Trzeba przy tym oddzielić dwie kwestie. Kod 21 sam w sobie nie jest niebezpieczny. Przekierowanie połączeń jest normalną usługą telekomunikacyjną: przydaje się przy numerach firmowych, podczas awarii telefonu, przy korzystaniu z dwóch numerów czy przy kierowaniu rozmów na centralę.

Problem zaczyna się wtedy, gdy użytkownik nie rozumie konsekwencji wykonania polecenia.

Przy bezwarunkowym przekierowaniu telefon ofiary może w ogóle nie zadzwonić. Połączenie trafia bezpośrednio na wcześniej wskazany numer. To szczególnie groźne w scenariuszach socjotechnicznych, gdy oszust wcześniej przekonuje rozmówcę, żeby „wpisał kod techniczny”, „potwierdził zabezpieczenie konta” albo zainstalował aplikację, która ma rzekomo pomóc w rozwiązaniu problemu.

Takie przekierowanie nie daje magicznego dostępu do całej zawartości telefonu i nie jest równoznaczne z jego przejęciem. Może jednak skutecznie przechwytywać przychodzące rozmowy, co w odpowiednio przygotowanym oszustwie jest wystarczająco groźne.

Jest też bardziej przyziemna niedogodność: przekierowanie nie zawsze jest bezpłatne. Model rozliczeń zależy od taryfy operatora. W wielu konfiguracjach to właściciel przekierowanego numeru ponosi koszt odcinka połączenia prowadzącego z jego numeru do numeru docelowego. Plus i Play wprost wskazują taki mechanizm w opisach swoich usług. Dlatego ustawiając przekierowanie firmowe lub prywatne na zwykły numer komórkowy, trzeba najpierw sprawdzić cennik konkretnej taryfy, szczególnie przy roamingu i numerach zagranicznych.

Deweloperzy muszą zmienić przepływ, użytkownicy powinni sprawdzić jedno ustawienie

Dla zwykłego właściciela telefonu zmiana jest korzystna i nie wymaga instalowania dodatkowego zabezpieczenia. Najważniejsze jest zrozumienie nowego komunikatu: jeżeli Android pyta o zgodę na przekierowanie połączeń, nie należy potwierdzać operacji tylko dlatego, że ktoś instruuje nas przez telefon, SMS, komunikator lub stronę internetową.

Jeśli nie zamierzaliśmy właśnie ustawiać przekierowania, właściwa decyzja jest prosta: anulować.

Osoby podejrzewające, że przekierowanie mogło zostać wcześniej włączone, powinny zacząć od sprawdzenia ustawień połączeń w aplikacji Telefon albo użyć kodu kontrolnego obsługiwanego przez operatora. Dla bezwarunkowego przekierowania często jest to *#21#. W polskich sieciach można też spotkać ##002#, służący do kasowania wszystkich przekierowań, ale tego kodu nie należy używać bez zastanowienia. Może usunąć również prawidłowe przekierowania związane z pocztą głosową lub konfiguracją firmową. Przykładowo Plus wykorzystuje przekierowania do obsługi własnej poczty głosowej.

Kolejność działania powinna więc wyglądać tak:

  1. Najpierw sprawdź stan przekierowań, zamiast od razu kasować wszystko.

  2. Jeżeli widzisz obcy numer przy przekierowaniu bezwarunkowym, usuń konfigurację kodem operatora albo z menu telefonu.

  3. Jeżeli korzystasz z poczty głosowej, sprawdź po zmianie, czy nadal działa prawidłowo.

  4. Gdy przekierowanie wraca mimo jego usuwania, skontaktuj się bezpośrednio z operatorem — wtedy trzeba sprawdzić konfigurację usługi po stronie sieci, a nie szukać kolejnej aplikacji „naprawiającej telefon”.

Dla twórców aplikacji priorytet jest inny. Nie należy próbować obchodzić blokady. Jeżeli aplikacja konfiguruje przekierowania, trzeba przygotować ją na USSD_ERROR_NOT_ALLOWED i przenieść operację do przepływu, w którym użytkownik świadomie przechodzi do systemowego dialera.

Najbardziej sensowny schemat to:

  • aplikacja wyjaśnia, jakie przekierowanie zostanie ustawione i na jaki numer,

  • otwiera dialer przez ACTION_DIAL,

  • użytkownik widzi przygotowane polecenie,

  • system pokazuje własne ostrzeżenie,

  • użytkownik zatwierdza operację.

To mniej wygodne niż jedno dotknięcie przycisku w aplikacji. W rozwiązaniach dla central telefonicznych, usług dostępności albo firm zarządzających większą liczbą urządzeń dodatkowy ekran będzie zwyczajnie irytował. Taki jest jednak cel tej zmiany: przekierowania mają przestać być operacją, którą zwykła aplikacja wykonuje niewidocznie dla właściciela telefonu.

Jest przy tym istotne ograniczenie. Na 16 sierpnia 2026 r. mechanizm znajduje się w Androidzie 17 QPR2 Beta 3, więc nie należy opisywać go jeszcze jako zabezpieczenia obecnego na każdym urządzeniu z Androidem 17. QPR-y trafiają później do wspieranych urządzeń jako kwartalne aktualizacje platformy, a producenci spoza linii Pixel mają własne harmonogramy dystrybucji. Obecność Androida 17 w informacji „Wersja systemu” nie oznacza automatycznie, że telefon ma już tę konkretną ochronę.

Dla użytkownika najważniejsza zasada jest więc prostsza niż nazwy API i numery kompilacji: nie wpisuj kodu przekierowania na polecenie osoby, która do ciebie dzwoni, i nie zatwierdzaj systemowego ostrzeżenia, jeśli sam przed chwilą nie rozpocząłeś konfiguracji przekazywania rozmów.

FAQ: Android 17, kody USSD i przekierowanie połączeń

Czy Android 17 całkowicie blokuje kod 21?
Nie. Zabezpieczenie dotyczy przede wszystkim programowego wysyłania kodów przekierowania przez aplikacje oraz wprowadza potwierdzenie przy ręcznej operacji. Sama usługa przekierowania nadal działa.

Czy zwykła aplikacja z uprawnieniem CALL_PHONE nadal może ustawić przekierowanie w tle?
Nie w opisanym mechanizmie Androida 17 QPR2 Beta 3. Próba wysłania kodu przekierowania przez TelephonyManager.sendUssdRequest() przy samym CALL_PHONE ma zostać zablokowana, a aplikacja otrzyma USSD_ERROR_NOT_ALLOWED.

Czy wszystkie kody USSD zostaną teraz zablokowane?
Nie. Google wyraźnie rozdziela kody przekierowania od innych operacji USSD. Żądania niezwiązane z aktywowaniem przekierowania, np. sprawdzanie określonych informacji operatorskich, nie są objęte tą konkretną blokadą.

Jak sprawdzić, czy mam włączone bezwarunkowe przekierowanie?
U polskich operatorów często służy do tego *#21#, ale najpewniejszą metodą jest również sprawdzenie sekcji przekierowania połączeń w ustawieniach telefonu. Obsługę konkretnego kodu należy traktować jako funkcję sieci operatora, a nie Androida.

Czy powinienem wpisać ##002#, żeby dla bezpieczeństwa wyłączyć wszystkie przekierowania?
Nie profilaktycznie. Kod może wyczyścić również przekierowania potrzebne do działania poczty głosowej lub konfiguracji służbowej. Najpierw sprawdź aktywne przekierowania i usuń tylko te, których nie rozpoznajesz.

Czy nowe zabezpieczenie jest już na każdym telefonie z Androidem 17?
Nie. Google wprowadziło je w Androidzie 17 QPR2 Beta 3 z 14 sierpnia 2026 r.. Sam fakt posiadania Androida 17 nie potwierdza jeszcze obecności tej konkretnej zmiany.

Co powinien zrobić twórca aplikacji, która legalnie pomaga ustawiać przekierowanie?
W pierwszej kolejności obsłużyć USSD_ERROR_NOT_ALLOWED, a następnie przebudować proces tak, aby otwierał systemową aplikację Telefon przez ACTION_DIAL i zostawiał ostateczne zatwierdzenie użytkownikowi. To kierunek migracji wskazany przez Google.

Redakcja

Uwielbiam odkrywać ciekawe tematy i przekładać zdobytą wiedzę na przydatne poradniki. Piszę przede wszystkim z myślą o czytelnikach, którzy cenią konkret, prosty język i praktyczne rozwiązania.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *