7

Jak korzystać z protokołu SCTP w systemie Android?Obsługa protokołu SCTP w systemie Android

Jestem już świadomy, że te systemy Android nie obsługują domyślnie SCTP, jednak może być możliwe włączenie go przez wstawienie modułu jądra SCTP lub przebudowanie jądra z włączonym SCTP w konfiguracji modułów.

Potrzebuję wglądu w tę kwestię. Czy to możliwe? Jak sprawić, by android obsługiwał protokół? Jak zbudować moduł jądra i wstawić go poprawnie? Jeśli moglibyśmy udowodnić, że system go obsługuje, w jaki sposób możemy korzystać z protokołu? Czy Java API na Androida obsługuje SCTP?

Odpowiedz

8

Idziemy o to z modułem we właściwy sposób. Aby odpowiedzieć na Twoje pytania:

  • SCTP jest już dostarczono jako moduł jądra w drzewie źródłowym Linux - „CONFIG_IP_SCTP = M” pozwoliłoby tego modułu. Możesz zmienić to na "y" na twardy link, choć jest to prawdopodobnie niewykonalne, ponieważ musisz przebudować całe jądro.

  • Moduł musiałby zostać zbudowany na podstawie wersji jądra. Więc w zasadzie na jednego dostawcę, musisz zdobyć jego źródła jądra (możliwe do wykonania), a następnie skompilować moduł do niego.

użycia: w trybie użytkownika - czy utworzyć gniazdo wywołując s = gniazdo (AF_INET [6] SOCK_STREAM IPPROTO_SCTP); Od tego momentu interfejsy API gniazd działają dokładnie tak samo, z kilkoma wyjątkami (mianowicie setsockopt, który jest szczególny dla typu protokołu).

Z Java - w rzeczywistości obsługuje protokół w swoich najnowszych wcieleniach (JDK7 od etapu 3), ale ta obsługa Javy nie oznacza, że ​​robi to Dalvik ("java vm" systemu Android). Chociaż Android ma wsparcie SCTP "w gotowości", to jeszcze nie jest w Dalvik (przynajmniej nie w 4.2). Można jednak utworzyć klasę Java, tak jak w pakiecie, która otoczy bibliotekę macierzystą wywołaniami SCTP. Jest nieco trudniejsze w systemie Android ze względu na uprawnienia NET, ale nadal można nim zarządzać (z doświadczenia).

+0

Dzięki za przydatną odpowiedź. Mam zamiar zbudować moduł dla emulatora Androida, źródło jądra jest dostępne przez kryptonim goldfish. Czy możesz mnie poprowadzić lub odesłać do instrukcji, więc mogę zbudować moduł dla konkretnego jądra. Również w jaki sposób mogę uczynić moduł trwałym, wstawiając moduł za każdym razem podczas rozruchu. – Meti

+1

Podczas testowania - aby moduł był trwały - najlepiej jest zmodyfikować /init.rc. Jeśli chodzi o instrukcje, to jest częścią budowania jądra Linux. Pobierz drzewo źródłowe odpowiedniego jądra, a następnie przejdź do katalogu dla sctp (./net/sctp, jeśli pamięć służy). A potem rób to. To spowoduje powstanie .ko. Upewnij się, że kompilujesz używając NDK, więc przekompilujesz się do ARM, jeśli korzystasz z urządzenia. – Technologeeks

Powiązane problemy