Android USB reverse tethering: Cara mengelabui aplikasi

18

USB reverse tethering = Ponsel mendapat koneksi jaringan dari PC melalui USB.

Saya tahu cara melakukan tethering terbalik USB kecuali untuk satu masalah: Banyak aplikasi Android akan memeriksa koneksi jaringan menggunakan kode di bawah ini sebelum melakukan pekerjaan yang berguna:

ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivityManager.getActiveNetworkInfo();

Masalahnya adalah bahwa, ketika menggunakan USB reverse tethering, kode di atas tidak akan melaporkan koneksi jaringan. Namun, ada koneksi jaringan (yang merupakan penambatan terbalik USB itu sendiri), dan ping, wget dan semua program tidak melakukan pemeriksaan bodoh ini bekerja dengan baik.

Jadi pertanyaannya adalah: Bagaimana saya bisa meretas sistem untuk membiarkan koneksi jaringan ini memeriksa keberhasilan pengembalian (sehingga saya dapat menipu aplikasi ini)?

BTW. Saya menggunakan Cyanogenmod 7. Dan setiap solusi khusus untuk MOD ini juga diterima.

Cyker
sumber
Pertanyaan ini membahas masalah yang sama dengan android.stackexchange.com/questions/11728/…
Flow
Tony Beta Lambda memposting solusi yang valid — Anda harus mempertimbangkan untuk menerimanya.
Michaël

Jawaban:

5

Saya melihat bahwa ini adalah pertanyaan yang agak lama tetapi kalau-kalau ada orang yang googled dan tiba di sini. Ada modul yang cukup baru yang disebut FakeWifiConnection berdasarkan kerangka kerja Xposed. Instalasi dan penggunaannya harus cukup mudah.

Tony Beta Lambda
sumber
Itu hebat; Anda harus memposting jawaban yang sama di android.stackexchange.com/questions/11728/…
Michaël
@ Michaël Saya pikir pertanyaan itu ditandai duplikat
Tony Beta Lambda
9

Saya akan mengatakan bahwa hanya ada solusi spesifik Mod. Hampir setiap Aplikasi yang saya tahu menggunakan API Android ini, dan karena itu kode terpotong dalam pertanyaan Anda, untuk pemeriksaan konektivitas jaringan.

Seseorang perlu mengubah sumber Cyanogen sehingga OS (Android + Cyanogen) menyadari USB membalikkan konektivitas jaringan tethering dan mengembalikan informasi yang tepat ke aplikasi yang meminta status jaringan saat ini. Saya tidak percaya bahwa ini dapat dilakukan dengan beberapa lapisan buatan antara API dan aplikasi yang "menipu" aplikasi ke dalam ini. Lebih realistis bahwa Cyanogen mengimplementasikan penanganan reverse tethering dengan meniru koneksi WiFi aktif. Anda harus meminta mereka untuk membahas topik ini. Mungkin di masa depan Android memiliki dukungan resmi untuk tethering terbalik. :)

Mengalir
sumber