Prosiłbym abyś rozwinął kwestie techniczne które tu poruszyłeś, czyli czym jest "natywny proces" i "łatka na jądro" oraz jak to działa.
Zupełnie analogicznie jak na komputerze PC. Wszystkie aplikacje i usługi jakie widzisz w androidzie są instalowane z plików apk. Plik apk nie jest wykonywany bezpośrednio przez procesor, a przez maszynę wirtualną javy, którą w Androidzie jest Dalvik. Zupełnie podobnie, jak pliki .jar na komputerze.
To co widzi użytkownik na ekranie i te aplikacje, które figurują jako zainstalowane, to wszystko pliki .apk, zarządzane przez wspomnianego Dalvika.
No dobrze, więc czym są procesy i programy natywne? Ano programy które są wykonywane przez procesor telefonu bezpośrednio, działając warstwę niżej. Nie wgłębiając sie w szczegóły techniczne, takie programy mają następujące cechy:
- niewidoczne nigdzie i nigdy jako zainstalowane (poprzez zarządzanie aplikacjami Androida)
- zawsze mają dostęp do wszystkiego, co może robić telefon (np do wysyłania/odbierania danych przez sieć), a ich działalności normalnie nigdzie nie widać
- nie mogą wyświetlać okien na ekranie (akurat w Androidzie nie mogą, bo filozofia Androida taka właśnie jest). Chociaż to że nie mogą to trochę nadużycie, bo jest możliwe stworzenie programu natywnego który wyświetliłby (po odpowiednich zmianach w systemie) okno na ekranie telefonu. Na normalnym PC większość aplikacji .exe to aplikacje natywne (oprócz tych napisanych w .NET ale to inna historia).
Ok, a łatki na kernel - co to? Nie wiem czy słyszeliście nieraz "dziura w Windowsie, Microsoft wydał poprawkę". Kernel to mózg systemu Android (zresztą każdego systemu, Windowsa też). To on bezpośrednio zarządza sprzętem, decyduje jaka aplikacja i co może zrobić a czego nie może, jak aplikacja chce np coś wysłać przez sieć albo wygasić ekran, to prosi kernela o zrobienie tego (duuuuże uproszczenie).
Ale co by było, gdyby ktoś celowo zmodyfikował kernel, tak żeby działał na niekorzyść użytkownika? Np każde polecenie wygaszenia ekranu powodowałoby, że idzie komunikat przez sieć że ekran został wygaszony? W przypadku androida to łatwe bo Android to system OpenSource, łatwo przygotować własny zmodyfikowany kernel. Czyli ktoś celowo przygotuje kernel z "dziurami", które powodują że druga strona ma kompletny dostęp do wszystkiego co sie znajduje w telefonie, bez praktycznie żadnej możliwości wykrycia że jest coś nie tak. Nigdzie nie ma żadnej podejrzanej aplikacji (nawet tej ukrytej, natywnej której obecność zresztą znawca łatwo może wykryć), a dane wyciekają z telefonu.
Dodatkowo kolejna (znacznie prostsza do realizacji) możliwość - zmodyfikowana aplikacja do wysyłania sms (gdzie oprócz wysłania smsa do właściwego odbiorcy wyśle go np do jeszcze kogoś), zmodyfikowana aplikacja do dzwonienia itd. Możliwości wiele, możliwości wykrycia małe.