Perbaiki kondisi kandidat dan reproduksi

File dengan nama yang sama mungkin berasal dari build, identitas penandatanganan, atau pengaturan perlindungan yang berbeda. Catat paket, versi, intisari sertifikat, intisari file, konfigurasi proteksi, perangkat, sistem, dan jalur instalasi.

Siapkan garis dasar tidak terlindungi yang cocok dan reproduksi dengan akun, jaringan, status data, dan entri peluncuran yang sama. Kondisi yang tidak konsisten membuat atribusi tidak dapat diandalkan.

  • Memperbaiki file dan identitas penandatanganan
  • Memperbaiki perangkat dan versi sistem
  • Jalur pemasangan atau pemutakhiran yang sama
  • Akun, jaringan, dan data yang sama

Temukan tahap peluncuran aplikasi divergen yang paling awal

Pisahkan peluncuran aplikasi menjadi pembuatan proses, inisialisasi aplikasi, pekerjaan ContentProvider, pemuatan kelas, pemuatan asli, sumber daya layar pertama, dan entri bisnis. Catat di mana kandidat pertama kali menyimpang.

Perbedaan paling awal sering kali lebih berguna dibandingkan kesalahan akhir. Kegagalan selanjutnya mungkin bersifat sekunder, dan mengubah pengaturan di sekitar bingkai tumpukan terakhir dapat menyembunyikan penyebab sebenarnya.

Periksa titik kompatibilitas umum berdasarkan operator

Untuk Java dan Kotlin, periksa refleksi, pemuatan dinamis, serialisasi, anotasi, dan entri yang bergantung pada nama. Untuk kode asli, periksa ABI, dependensi, registrasi JNI, visibilitas, dan urutan inisialisasi.

Sumber daya dan SDK pihak ketiga mungkin bergantung pada manifes, jalur file, pemeriksaan integritas, WebView, sistem perbaikan terbaru, atau logika anti-perusakannya sendiri. Ubah satu variabel pada satu waktu.

  • Refleksi dan pembebanan dinamis
  • Pendaftaran dan ketergantungan JNI
  • Manifest dan jalur sumber daya
  • Pemeriksaan mandiri pihak ketiga

Kembali ke cakupan rilis setelah perbaikan

Menghapus satu kerusakan pada satu perangkat hanya menyelesaikan titik reproduksi tersebut. Jalankan kembali instalasi, peningkatan, peluncuran aplikasi, jalur bisnis penting, sistem target, dan rollback pada identitas kandidat yang sama.

Tandai perangkat atau versi sistem yang tidak tersedia sebagai cakupan rilis yang tidak tertutup dan sempit. Bukti dari versi lain tidak menggantikan cakupan kompatibilitas yang hilang.

Terapkan panduan tersebut ke aplikasi nyata

Menyediakan tumpukan, jalur kritis, sistem target, dan kandidat saat ini sehingga Yudun dapat merekomendasikan tinjauan perlindungan dan kompatibilitas yang terfokus.