Mengkonfigurasi perilaku portal captive
captive_portal_detection_enabled
(<= Android 7.1.1)
- berfungsi seperti yang dijelaskan dalam badan pertanyaan
captive_portal_mode
(> = Android 7.1.2)
- berfungsi seperti yang dijelaskan dalam badan pertanyaan
Mengatur URL portal captive
captive_portal_server
(<= Android 6.0.1)
- Server yang menyimpan
generate_204
halaman, yang digunakan untuk membuat URL secara internal untuk deteksi portal captive ( new URL("http", mServer, "/generate_204");
- usang pada Android 7.0, lihat di bawah)
captive_portal_use_https
(> = Android 7.0)
0
: Jangan gunakan HTTPS untuk validasi jaringan
1
: Gunakan HTTPS (default)
captive_portal_http_url
(> = Android 7.0)
- URL yang digunakan untuk deteksi portal captive HTTP - digunakan berpasangan dengan
captive_portal_use_https
(disetel ke 0
)
- > = Android 7.1.1: OS tidak lagi menambahkan
generate_204
URL secara otomatis, memberikan beberapa URL input fleksibilitas
captive_portal_https_url
(> = Android 7.0)
- URL yang digunakan untuk deteksi portal captive HTTPS - digunakan berpasangan dengan
captive_portal_use_https
(disetel ke 1
)
- > = Android 7.1.1: OS tidak lagi menambahkan
generate_204
URL secara otomatis
Persyaratan untuk URL yang akan digunakan
Kode respons HTTP 204 ("tidak ada konten") dari server digunakan untuk validasi, tidak ada konten tambahan yang diperlukan: ambil URL deteksi default misalnya, curl clients3.google.com/generate_204
pengembalian kosong, dan periksa respons HTTP dengan menambahkan --write-out %{http_code}
pengembalian 204
. '
Daftar kecil URL server portal captive yang dapat digunakan di daratan Tiongkok (diuji secara pribadi)
https://captive.v2ex.co/generate_204 (di-host oleh v2ex.com)
https://connect.rom.miui.com/generate_204 (dihosting oleh Xiaomi, digunakan secara default di MIUI)
https://noisyfox.cn/generate_204 (di-host oleh noisyfox.cn)
https://www.google.cn/generate_204 & https://developers.google.cn/generate_204 (di-host oleh Google)
https://www.qualcomm.cn/generate_204 (di-host oleh Qualcomm)
Catatan selanjutnya
Sumber juga menyebutkan parameter captive_portal_user_agent
, captive_portal_fallback_url
dan captive_portal_other_fallback_urls
:
captive_portal_fallback_url
(> = Android 7.1.1) jelas seharusnya memiliki satu URL, sementara
captive_portal_other_fallback_urls
menyimpan beberapa URL lebih lanjut (daftar yang dipisahkan koma, sehingga URL mungkin tidak mengandung koma apa pun).
Tapi saya pribadi melakukan tes pada Android 8.0.0, dan kedua parameter fallback tidak berfungsi. Dengan asumsi mereka deklarasi tanpa implementasi untuk saat ini.
Beberapa contoh pengaturan portal captive dari Android di Cina menunjukkan penggunaan beberapa pengaturan di atas:
pengaturan shell adb menempatkan captive_portal_http_url global http://www.google.cn/generate_204
pengaturan shell adb menempatkan captive_portal_https_url global https://www.google.cn/generate_204
pengaturan shell adb menempatkan captive_portal_fallback_url global http://www.google.cn/generate_204
pengaturan shell adb menempatkan captive_portal_other_fallback_urls global http://www.qualcomm.cn/generate_204
Mengetahui hal itu, "timah timah" bahkan dapat mengatur layanan verifikasi mereka sendiri. Dengan Apache:
Tulis Ulang Hidup
RewriteCond% {REQUEST_URI} / menghasilkan_204 $
RewriteRule $ / [R = 204, L]
atau dengan Nginx:
location / generate_204 {return 204; }
Referensi
1 , 2 (Cina), 3 (Cina)
new URL("http", mServer, "/generate_204");
(denganmServer
diinisialisasi olehcaptive_portal_server
jika diatur) - jadi ini hanya nama server (atau IP) di sana (yang kemungkinan besar salah satu alasan mengapa gagal bagi saya pada perangkat MM). Tidak yakin kapan itu berubah - tetapi dari apa yang Anda tulis mungkin dengan N. Untuk 204, saya telah menemukan ini - jadi sepertinya saya berasumsi benar: hanya kode 204, tidak ada konten.