Android işletim sistemi standart Linux ağ iletişim yardımcı programlarını içerir
ifconfig
, ip
ve ip6tables
gibi.
Bu yardımcı programlar sistem görüntüsünde bulunur ve
tüm Linux ağ iletişimi yığınıdır. Android 7.x ve önceki sürümleri çalıştıran cihazlarda
Bu ikili programların doğrudan çağrılmasına izin verilir. Bu da
şu sorunları çözer:
- Ağ yardımcı programları sistem görüntüsünde güncellendiğinden kararlı bir uygulamadır.
- Ağ iletişimi yardımcı programların kapsamı o kadar geniş ki evrilmeleri zor sistem görüntüsü sağlar.
Android 8.0 ve sonraki sürümleri çalıştıran cihazlarda satıcı bölümü aynı kalır ancak sistem bölümü bir güncelleme alır. Bunu başarmak için Android 8.0 bir yandan sabit, sürümlü bir arayüz tanımlarken diğer yandan da Tedarikçi firma ve sistem görüntüsünün birbirlerine bağımlılığını iyi bir set.
Tedarikçiler, platform tarafından sağlanan ağ yapılandırma yardımcı programlarını kullanarak
yapılandıramazsınız, ancak bu yardımcı programlar henüz
HIDL arayüz sarmalayıcı. Android 8.0, böyle bir arayüzü tanımlamak için
netutils-wrapper-1.0
aracı.
Netutils sarmalayıcı
netutils
sarmalayıcı yardımcı programı, Linux'un bir alt kümesini sağlar
sistem bölümü güncellemelerinden etkilenmeyen ağ yığını yapılandırması.
Android 8.0, sarmalayıcıların
Bu yardımcı programlarla aynı bağımsız değişkenler,
/system/bin
şöyle:
u:object_r:system_file:s0 /system/bin/ip-wrapper-1.0 -> netutils-wrapper-1.0 u:object_r:system_file:s0 /system/bin/ip6tables-wrapper-1.0 -> netutils-wrapper-1.0 u:object_r:system_file:s0 /system/bin/iptables-wrapper-1.0 -> netutils-wrapper-1.0 u:object_r:system_file:s0 /system/bin/ndc-wrapper-1.0 -> netutils-wrapper-1.0 u:object_r:netutils_wrapper_exec:s0 /system/bin/netutils-wrapper-1.0 u:object_r:system_file:s0 /system/bin/tc-wrapper-1.0 -> netutils-wrapper-1.0
Sembol bağlantılar, netutils
ile sarmalanmış ağ yardımcı programlarını gösterir.
sarmalayıcı içerir:
ip
iptables
ip6tables
ndc
tc
Bu yardımcı programları Android 8.0 ve sonraki sürümlerde kullanmak için satıcının uygulamaları şu kurallara uymanız gerekir:
- Tedarikçi süreçleri yürütülmemelidir
/system/bin/netutils-wrapper-1.0
doğrudan; şunları yapmaya çalışır: hata ile sonuçlanır. netutils-wrapper-1.0
tarafından sarmalanan tüm yardımcı programlar başlatılmalıdır alerjik reaksiyona neden olabilir. Örneğin, bunu daha önce yapan tedarikçi kodunu (/system/bin/ip <FOO> <BAR>
) -/system/bin/ip-wrapper-1.0 <FOO> <BAR>
.- Platformda, alan geçişi olmadan sarmalayıcıların yürütülmesi yasaktır. SELinux politikası. Bu kural değiştirilmemelidir ve Android Uyumluluk Test Paketi (CTS)
- Yardımcı programları doğrudan yürütme (ör.
/system/bin/ip <FOO> <BAR>
) platform SELinux politikalarında da yasaklanmıştır. Bu kural, CTS'de karşılaştırılarak test edilir. - Sarmalayıcı başlatması gereken herhangi bir tedarikçi firma alanı (işlem),
SELinux politikasında aşağıdaki alan geçiş kuralını uygulayın:
domain_auto_trans(VENDOR-DOMAIN-NAME, netutils_wrapper_exec, netutils_wrapper)
Netutils sarmalayıcı filtreleri
Sarmalanmış yardımcı programlar, Linux'un neredeyse tüm özelliklerini yapılandırmak için kullanılabilir. ağ iletişimi yığını. Ancak, istikrarlı bir tutarlılığı korumak mümkün olduğundan arayüze sahip olduğunu ve sistem bölümünün güncellenmesine izin verdiğini, yalnızca belirli kombinasyonların komut satırı bağımsız değişkenine izin veriliyor; diğer komutlar reddedilir.
Tedarikçi arayüzleri ve zincirler
Sarmalayıcı, bir tedarikçi firma arayüzü kavramına sahiptir. Bunlar, genellikle hücresel veri arayüzleri gibi tedarikçi firma kodu tarafından yönetilir. Genellikle, Wi-Fi gibi diğer arayüz türleri de HAL'ler ve bahsedeceğim. Sarmalayıcı, tedarikçi arayüzlerini ada göre tanır (normalde ifade) sağlar ve tedarikçi kodunun üzerinde birçok işlem yapmasına olanak tanır. Şu anda tedarikçi arayüzleri şunlardır:
- Adları "oem" ile biten arayüzler ve ardından şuna benzer bir sayı gelir:
oem0
veyar_oem1234
. - Mevcut SOC ve OEM uygulamaları tarafından kullanılan arayüzler; ör.
rmnet_data[0-9]
Genellikle çerçeve tarafından yönetilen arayüzlerin adları (ör.
wlan0
) hiçbir zaman tedarikçi firma arayüzü değildir.
Sarmalayıcı da benzer bir tedarikçi firma zincirleri kavramına sahiptir. Bunlar kullanılır
iptables
komutlarında kullanılır ve adlarıyla da tanınır. Şu anda,
tedarikçi zincirleri:
oem_
ile başlayın.- Mevcut SOC ve OEM uygulamaları tarafından kullanılır (ör.
nm_
veyaqcom_
.
İzin verilen komutlar
Şu anda izin verilen komutlar aşağıda listelenmiştir. Kısıtlamalar
yürütülen komut satırlarında bir dizi normal ifadedir. Ayrıntılı bilgi için
system/netd/netutils_wrappers/NetUtilsWrapper-1.0.cpp
numaralı telefona.
ip
ip
komutu; IP adreslerini, yönlendirmeyi ve IPsec'i yapılandırmak için kullanılır.
şifreleme ve bir dizi başka ağ parametresi içerir. Sarmalayıcı,
şu komutları kullanın:
- Tedarikçi firma tarafından yönetilen arayüzlerde IP adresleri ekleme ve kaldırma.
- IPsec şifrelemesini yapılandırın.
iptables ve ip6tables
iptables
ve ip6tables
komutları şu amaçlarla kullanılır:
Güvenlik duvarı, paket yönetme, NAT ve diğer paket başına işlemleri yapılandırma.
Sarmalayıcı aşağıdaki komutlara izin verir:
- Tedarikçi zincirlerini ekleyin ve silin.
- Şuraya giden paketlere işaret eden herhangi bir zincirde kurallar ekleyin ve silin:
(
-i
) veya (-o
) tedarikçi arayüzü arasından. - Başka bir zincirdeki herhangi bir noktadan tedarikçi zincirine atlayın.
ND
ndc
, netd
arka plan programıyla iletişim kurmak için kullanılır.
Android'de çoğu ağ yapılandırmasını gerçekleştirir. Sarmalayıcı aşağıdakilere izin verir:
komutları:
- OEM ağları oluşturun ve kaldırın (
oemXX
). - OEM ağlarına tedarikçi firma tarafından yönetilen arayüzler ekleme.
- OEM ağlarına rota ekleyin.
- IP yönlendirmeyi global olarak ve tedarikçi arayüzlerinde etkinleştirin veya devre dışı bırakın.
tc
tc
komutu, trafiği sıraya alma ve şekillendirmeyi yapılandırmak için kullanılır.
çok faydalı oluyor.