Anda menekan Connect, profil berputar sekejap dan klien melaporkan terputus. Sokongan meminta log, anda melampirkan tangkapan skrin, dan urutan tersekat dua hari kerana tiada siapa boleh mengatakan bahagian mana handshake yang mengalah. Laporan yang dibina sekitar satu percubaan, dengan tetingkap masa sempit dan peringkat terakhir yang selesai, menggerakkan tiket ke hadapan dalam satu pusingan. Alternatifnya, log telefon sehari penuh, biasanya memberi orang di seberang lebih banyak tempat untuk melihat.

Dua telefon pada gateway yang sama masih boleh berkelakuan berbeza, kerana protokol, stor sijil, kaedah pengesahan atau dasar trafik mungkin tidak sepadan. Ia berfungsi pada telefon saya ialah titik permulaan perbandingan, bukan bukti kegagalan Android.

Tangkap satu percubaan bukan sejarah sehari

Catat persekitaran sebelum menghasilkan semula apa-apa: versi Android, pembuat dan model, nama dan versi klien, profil yang anda pilih, rangkaian yang anda sertai, dan masa jam beserta zon masanya. Saya juga mencatat sama ada penjimat bateri atau Data Saver dihidupkan, kerana kedua-duanya mengubah apa yang klien boleh lakukan selepas skrin dimatikan.

Kemudian tentukan yang mana antara lima hasil yang sebenarnya anda lihat. Gesaan persetujuan atau kebenaran tidak pernah selesai, titik akhir langsung tidak dapat dicapai, pengesahan ditolak, persediaan antara muka gagal selepas log masuk berjaya, atau terowong naik dan satu sumber tertentu kekal tidak dapat dicapai. Setiap satu mempunyai pemilik dan pembaikan berbeza, dan berkas yang mencampurkannya mendapat balasan supaya mencuba lagi. Meneka antara mereka itulah yang menjadikan tiket sejam menjadi seminggu berbalas-balas.

Peralihan juga penting. Jika kegagalan hanya muncul selepas skrin dikunci atau selepas peralihan daripada Wi-Fi ke data mudah alih, tuliskan perkara itu pada baris pertama tiket dan catat minit ia berlaku.

Eksport log klien itu sendiri dahulu

Lampiran pertama sepatutnya datang daripada aplikasi, bukan daripada sistem pengendalian. Kebanyakan klien menyediakan eksport log diagnostik atau log sambungan dalam tetapan, kadangkala tersembunyi di sebalik tekan lama pada rentetan versi, dan eksport itu sudah memahami mesin keadaan sendiri. Gunakannya seperti yang keluar dan bukan menaip semula baris menarik ke dalam badan tiket.

Lampirkan ralat pertama dan peristiwa sejurus sebelum itu, bukan hanya baris terputus terakhir. Ekor yang bersih biasanya bermaksud kegagalan sebenar berlaku lebih awal: rantaian sijil yang tidak disahkan, nama yang diselesaikan di tempat yang tidak dijangka, atau antara muka yang tidak pernah dikonfigurasikan.

Tambah logcat hanya untuk soalan yang boleh anda namakan

Emulator terminal pada telefon bukan pencatat sistem. Android merekodkan penampannya sebagai aliran bulat berasingan yang hanya proses istimewa boleh membaca sepenuhnya. Jadi aplikasi biasa melihat outputnya sendiri serta hirisan terhad, dan dakwaan bahawa logcat kosong membuktikan sangat sedikit tentang apa yang direkodkan oleh platform.

Laluan yang disokong ialah sesi ADB dibenarkan daripada komputer yang anda kawal. Hidupkan pilihan pembangun dan penyahpepijatan USB, sambungkan kabel, dan terima dialog cap jari RSA pada peranti; jika gesaan itu ditutup, setiap arahan berikutnya gagal dengan unauthorized dan tiada tangkapan bermula.

Pastikan peranti benar-benar ada sebelum melaburkan masa dalam tangkapan. adb devices sepatutnya mencetak nombor siri diikuti perkataan device, dan apa-apa yang menunjukkan offline atau unauthorized perlu membereskan kabel, gesaan atau pemacu dahulu.

Setelah tersenarai, mula menangkap beberapa saat sebelum menekan Connect dan berhenti sejurus selepas klien mengalah. Tangkapan langsung dengan permulaan yang disengajakan mengalahkan dump yang diambil dua puluh minit kemudian, kerana penimbal bulat sudah berputar dan baris awal yang anda perlukan mungkin sudah hilang:

adb logcat -v threadtime -b main,system,crash > attempt.txt

Tapis mengikut masa dan tag bukan perkataan VPN

Mencari vpn dalam tangkapan ialah cara terpantas kehilangan baris yang menerangkan kegagalan. Pengesahan sijil, ranap proses dan perubahan kesambungan direkodkan di bawah tag yang tidak pernah menyebut VPN, jadi penapis kata kunci menyimpan bunyi bising dan membuang bukti.

Sempitkan tetingkap dahulu, kemudian keutamaan, kemudian tag. Apabila anda hanya perlukan apa yang berlaku selepas detik yang diketahui, adb logcat -v threadtime -t '11-03 20:14:00.000' memainkan semula ekor terkini dari titik itu, dan format threadtime memastikan cap masa setanding dengan eksport klien sendiri.

Jika anda tahu pakej klien, ikut prosesnya dan jangan meneka tag. adb shell pidof com.vendor.client mengembalikan PID dan adb logcat --pid=1234 -v threadtime mencetak hanya proses itu, manakala adb logcat -g menunjukkan berapa banyak ruang setiap penimbal sebelum ia mula menimpa.

Sorokkan rahsia, kemudian serahkan satu berkas yang koheren

Sebelum apa-apa meninggalkan mesin anda, buang kata laluan, token, kunci peribadi, kuki sesi dan pengecam peranti penuh. Kekalkan kod ralat, urutan peristiwa dan hubungan alamat yang menjadikan kegagalan boleh dibaca, kerana tangkapan yang dibersihkan melepasi titik itu sama tidak berguna seperti yang tidak pernah ditapis.

Kemudian hantar satu berkas dan bukan beberapa fail longgar: eksport klien, tetingkap ADB yang dinamakan dengan masa mula dan berhenti, ringkasan dua baris peringkat yang gagal, dan nota persekitaran dari bahagian atas senarai ini. Jika sebahagiannya tidak boleh disiarkan secara umum, gunakan saluran sokongan peribadi pembekal dan nyatakan fail mana yang memerlukan saluran itu.

Sebelum menghantar, semak empat perkara. Adakah berkas itu merangkumi satu percubaan dan bukan seluruh petang? Adakah cap masa klien dan sistem bertindih? Dan adakah ia masih mengandungi token, kata laluan atau pengecam pelanggan penuh? Betulkan perkara terakhir itu dahulu, kemudian lampirkan fail pada tiket sedia ada dan bukan membuka tiket baharu, supaya sesiapa yang mengambilnya mengekalkan konteks terdahulu.

Artikel berkaitan