Ringkasan

Fungsi pemantauan dan pelacakan penggunaan data per aplikasi/delegasi bergantung pada modul xt_qtaguid di kernel Android-3.0 Linux ( kernel/net/netfilter/xt_qtaguid ). Fungsi penandaan soket dalam kerangka kerja ( system/core/libcutils/qtaguid.c ) terutama bergantung pada keberadaan antarmuka /proc/net/xt_qtaguid/ctrl yang diekspor oleh modul kernel xt_qtaguid .

Modul quota2 netfilter (awalnya bagian dari xtables-addons ) memungkinkan fungsionalitas untuk menetapkan batas kuota bernama dan diperluas untuk mendukung memberi tahu ruang pengguna ketika batas tertentu tercapai. Setelah batas kuota tercapai, modul quota2 membuang semua lalu lintas jaringan berikutnya. Kerangka kerja juga dapat menentukan aturan tambahan untuk membatasi lalu lintas data latar belakang untuk aplikasi (lihat com.android.server.NetworkManagementSocketTagger.setKernelCounterSet dan android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND ).

Bagaimana cara kerjanya?

Modul qtaguid netfilter melacak lalu lintas jaringan pada basis per soket untuk setiap aplikasi menggunakan UID unik dari aplikasi yang memiliki. Ada dua komponen tag yang terkait dengan soket apa pun di sistem. Yang pertama adalah UID yang secara unik mengidentifikasi aplikasi yang bertanggung jawab untuk transfer data (Linux memungkinkan kemampuan untuk menganggap kepemilikan setiap soket jaringan ke UID dari aplikasi panggilan). Komponen tag kedua digunakan untuk mendukung karakterisasi tambahan lalu lintas ke dalam kategori yang ditentukan pengembang aplikasi. Dengan menggunakan tag level aplikasi ini, aplikasi dapat membuat profil lalu lintas ke dalam beberapa subkategori.

Dalam hal aplikasi yang menyediakan transfer data jaringan sebagai layanan, seperti pengelola unduhan, layanan streaming media, dll, dimungkinkan untuk mengaitkan kepemilikan transfer data jaringan ke UID dari aplikasi yang meminta menggunakan TrafficStats.setThreadStatsUid() panggilan fungsi. Penelepon harus memegang izin " android.permission.MODIFY_NETWORK_ACCOUNTING " untuk menetapkan kembali kepemilikan lalu lintas jaringan.