rumah - Internet
Cara menggunakan fitur penandatanganan aplikasi di Google Play. Cara menandatangani aplikasi seluler hybrid Anda untuk penempatan di Google Play Cara menandatangani file apk

Berkat fitur masuk aplikasi Google Play Google dapat mengelola kunci penandatanganan aplikasi Anda, serta melindungi kunci tersebut dan menggunakannya untuk menandatangani file APK Anda untuk didistribusikan. Metode penyimpanan ini akan melindungi Anda jika kunci hilang atau diretas.

Penting! Untuk menggunakan Android App Bundle (format publikasi aplikasi yang direkomendasikan), Anda harus mendaftar ke Program Penandatanganan Aplikasi Google Play sebelum mengupload App Bundle ke Konsol Play.

Pendaftaran terbuka untuk pemegang akun dan pengguna dengan izin manajemen produksi global yang telah menerima Ketentuan Layanan. Anda hanya dapat mendaftarkan satu aplikasi dalam satu waktu dengan Program Penandatanganan Aplikasi Google Play.

Prinsip kerja

Saat Anda menggunakan fitur penandatanganan aplikasi Google Play, kunci Anda disimpan di infrastruktur yang sama dengan tempat menyimpan kunci Google, dan dilindungi oleh layanan pengelolaan kunci khusus. Informasi rinci Infrastruktur teknis Google dapat ditemukan di dokumentasi Keamanan Google Cloud.

Aplikasi Android ditandatangani dengan kunci pribadi. Setiap kunci tersebut dikaitkan dengan sertifikat publik, yang dengannya perangkat dan layanan dapat memverifikasi keamanan aplikasi dan pembaruannya. Hanya pembaruan yang tanda tangannya cocok dengan tanda tangan yang diinstal pada perangkat aplikasi yang diinstal. Mengizinkan Google mengelola kunci penandatanganan aplikasi Anda akan membuat prosesnya lebih aman.

Catatan. Menggunakan fitur penandatanganan aplikasi Google Play bersifat opsional. Anda dapat mendownload APK dan mengelola kunci Anda sendiri tanpa menggunakan App Bundle. Namun, jika Anda kehilangan akses ke keystore atau disusupi, Anda tidak akan dapat memperbarui aplikasi Anda dan harus menerbitkannya ulang dengan nama paket yang berbeda.

Deskripsi kunci, objek, dan alat
Kondisi Keterangan
Kunci penandatanganan aplikasi

Kunci yang digunakan oleh Google Play untuk menandatangani file APK yang dikirimkan ke perangkat pengguna. Saat Anda mendaftar ke Program Penandatanganan Aplikasi Google Play, Anda dapat mengunduh kunci yang ada tanda tangan atau biarkan Google membuat yang baru.

Kunci unduhan

Ada dua cara untuk menghasilkan kunci unduhan:

  • Gunakan kunci penandatanganan aplikasi. Jika Anda mengizinkan Google membuat kunci penandatanganan aplikasi saat Anda mendaftar ke program ini, kunci upload akan menjadi kunci yang Anda gunakan untuk menandatangani rilis pertama aplikasi.
  • Gunakan kunci unduhan terpisah. Jika Anda memberikan kunci penandatanganan aplikasi Anda sendiri saat mendaftar untuk program ini, Anda dapat menghasilkan kunci baru unduhan. Jika Anda tidak ingin melakukan ini, gunakan kunci penandatanganan aplikasi sebagai kunci unduhan untuk menandatangani rilis baru.
Sertifikat (.der atau .pem)

Sertifikat yang berisi kunci publik dan Informasi tambahan tentang pemiliknya. Sertifikat kunci publik memberi tahu siapa pun siapa yang menandatangani App Bundle atau file APK. Sertifikat ini dapat dibagikan karena tidak menyertakan kunci pribadi.

Untuk mendaftarkan kunci Anda ke penyedia API, Anda dapat mendownload sertifikat publik untuk kunci penandatanganan aplikasi Anda Menandatangani aplikasi di Konsol Play. Sertifikat kunci publik dapat dibagikan kepada semua orang karena tidak menyertakan kunci pribadi.

Sidik jari digital dari sertifikat

Pengidentifikasi singkat dan unik untuk sertifikat. Sidik jari beserta nama paket sering diminta oleh penyedia API untuk memberikan akses ke layanan mereka.

Sidik jari digital unduhan MD5, SHA-1 dan SHA-256 serta sertifikat tanda tangan aplikasi dapat ditemukan di halaman Menandatangani aplikasi di Konsol Play. Anda mungkin juga menerima jenis sidik jari digital yang berbeda. Untuk melakukannya, unduh sertifikat asli dalam format DER di halaman yang sama.

Penyimpanan Kunci Java (.jks atau .keystore) Penyimpanan sertifikat keamanan dan kunci pribadi.
alat PEPK

Alat untuk mengekspor kunci pribadi dari penyimpanan Java dan mengenkripsinya untuk ditransfer ke Google Play.

Setelah Anda memberikan kunci penandatanganan aplikasi kepada Google, pilih untuk mengekspor dan mendownload kunci Anda sendiri (dan secara opsional sertifikat publiknya), lalu ikuti petunjuk untuk mendownload dan menggunakan alat tersebut. Anda juga dapat mengunduh, melihat, dan menggunakan alat PEPK sumber terbuka.

Proses penandatanganan aplikasi

Anda dapat mendownload file APK yang ditandatangani dengan kunci penandatanganan aplikasi asli sebelum atau setelah menandatangani aplikasi di Google Play.

Jika bermigrasi ke Android App Bundle, Anda dapat mengujinya dalam versi pengujian dan menggunakan APK yang ada dalam versi produksi. Begini cara kerjanya:

  1. Anda menandatangani App Bundle atau APK dan menguploadnya ke Konsol Play.
  2. Proses penandatanganan aplikasi bergantung pada apa yang Anda unduh.
    • Paket Aplikasi. Google mengoptimalkan file APK dari App Bundle dan kemudian menandatanganinya dengan kunci penandatanganan aplikasi.
    • File APK ditandatangani dengan kunci unduhan. Google memverifikasi tanda tangan Anda, menghapusnya, dan menandatangani ulang APK dengan kunci penandatanganan aplikasi.
    • File APK yang ditandatangani dengan kunci penandatanganan aplikasi. Google memverifikasi tanda tangannya.
  3. Google mengirimkan file APK yang ditandatangani kepada pengguna.

Cara Mendaftar ke Program Penandatanganan Aplikasi Google Play

Aplikasi baru

Langkah 1: Buat kunci unduhan

  1. Buat kunci unduhan dengan mengikuti instruksi.
  2. Tanda tangani file APK baru dengan kunci unduhan.

Langkah 2: Siapkan rilis

  1. , mengikuti instruksi.
  2. Setelah Anda memilih jenis versi, konfigurasikan setelan penandatanganan aplikasi Anda di bagian "Izinkan Google melindungi dan mengelola kunci penandatanganan aplikasi Anda".
  3. Jika Anda mengklik Melanjutkan, kunci yang dihasilkan akan menjadi kunci unduhan yang akan digunakan untuk menandatangani rilis mendatang. Anda juga dapat memilih yang berikut ini Pengaturan lanjutan:
    • Gunakan satu kunci untuk aplikasi berbeda di akun pengembang (opsi 2).
    • Unggah kunci penandatanganan aplikasi yang ada (opsi 2, 3 dan 4), pilih metode ekspor dan unduh yang paling sesuai. Setelah mengunduh kunci penandatanganan aplikasi dan sertifikat publiknya, Anda dapat menggunakannya sebagai kunci penandatanganan aplikasi.

Catatan. Untuk melanjutkan, Anda harus menerima Ketentuan Penggunaan dan mendaftar di Program Penandatanganan Aplikasi.

Langkah 3: Daftarkan kunci penandatanganan aplikasi Anda ke penyedia API Anda

Jika aplikasi Anda menggunakan API, untuk mengautentikasi Anda mungkin perlu mendaftarkan sertifikat kunci yang digunakan Google untuk menandatangani aplikasi Anda. Untuk menemukan sertifikat:

  1. Masuk ke Konsol Play.
  2. Pilih aplikasi.
  3. Dari menu di sebelah kiri, pilih Manajemen rilis > Tanda tangan lamaran.
    • Jika penyedia API memerlukan jenis sidik jari yang berbeda, Anda dapat mengunduh sertifikat asli dalam format DER dan mengonversinya sesuai kebutuhan menggunakan alat yang sesuai.
Aplikasi yang Diterbitkan

Langkah 1: Mendaftar ke Program Penandatanganan Aplikasi Google Play

  1. Masuk ke Konsol Play.
  2. Pilih aplikasi.
  3. Dari menu di sebelah kiri, pilih Manajemen rilis > Tanda tangan lamaran.
  4. Jika perlu, baca Ketentuan Penggunaan dan klik Menerima.

Langkah 2: Kirimkan kunci asli ke Google dan buat kunci unduhan

  1. Temukan kunci penandatanganan aplikasi asli.
  2. Masuk ke Konsol Play.
  3. Pilih aplikasi.
  4. Dari menu di sebelah kiri, pilih Manajemen rilis > Tanda tangan lamaran.
  5. Unggah kunci penandatanganan aplikasi yang ada dengan metode yang paling sesuai dengan proses rilis Anda.
  1. dan unggah sertifikat ke Google Play.
    • Anda juga dapat menggunakan kunci penandatanganan aplikasi sebagai kunci unduhan.
  2. Salin sidik jari digital (MD5, SHA-1, dan SHA-256) dari sertifikat penandatanganan aplikasi.
    • Untuk melakukan pengujian, Anda mungkin perlu mendaftarkan sertifikat kunci booting ke penyedia API menggunakan sidik jari sertifikat dan kunci penandatanganan aplikasi.

Langkah 4: Tanda tangani pembaruan aplikasi Anda berikutnya dengan kunci unduhan Anda

Pembaruan aplikasi yang dirilis harus ditandatangani dengan kunci unduhan.

Cara membuat kunci unduhan dan memperbarui penyimpanan kunci

Anda dapat membuat kunci unduhan saat mendaftar ke Program Penandatanganan Aplikasi Google Play, atau Anda dapat membuatnya nanti di Manajemen rilis > Tanda tangan lamaran.

Untuk membuat kunci unduhan, ikuti langkah-langkah berikut:

  1. Ikuti petunjuk di situs Pengembang Android. Simpan kunci di tempat yang aman.
  2. Ekspor sertifikat untuk kunci boot dalam format PEM. Ganti argumen berikut dengan garis bawah:
    • $ keytool -ekspor -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Saat diminta selama proses penerbitan, unduh sertifikat untuk mendaftarkannya ke Google.

Jika Anda menggunakan kunci unduh:

  • Kunci unduhan didaftarkan ke Google hanya untuk mengautentikasi identitas pembuat aplikasi.
  • Tanda tangan Anda dihapus dari semua unduhan APK sebelum mencapai pengguna.
Pembatasan
  • Kunci unduhan harus menggunakan enkripsi RSA dan berukuran minimal 2048 bit.
  • Kunci DSA dan EC juga tidak didukung Kunci RSA berukuran kurang dari 2048 bit.
Memperbarui keystore

Setelah Anda membuat kunci unduhan, periksa dan perbarui lokasi berikut jika perlu:

  • sistem lokal;
  • server lokal yang aman (dengan berbagai daftar kontrol akses);
  • sistem cloud (dengan berbagai daftar kontrol akses);
  • layanan manajemen kunci khusus;
  • Repositori Git.

Cara memperbarui kunci penandatanganan untuk pemasangan aplikasi baru

Dalam beberapa kasus, Anda mungkin dapat meminta pembaruan kunci penandatanganan aplikasi. Kunci baru akan digunakan untuk menandatangani instalasi baru dan pembaruan aplikasi, dan kunci lama akan digunakan untuk memperbarui versi bertanda tangan yang sudah diinstal oleh pengguna.

Kunci penandatanganan hanya dapat diperbarui satu kali untuk setiap aplikasi. Jika Anda menggunakan satu kunci penandatanganan untuk beberapa aplikasi untuk menjalankannya dalam proses yang sama, kunci tersebut tidak dapat diperbarui.

Anda harus meminta pembaruan kunci penandatanganan aplikasi dalam kasus berikut:

  • Anda memerlukan kunci yang lebih aman.
  • Kunci penandatanganan aplikasi telah disusupi.

Catatan. Permintaan untuk mengupdate kunci penandatanganan aplikasi di Konsol Play tidak terkait dengan penggantian kunci di Android P dan versi yang lebih baru. Penggantian kunci ini saat ini tidak didukung oleh Google Play.

Catatan penting tentang memperbarui kunci

Sebelum meminta pembaruan kunci, penting untuk memahami perubahan apa yang akan terjadi.

  • Jika Anda menggunakan kunci penandatanganan yang sama untuk beberapa aplikasi agar dapat menggunakan kode atau data yang sama, Anda harus memperbarui aplikasi agar dapat mengenali kunci baru dan kunci lama.
  • Jika aplikasi Anda menggunakan API, pastikan untuk mendaftarkan sertifikat kunci penandatanganan aplikasi baru dan lama ke penyedia API sebelum mengupgrade aplikasi Anda. Sertifikat tersedia di halaman Menandatangani aplikasi Mainkan Konsol.
  • Jika banyak pengguna aplikasi Anda menginstal pembaruan melalui jaringan berbagi file, mereka hanya akan dapat menginstal pembaruan yang ditandatangani dengan kunci yang sama dengan aplikasi yang diinstal pada perangkat mereka. Jika aplikasi tidak dapat diupdate karena versi yang diinstal ditandatangani dengan kunci yang berbeda, pengguna dapat menghapus instalasi dan menginstalnya kembali untuk menerima pembaruan.
Minta pembaruan kunci untuk instalasi baru. Untuk melakukannya, ikuti langkah-langkah berikut:
  1. Masuk ke Konsol Play.
  2. Pilih aplikasi.
  3. Dari menu di sebelah kiri, pilih Manajemen rilis > Tanda tangan lamaran.
  4. Di kartu "Perbarui kunci penandatanganan untuk pemasangan aplikasi baru", pilih Minta pembaruan kunci.
  5. Pilih tindakan yang akan dilakukan dengan perangkat tersebut.
    • Tergantung pada opsi yang Anda pilih, Anda mungkin harus menghubungi dukungan untuk menyelesaikan permintaan Anda.
  6. Izinkan Google Play membuat kunci penandatanganan aplikasi baru (disarankan) atau mendownloadnya.
    • Setelah memperbarui kunci penandatanganan aplikasi, jika kunci tersebut cocok dengan kunci unduhan, Anda dapat terus menggunakan kunci penandatanganan aplikasi lama sebagai kunci unduhan atau membuat yang baru.
  • Jika Anda juga telah memublikasikan aplikasi di luar Google Play atau berencana melakukannya, Anda dapat membuat kunci penandatanganan aplikasi bersama dan mengunggahnya ke Google saat Anda mendaftar ke Program Penandatanganan Aplikasi Google Play.
  • Untuk melindungi akun Anda, aktifkan verifikasi dua langkah untuk semua akun yang memiliki akses ke Konsol Play.
  • Setelah memublikasikan App Bundle ke versi pengujian atau produksi, Anda dapat membuka App Bundle Browser dan mendownload arsip ZIP yang berisi semua file APK untuk perangkat tertentu. File APK ini sudah ditandatangani dengan kunci penandatanganan aplikasi. Anda dapat menginstalnya di perangkat Anda dari arsip ZIP menggunakan utilitas garis komando alat bundel.
  • Untuk keamanan yang lebih baik, buat kunci unduhan baru yang berbeda dari kunci penandatanganan aplikasi.
  • Jika Anda ingin menguji APK yang ditandatangani dengan kunci upload, daftarkan kunci tersebut ke layanan atau API yang menggunakan tanda tangan aplikasi untuk autentikasi (seperti API Google Peta atau Paket Pengembang Facebook).
  • Jika Anda menggunakan Google API, Anda dapat mendaftarkan sertifikat upload Anda di Google Cloud Console.

Apa yang harus dilakukan jika kuncinya hilang atau diretas

Jika Anda kehilangan akses ke kunci pribadi diunduh atau telah diretas, dan tanyakan kepada pemilik akun Anda. Saat menghubungi support, pemilik akun harus melampirkan file upload_certificate.pem.

Ketika tim dukungan mendaftarkan kunci unduhan baru, Anda akan menerimanya surel, lalu Anda dapat memperbarui penyimpanan kunci dan mendaftarkan kunci Anda ke penyedia API.

Penting! Menyetel ulang kunci unduhan tidak memengaruhi kunci penandatanganan aplikasi, yang digunakan Google Play untuk menandatangani file APK sebelum mengirimkannya ke pengguna.

Apakah informasi ini bermanfaat?

Bagaimana artikel ini dapat diperbaiki?

Utilitas keytool yang dijelaskan di bagian sebelumnya membuat sertifikat digital, yang merupakan salah satu parameter alat jarsigner. Parameter lainnya adalah paket Android yang perlu ditandatangani. Untuk menghasilkan paket Android, Anda harus menggunakan utilitas Ekspor Paket Aplikasi yang Tidak Ditandatangani dari modul ADT untuk Eclipse. Untuk memanggil utilitas ini, Anda perlu mengklik kanan proyek Android di Eclipse, pilih menu konteks Alat Android, lalu pilih Ekspor Paket Aplikasi yang Tidak Ditandatangani. Setelah diluncurkan, utilitas ini menghasilkan file .apk yang tidak ditandatangani dengan sertifikat debug.

Untuk mencobanya, jalankan utilitas Ekspor Paket Aplikasi yang Tidak Ditandatangani di salah satu proyek Android Anda dan simpan file .apk yang dihasilkan di suatu tempat. DI DALAM dalam contoh ini kita akan menggunakan folder keystore yang dibuat sebelumnya dan menghasilkan file .apk bernama C:\android\release\myappraw.apk.

Sekarang kita memiliki file .apk dan item keystore, kita dapat menjalankan alat jarsigner untuk menandatangani file .apk (lihat 14.2). Dalam hal ini, jalur lengkap harus ditentukan untuk file keystore dan file .apk.

Untuk menandatangani file .apk, utilitas jarsigner mengirimkan lokasi keystore, kata sandi keystore, kata sandi kunci rahasia, jalur ke file .apk dan alias item keystore. Jarsigner kemudian menandatangani file .apk menggunakan sertifikat digital dari item keystore. Untuk menjalankan utilitas jarsigner, Anda harus membuka jendela alat (lihat Bab 2), atau membuka jendela Command Prompt atau jendela Terminal dan membuka folder bin di direktori

JDK (jika folder ini tidak ditentukan dalam variabel lingkungan JALUR). Untuk alasan keamanan, yang terbaik adalah tidak meneruskan kata sandi sebagai argumen perintah, dalam hal ini jarsigner akan meminta Anda memasukkan kata sandi saat runtime. Pada Gambar. Gambar 14.3 menunjukkan contoh pemanggilan utilitas jarsigner. Anda mungkin telah memperhatikan bahwa pada Gambar. 14.3 utilitas jarsigner hanya meminta satu kata sandi. Hal ini karena keypass tidak diminta jika storepass dan keypass sama. Sebenarnya, perintah jarsigner di e 14.2 hanya perlu menentukan kata sandi -keypass jika berbeda dengan kata sandi -storepass.

Seperti disebutkan sebelumnya, Android mengharuskan aplikasi Anda ditandatangani secara digital untuk mencegah pemrogram jahat mengganti aplikasi Anda dengan versi mereka sendiri. Untuk melakukan hal ini, Android mengharuskan pembaruan aplikasi ditandatangani dengan tanda tangan yang sama seperti aplikasi asli. Jika suatu aplikasi ditandatangani dengan tanda tangan yang berbeda, Android menganggapnya sebagai aplikasi yang berbeda. Oleh karena itu, kami mengingatkan Anda sekali lagi: tangani file keystore dengan hati-hati agar tersedia untuk Anda nanti saat Anda perlu merilis pembaruan aplikasi.

Jadi, Anda telah bekerja berhari-hari (dan mungkin malam hari), dan inilah hibrida pertama Anda aplikasi seluler siap. Ini cukup stabil, sebagian besar bug kritis telah ditutup. Masih ada sedikit yang tersisa, tetapi mengingat perfeksionisme itu jahat, Anda membuat keputusan berkemauan keras untuk mempublikasikan aplikasi tersebut.

Prasyarat untuk ini adalah adanya file APK yang ditandatangani. Bagaimana cara menandatanganinya berkas apk, Anda akan belajar dari artikel ini.

Retret kecil

Ketika proyek kesayangan saya hampir dirilis, saya mulai mencari informasi tentang cara mempublikasikan aplikasi dengan cepat dan mudah. Banyak instruksi yang ditemukan tampak sederhana. Saya memilih instruksi dari penulis kerangka Ionic, tempat aplikasi dikembangkan. Tidak semuanya berhasil pada kali pertama; ada beberapa keanehan. Proses penandatanganan dijelaskan dalam artikel ini, poin penting terutama disorot.

Data awal

Saya berasumsi Anda sudah menyiapkan segalanya untuk mengembangkan aplikasi seluler hybrid menggunakan Apache Cordova. Harus dipasang:
  • Apache Cordova
  • Kit Pengembangan Java
  • Alat SDK Android
Nama proyek dan aplikasinya adalah lcf. Ganti dengan nama proyek Anda jika perlu.

Pergi

Pertama, Anda perlu membuat versi rilis aplikasi Anda. Namun sebelum itu, pastikan semua plugin yang tidak diperlukan telah dihapus. Misalnya, kita tidak memerlukan plugin yang menampilkan informasi debug ke konsol. Mari kita hapus:

$ plugin cordova rm cordova-plugin-konsol
Untuk menghasilkan build rilis untuk Android, gunakan perintah membangun dengan bendera --melepaskan:

$ cordova build --rilis Android
Perintah ini akan dibuat tidak ditandatangani File APK di direktori:

Platform/Android/build/output/apk
Misalnya, platform/android/build/outputs/apk/ android-rilis-unsigned.apk. Kemudian kita perlu menandatangani file ini dan menjalankan utilitasnya zipalign untuk mengoptimalkan dan menyiapkan file untuk Google Play.

Untuk menandatangani file, Anda memerlukan sertifikat. Mari kita membuatnya menggunakan utilitas alat kunci yang termasuk dalam JDK:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validitas 10000
Penting

Nilai parameter -alias harus diingat, atau lebih baik lagi ditulis. Pada contoh di atas sama dengan lcf (berdasarkan huruf pertama nama aplikasi Loyal Client Free). Disini saya tidak akan memberikan detailnya, jika anda tertarik tulis di kolom komentar, saya akan ceritakan lebih detail.

Alias ​​​​digunakan setiap kali Anda menandatangani * aplikasi. Agar lebih mudah mengingatnya, gunakan nama file keystore sebagai alias, misalnya:


-keystore hello-world.keystore -alias hello-world -keystore cuaca-app.keystore -alias cuaca-app -keystore todo.keystore -alias todo
* Anda harus menandatangani aplikasi setiap kali pembaruan dirilis

Kegunaan alat kunci menanyakan serangkaian pertanyaan. Totalnya akan ada 8. Untuk mengetahui gambaran pertanyaan dan perkiraan jawaban terlebih dahulu, semuanya diberikan di bawah ini, di bawah spoiler.

Pertanyaan alat kunci dan contoh jawabannya

1. Masukkan kata sandi keystore:
Di sini Anda harus memasukkan kata sandi untuk file tersebut (minimal 6 karakter). Kata sandi yang dimasukkan harus ditulis di tempat yang aman; itu diperlukan setiap kali Anda menandatangani aplikasi.

2. Masukkan kembali kata sandi baru:
Masukkan kembali kata sandi Anda.

3. Siapa nama depan dan belakangmu?
: Ivan Petrov
Nama depan dan belakang Anda. Nilai dalam tanda kurung siku adalah nilai default.

4. Apa nama unit organisasi anda?
: DIA
Nama divisi perusahaan Anda. Anda dapat membiarkannya kosong, saya tunjukkan.

5. Apa nama organisasi anda?
: 2pengembang
Nama organisasi Anda. Harap sebutkan jika tersedia.

6. Apa nama Kota atau Daerah anda?
: Moskow
Nama Kota

7. Apa nama Negara Bagian atau Provinsi anda?
: MO.
Nama daerah

8. Apa kode negara dua huruf untuk unit ini?
: ru
Kode negara. Saya menunjukkan RU.

: kamu

Konfirmasikan apakah semuanya sudah benar atau tekan Enter untuk masuk lagi.


Pada akhirnya, sebuah pesan yang menunjukkan pembuatan kunci berhasil akan muncul. Anda akan diminta untuk menyetel kata sandi untuk kunci pribadi (jika Anda ingin membiarkannya sama seperti untuk sertifikat, tekan Enter):

Menghasilkan 2 pasangan kunci RSA 048 bit dan sertifikat yang ditandatangani sendiri (SHA256withRSA) dengan validitas 10.000 hari untuk: CN=Ivan Petrov, OU=IT, O=2developers, L=Moscow, ST=MO, C=RU Enter key kata sandi untuk (KEMBALI jika sama dengan kata sandi keystore):
Sebuah file akan dibuat di direktori saat ini lcf.keystore.

Penting

File yang dibuat harus disimpan di tempat yang aman. Jika Anda menggunakan repositori pribadi, maka file tersebut dapat dikomit bersama kode sumber aplikasi. Secara umum, lebih baik menyimpan sertifikat secara terpisah. Jika Anda kehilangan sertifikat, Anda tidak akan dapat mengeluarkan pembaruan aplikasi.

Tinggal dua langkah lagi dan Anda akan memiliki file APK yang siap untuk didistribusikan. Mari kita beralih ke penandatanganan.

Untuk menandatangani file apk Anda, gunakan utilitas jarsigner, yang juga termasuk dalam JDK.

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf
Nama sertifikat ditunjukkan setelah parameter -penyimpan kunci, alias - setelah nama file.

Terakhir, untuk mengoptimalkan file apk, kita akan menggunakan utilitas zipalign:

$ zipalign -v 4 android-rilis-unsigned.apk LoyalClientFree.apk
Parameter terakhir adalah nama file yang akan Anda unggah ke Google Play.

Penting.

Kegunaan zipalign itu adalah bagian dari Alat SDK Android dan dapat ditemukan di sini:

/path/ke/Android/sdk/build-tools/VERSION/zipalign

Kesimpulan

Anda sekarang memiliki file apk siap distribusi yang dapat diunggah ke Google Play. Isi deskripsi, tentukan rating aplikasi Anda dan silakan klik “Terbitkan”.

Terkadang beberapa aplikasi di Android tidak sesuai dengan pengguna dalam beberapa hal. Contohnya adalah iklan yang mengganggu. Dan kebetulan program ini bagus untuk semua orang, tetapi terjemahan di dalamnya salah atau tidak ada sama sekali. Atau misalnya programnya uji coba, tapi dapat versi lengkap tidak ada kemungkinan. Bagaimana cara mengubah situasi?

Perkenalan

Pada artikel ini kita akan membahas tentang cara membongkar paket APK dengan suatu aplikasi, melihat struktur internalnya, membongkar dan mendekompilasi bytecode, dan juga mencoba membuat beberapa perubahan pada aplikasi yang dapat memberi kita satu manfaat atau lainnya.

Untuk melakukan semua ini sendiri, Anda memerlukan setidaknya pengetahuan dasar tentang bahasa Java, tempat aplikasi Android ditulis, dan bahasa XML, yang digunakan di mana-mana di Android - mulai dari menjelaskan aplikasi itu sendiri dan hak aksesnya hingga menyimpan string yang akan ditampilkan di layar. Anda juga memerlukan kemampuan untuk menggunakan perangkat lunak konsol khusus.

Jadi, apa itu paket APK yang benar-benar semua perangkat lunak Android didistribusikan?

Dekompilasi aplikasi

Pada artikel ini, kami hanya bekerja dengan kode aplikasi yang dibongkar, tetapi jika perubahan yang lebih serius dilakukan pada aplikasi besar, akan jauh lebih sulit untuk memahami kode kecil. Untungnya, kita dapat mendekompilasi kode dex menjadi kode Java, yang meskipun tidak asli dan tidak dikompilasi kembali, namun jauh lebih mudah untuk membaca dan memahami logika aplikasi. Untuk melakukan ini, kita memerlukan dua alat:

  • dex2jar adalah penerjemah bytecode Dalvik ke bytecode JVM, yang menjadi dasar kita dapat memperoleh kode dalam bahasa Java;
  • jd-gui adalah dekompiler itu sendiri yang memungkinkan Anda mendapatkan kode Java yang dapat dibaca dari bytecode JVM. Sebagai alternatif, Anda dapat menggunakan Jad (www.varaneckas.com/jad); Meskipun sudah cukup tua, dalam beberapa kasus ini menghasilkan kode yang lebih mudah dibaca daripada Jd-gui.

Beginilah cara penggunaannya. Pertama, kita meluncurkan dex2jar, menentukan jalur ke paket apk sebagai argumen:

% dex2jar.sh mail.apk

Hasilnya, paket Java mail.jar akan muncul di direktori saat ini, yang sudah bisa dibuka di jd-gui untuk melihat kode Java.

Pengaturan paket APK dan penerimaannya

Kantong plastik Aplikasi Android, sebenarnya adalah file ZIP biasa, tidak perlu melihat isinya atau membongkarnya. alat khusus tidak dibutuhkan. Cukup memiliki pengarsip - 7zip untuk Windows atau konsol unzip di Linux. Tapi itu tentang bungkusnya. Apa yang ada di dalamnya? Secara umum, kami memiliki struktur berikut di dalamnya:

  • META-INF/- berisi sertifikat digital aplikasi, identifikasi pembuatnya, dan checksum file paket;
  • res/ - berbagai sumber daya yang digunakan aplikasi dalam pekerjaannya, seperti gambar, deskripsi deklaratif antarmuka, serta data lainnya;
  • AndroidManifest.xml- deskripsi aplikasi. Ini termasuk, misalnya, daftar izin yang diperlukan, versi Android yang diperlukan, dan resolusi layar yang diperlukan;
  • kelas.dex- bytecode aplikasi yang dikompilasi untuk mesin virtual Dalvik;
  • sumber daya.arsc- juga sumber daya, tetapi jenisnya berbeda - khususnya, string (ya, file ini dapat digunakan untuk Russifikasi!).

File dan direktori yang terdaftar, jika tidak semuanya, mungkin ada di sebagian besar APK. Namun, ada beberapa file/direktori yang kurang umum yang perlu disebutkan:

  • aktiva- analog sumber daya. Perbedaan utamanya adalah untuk mengakses sumber daya Anda perlu mengetahui pengenalnya, namun daftar aset dapat diperoleh secara dinamis menggunakan metode AssetManager.list() dalam kode aplikasi;
  • lib- perpustakaan Linux asli yang ditulis menggunakan NDK (Native Development Kit).

Direktori ini digunakan oleh produsen game, yang menempatkan mesin game yang ditulis dalam C/C++, serta oleh pembuat aplikasi berkinerja tinggi (misalnya, Google Chrome). Kami menemukan perangkatnya. Namun bagaimana cara mendapatkan file paket dari aplikasi yang Anda minati? Karena tidak mungkin mengambil file APK dari perangkat tanpa root (file tersebut terletak di direktori /data/app), dan rooting tidak selalu disarankan, setidaknya ada tiga cara untuk mendapatkan file aplikasi ke komputer Anda:

  • Ekstensi Pengunduh APK untuk Chrome;
  • Aplikasi APK Leecher asli;
  • berbagai file hosting dan Varezniks.

Yang mana yang akan digunakan tergantung selera; kami lebih suka menggunakan aplikasi individu, oleh karena itu, kami akan menjelaskan penggunaan Real APK Leecher, terutama karena ini ditulis dalam Java dan, karenanya, akan berfungsi di Windows atau Nix.

Setelah memulai program, Anda perlu mengisi tiga bidang: Email, Kata Sandi, dan ID Perangkat - dan pilih bahasa. Dua yang pertama adalah email dan kata sandi akun Google yang Anda gunakan di perangkat. Yang ketiga adalah pengenal perangkat, dan dapat diperoleh dengan mengetikkan kode pada dialer # #8255## dan kemudian menemukan baris ID Perangkat. Saat mengisi, Anda hanya perlu memasukkan ID tanpa awalan android-.

Setelah diisi dan disimpan, sering muncul pesan “Error while connection to server”. Ini tidak ada hubungannya dengan Google Play, jadi abaikan saja dan cari paket yang Anda minati.

Lihat dan Ubah

Katakanlah Anda menemukan sebuah paket yang Anda minati, mengunduhnya, membongkarnya... dan ketika Anda mencoba melihat beberapa file XML, Anda terkejut menemukan bahwa file tersebut bukan teks. Bagaimana cara mendekompilasinya dan cara bekerja dengan paket secara umum? Apakah benar-benar perlu menginstal SDK? Tidak, SDK tidak perlu diinstal sama sekali. Faktanya, semua langkah untuk mengekstrak, memodifikasi, dan mengemas paket APK memerlukan alat berikut:

  • Pengarsip ZIP untuk membongkar dan mengemas;
  • kecil- Perakit/pembongkar bytecode mesin virtual Dalvik (code.google.com/p/smali);
  • tepat- alat untuk mengemas sumber daya (secara default, sumber daya disimpan dalam bentuk biner untuk mengoptimalkan kinerja aplikasi). Termasuk dalam Android SDK, tetapi dapat diperoleh secara terpisah;
  • penandatangan- alat untuk menandatangani paket yang dimodifikasi secara digital (bit.ly/Rmrv4M).

Anda dapat menggunakan semua alat ini secara terpisah, tetapi ini merepotkan, jadi lebih baik menggunakan perangkat lunak tingkat tinggi yang dibuat berdasarkan alat tersebut. Jika Anda bekerja di Linux atau Mac OS X, ada alat bernama apktool. Ini memungkinkan Anda untuk membongkar sumber daya dalam bentuk aslinya (termasuk file XML biner dan arsc), membangun kembali paket dengan sumber daya yang diubah, tetapi ia tidak tahu cara menandatangani paket, jadi Anda harus menjalankan utilitas penandatanganan secara manual. Terlepas dari kenyataan bahwa utilitas ini ditulis dalam Java, instalasinya agak tidak standar. Pertama, Anda perlu mendapatkan file jar itu sendiri:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ ekspor PATH=~/bin:$PATH

Jika Anda bekerja di Windows, maka ada alat luar biasa yang disebut Virtuous Ten Studio, yang juga mengumpulkan semua alat ini (termasuk apktool itu sendiri), tetapi alih-alih antarmuka CLI, alat ini menyediakan antarmuka grafis intuitif yang dapat digunakan pengguna. melakukan operasi untuk membongkar, membongkar, dan mendekompilasi dalam beberapa klik. Alat ini bersifat Donation-ware, yaitu terkadang muncul jendela yang meminta Anda untuk mendapatkan lisensi, namun pada akhirnya hal tersebut dapat ditoleransi. Tidak ada gunanya menjelaskannya, karena Anda dapat memahami antarmukanya dalam beberapa menit. Namun apktool, karena sifatnya yang konsol, perlu dibahas lebih detail.


Mari kita lihat opsi apktool. Singkatnya, ada tiga perintah dasar: d (decode), b (build) dan if (install framework). Jika semuanya jelas dengan dua perintah pertama, lalu apa yang dilakukan pernyataan kondisional ketiga? Ini membongkar kerangka UI yang ditentukan, yang diperlukan jika Anda membedah paket sistem apa pun.

Mari kita lihat opsi paling menarik dari perintah pertama:

  • -S- jangan membongkar file dex;
  • -R- jangan membongkar sumber daya;
  • -B- jangan memasukkan informasi debugging ke dalam hasil pembongkaran file dex;
  • --jalur bingkai- gunakan kerangka UI yang ditentukan alih-alih yang ada di apktool. Sekarang mari kita lihat beberapa opsi untuk perintah b:
  • -F- perakitan paksa tanpa memeriksa perubahan;
  • -A- tunjukkan jalur ke aapt (alat untuk membuat arsip APK), jika karena alasan tertentu Anda ingin menggunakannya dari sumber lain.

Cara menggunakan apktool sangat sederhana; untuk melakukan ini, cukup tentukan salah satu perintah dan jalur ke APK, misalnya:

$apktool d mail.apk

Setelah ini, semua file paket yang diekstraksi dan dibongkar akan muncul di direktori email.

Persiapan. Menonaktifkan iklan

Teorinya tentu saja bagus, tetapi mengapa diperlukan jika kita tidak tahu apa yang harus dilakukan dengan paket yang belum dibongkar? Mari kita coba menerapkan teori tersebut untuk keuntungan kita, yaitu memodifikasi beberapa perangkat lunak agar tidak menampilkan iklan kepada kita. Misalnya saja, Obor Virtual - obor virtual. Perangkat lunak ini ideal bagi kami, karena dipenuhi dengan iklan yang mengganggu dan, terlebih lagi, cukup sederhana untuk tidak tersesat di tengah hutan kode.


Jadi, dengan menggunakan salah satu metode di atas, unduh aplikasi dari pasar. Jika Anda memutuskan untuk menggunakan Virtuous Ten Studio, cukup buka file APK di aplikasi dan unzip, buat proyek (File -> Proyek baru), lalu pilih Impor File di menu konteks proyek. Jika pilihan Anda jatuh pada apktool, jalankan saja satu perintah:

$ apktool d com.kauf.particle.virtualtorch.apk

Setelah ini, pohon file yang mirip dengan yang dijelaskan di bagian sebelumnya akan muncul di direktori com.kauf.particle.virtualtorch, tetapi dengan direktori smali tambahan, bukan file dex dan file apktool.yml. Yang pertama berisi kode yang dibongkar dari file dex aplikasi yang dapat dieksekusi, yang kedua berisi informasi layanan yang diperlukan apktool untuk merakit kembali paket.

Tempat pertama yang harus kita lihat tentu saja adalah AndroidManifest.xml. Dan di sini kita langsung menjumpai baris berikut:

Tidak sulit untuk menebak bahwa ia bertanggung jawab untuk memberikan izin aplikasi untuk menggunakan koneksi Internet. Faktanya, jika kita hanya ingin menghilangkan iklan, kemungkinan besar kita hanya perlu memblokir aplikasi tersebut dari Internet. Mari kita coba melakukan ini. Kami menghapus baris yang ditentukan dan mencoba membangun perangkat lunak menggunakan apktool:

$ apktool b com.kauf.particle.virtualtorch

File APK yang dihasilkan akan muncul di direktori com.kauf.particle.virtualtorch/build/. Namun, tidak mungkin untuk menginstalnya, karena tidak ditandatangani secara digital dan checksum file (tidak ada direktori META-INF/ di dalamnya). Kita harus menandatangani paket menggunakan utilitas apk-signer. Diluncurkan. Antarmuka terdiri dari dua tab - yang pertama (Key Generator) kami membuat kunci, yang kedua (APK Signer) kami menandatangani. Untuk membuat milik kita kunci pribadi, isi kolom berikut:

  • Berkas Sasaran- file keluaran keystore; biasanya menyimpan sepasang kunci;
  • Kata sandi Dan Mengonfirmasi- kata sandi untuk penyimpanan;
  • Alias- nama kunci dalam penyimpanan;
  • Kata sandi alias Dan Mengonfirmasi- kata sandi kunci rahasia;
  • Keabsahan- masa berlaku (dalam tahun). Nilai defaultnya optimal.

Bidang lainnya, secara umum, opsional - tetapi setidaknya satu bidang harus diisi.


PERINGATAN

Untuk menandatangani aplikasi menggunakan apk-signer, Anda harus menginstal Android SDK dan menentukan path lengkap ke aplikasi tersebut di pengaturan aplikasi.

Semua informasi disediakan untuk tujuan informasi saja. Baik editor maupun penulis tidak bertanggung jawab atas segala kemungkinan kerugian yang disebabkan oleh materi artikel ini.

Sekarang Anda dapat menandatangani APK dengan kunci ini. Pada tab APK Signer, pilih file yang baru dibuat, masukkan kata sandi, alias kunci, dan kata sandi, lalu temukan file APK dan klik tombol “Sign”. Jika semuanya berjalan dengan baik, paket akan ditandatangani.

INFORMASI

Karena kami menandatangani paket dengan kunci kami sendiri, itu akan bertentangan dengan aplikasi aslinya, yang berarti ketika kami mencoba memperbarui perangkat lunak melalui pasar, kami akan menerima kesalahan.

Tanda tangan digital hanya diperlukan perangkat lunak pihak ketiga, jadi jika Anda sedang melakukan modifikasi aplikasi sistem, yang diinstal dengan menyalin ke direktori /system/app/, Anda tidak perlu menandatanganinya.

Setelah itu, unduh paket tersebut ke ponsel cerdas Anda, instal dan luncurkan. Voila, iklannya hilang! Namun, sebaliknya, muncul pesan bahwa kami tidak memiliki Internet atau tidak memiliki izin yang sesuai. Secara teori, ini mungkin cukup, tetapi pesannya terlihat mengganggu, dan sejujurnya, kami hanya beruntung dengan aplikasi yang bodoh. Perangkat lunak yang biasanya ditulis kemungkinan besar akan mengklarifikasi kredensialnya atau memeriksa koneksi Internet dan sebaliknya menolak untuk diluncurkan. Apa yang harus dilakukan dalam kasus ini? Tentu saja, edit kodenya.

Biasanya, pembuat aplikasi membuat kelas khusus untuk menampilkan iklan dan memanggil metode kelas ini ketika aplikasi atau salah satu “aktivitasnya” (dalam istilah sederhana, layar aplikasi) diluncurkan. Mari kita coba mencari kelas-kelas ini. Kita masuk ke direktori smali, lalu com (org hanya berisi perpustakaan grafis terbuka cocos2d), lalu kauf (di sinilah tempatnya, karena ini adalah nama pengembang dan semua kodenya ada di sana) - dan ini dia, direktori pemasaran. Di dalamnya kami menemukan banyak file dengan ekstensi smali. Ini adalah kelas-kelas, dan yang paling menonjol adalah kelas Ad.smali, dari namanya mudah ditebak bahwa kelas itulah yang menampilkan iklan.

Kita dapat mengubah logika operasinya, namun akan lebih mudah jika kita menghapus panggilan ke salah satu metodenya dari aplikasi itu sendiri. Oleh karena itu, kami meninggalkan direktori pemasaran dan pergi ke direktori partikel yang berdekatan, dan kemudian ke virtualtorch. File MainActivity.smali patut mendapat perhatian khusus di sini. Ini adalah kelas Android standar yang dibuat oleh Android SDK dan diinstal sebagai titik masuk ke aplikasi (analog dengan fungsi utama di C). Buka file untuk diedit.

Di dalamnya ada kode smali (assembler lokal). Ini cukup membingungkan dan sulit dibaca karena sifatnya yang tingkat rendah, jadi kami tidak akan mempelajarinya, tetapi hanya akan menemukan semua referensi ke kelas Iklan dalam kode dan mengomentarinya. Kami memasukkan baris "Iklan" dalam pencarian dan sampai ke baris 25:

Iklan pribadi bidang:Lcom/kauf/marketing/Ad;

Di sini bidang iklan dibuat untuk menyimpan objek kelas Iklan. Kami berkomentar dengan memberi tanda ### di depan baris. Kami melanjutkan pencarian. Baris 423:

v3 contoh baru, Lcom/kauf/marketing/Ad;

Di sinilah pembuatan objek terjadi. Mari berkomentar. Kami melanjutkan pencarian dan menemukan di baris 433, 435, 466, 468, 738, 740, 800 dan 802 panggilan ke metode kelas Iklan. Mari berkomentar. Sepertinya itu saja. Menyimpan. Sekarang paket tersebut perlu dipasang kembali dan diperiksa fungsionalitasnya dan keberadaan iklannya. Demi kemurnian percobaan, kami mengembalikan baris yang dihapus dari AndroidManifest.xml, merakit paket, menandatanganinya, dan menginstalnya.

Kelinci percobaan kami. Iklan terlihat

Ups! Iklan tersebut menghilang hanya saat aplikasi sedang berjalan, namun tetap berada di menu utama, yang kita lihat saat kita meluncurkan perangkat lunak. Jadi tunggu dulu, tapi entry pointnya adalah kelas MainActivity, dan iklannya hilang saat aplikasi sedang berjalan, tetapi tetap ada di menu utama, jadi entry pointnya berbeda? Untuk mengidentifikasi titik masuk sebenarnya, buka kembali file AndroidManifest.xml. Dan ya, itu berisi baris berikut:

Mereka memberi tahu kita (dan, yang lebih penting, android) bahwa aktivitas bernama Start harus diluncurkan sebagai respons terhadap pembuatan sebuah maksud (peristiwa) android.intent.action.MAIN dari kategori android.intent.category.LAUNCHER. Event ini dihasilkan ketika Anda mengetuk ikon aplikasi di peluncur, sehingga menentukan titik masuknya, yaitu kelas Mulai. Kemungkinan besar, pemrogram pertama-tama menulis aplikasi tanpa menu utama, titik masuknya adalah kelas MainActivity standar, dan kemudian menambahkan jendela (aktivitas) baru yang berisi menu dan dijelaskan di kelas Mulai, dan secara manual menjadikannya entri titik.

Buka file Start.smali dan cari lagi baris “Ad”, kita temukan pada baris 153 dan 155 penyebutan kelas FirstAd. Itu juga ada dalam kode sumber dan, dilihat dari namanya, ini bertanggung jawab untuk menampilkan iklan di layar utama. Mari kita lihat lebih jauh, kita membuat sebuah instance dari kelas FirstAd dan sebuah maksud yang, sesuai dengan konteksnya, terkait dengan instance ini, dan kemudian label cond_10, lompatan bersyarat yang dilakukan tepat sebelum membuat instance kelas:

Jika-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :kelanjutan_10

Kemungkinan besar, program entah bagaimana menghitung secara acak apakah iklan harus ditampilkan di layar utama, dan, jika tidak, langsung melompat ke cond_10. Oke, mari sederhanakan tugasnya dan ganti transisi bersyarat dengan transisi tanpa syarat:

#jika-ne p1, v0, :cond_10 goto:cond_10

Tidak ada lagi penyebutan FirstAd dalam kode, jadi kami menutup file dan memasang kembali obor virtual kami menggunakan apktool. Salin ke ponsel cerdas Anda, instal, luncurkan. Voila, semua iklan telah hilang, dan kami ucapkan selamat kepada kita semua.

Hasil

Artikel ini hanyalah pengenalan singkat tentang metode meretas dan memodifikasi aplikasi Android. Masih banyak masalah yang tertinggal, seperti menghapus perlindungan, menguraikan kode yang dikaburkan, menerjemahkan dan mengganti sumber daya aplikasi, serta memodifikasi aplikasi yang ditulis dengan menggunakan Android NDK. Namun, dengan memiliki pengetahuan dasar, hanya masalah waktu saja untuk mengetahui semuanya.

Tampilan Postingan: 5.618

Studio Android memberikan banyak peluang baik untuk pengembangan aplikasi maupun untuk meningkatkan otomatisasi dan kenyamanan dalam pemrograman.

Jika Anda menggunakan sistem build Gradle untuk membuat aplikasi Anda, Anda juga dapat mengonfigurasi beberapa opsi untuk membuat tanda tangan untuk aplikasi Anda.

Anda mungkin tidak ingin mempublikasikan kunci penandatanganan, kata sandi, dan nama pengguna Anda ke repositori publik (atau bahkan pribadi). Oleh karena itu Anda dapat menentukan kunci, kata sandi, dan nama pengguna sebagai properti dalam file terpisah.

Sebelum Anda mulai menandatangani aplikasi, Anda perlu membuat properti baru di file gradle.properties Anda. Ayo telepon dia Kunci.repo dan, sebagai nilai, tentukan jalur ke folder tempat penyimpanan kunci dan file dengan properti selanjutnya akan ditempatkan (misalnya, C:/Pengguna/NamaPengguna/.penandatanganan).

Kunci.repo=C:/Pengguna/NamaPengguna/.penandatanganan

Maka Anda perlu membuat folder ini atau, jika Anda menentukan folder yang sudah ada, buka folder tersebut. Anda perlu membuat file di dalamnya NamaProyek Anda.properti, di dalamnya jalur ke penyimpanan kunci, alias kunci, dan kata sandi akan ditulis sebagai properti dalam bentuk berikut.

RELEASE_STORE_FILE=/NamaProyek Anda/KeyStoreName.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=KeyAlias ​​​​RELEASE_KEY_PASS=******

Bagaimana cara membuat brankas kunci?

Jika Anda tidak memiliki keystore, Anda dapat membuatnya dengan mudah menggunakan Android Studio. Untuk melakukan ini, pilih item menu Membangun -> Hasilkan APK yang Ditandatangani.

Di jendela yang muncul, Anda perlu mengklik Membuat baru... Akibatnya, sebuah jendela akan terbuka di mana Anda dapat menentukan di mana penyimpanan kunci akan ditempatkan (untuk pelajaran ini, lebih baik segera memilih jalur yang Anda tentukan di NamaProyek Anda.properti di properti RELEASE_STORE_FILE), serta informasi penting.

Maka Anda perlu membuat folder NamaProyek Anda dan memindahkannya ke sana berkas yang diperlukan toko kunci.

Sekarang Anda bisa langsung melanjutkan ke proses penandatanganan. Untuk melakukan ini, Anda perlu membuka file di proyek Anda build.gradle(terletak di folder aplikasi). Di dalamnya di blok android Anda perlu menambahkan kode berikut.

SigningConfigs ( debug ( /* tidak ada perubahan di sini */ ) rilis ( if (project.hasProperty("Keys.repo")) ( def projectPropsFile = file(project.property("Keys.repo") + "/YourProjectName.properties " ) if (projectPropsFile.exists()) ( Properti props = new Properties() props.load(new FileInputStream(projectPropsFile)) storeFile file(file(project.property("Keys.repo") + props["RELEASE_STORE_FILE"] ) ) alat peraga storePassword["RELEASE_STORE_PASS"] alat peraga keyAlias["RELEASE_ALIAS"] alat peraga keyPassword["RELEASE_KEY_PASS"] ) ) lain ( println "===== = =================== "println " - Silakan konfigurasikan lingkungan kompilasi rilis - mis ~/.direktori penandatanganan" println "============ === ===========" ) ) )

Apa saja skema berbeda untuk mendapatkan tanda tangan?

Ada dua skema untuk mendapatkan tanda tangan APK: v1 JAR Dan v2 APK Lengkap.

Dalam kasus pertama, itu ditandatangani STOPLES-file, yang merupakan cara penandatanganan tradisional. Penandatanganan v1 tidak melindungi beberapa bagian APK, seperti metadata ZIP. Pemverifikasi APK harus menangani banyak struktur data yang tidak tepercaya (belum diverifikasi) dan kemudian membuang data yang tidak ditandatangani, sehingga meninggalkan banyak permukaan serangan. Selain itu, pemverifikasi APK harus mendekompresi semua entri terkompresi, yang membuang banyak waktu dan memori. Untuk mengatasi masalah tersebut, skema kedua v2 Full APK telah dikembangkan.

Skema v2 disajikan di Android 7.0 Nougat (API 25) dan berfungsi mulai dari versi Android Studio 2.2 Dan Plugin Android Gradle 2.2. Skema ini memberikan lebih banyak manfaat instalasi cepat aplikasi dan perlindungan yang baik terhadap perubahan yang tidak sah di APK. Konten APK di-hash dan ditandatangani, lalu hasilnya Blok tanda tangan APK dimasukkan ke dalam APK.

Selama verifikasi, skema v2 memperlakukan APK sebagai blob dan melakukan verifikasi tanda tangan pada seluruh file. Setiap modifikasi pada APK, termasuk modifikasi pada metadata ZIP, akan membuat tanda tangan menjadi tidak valid. Bentuk verifikasi ini jauh lebih cepat dan dapat mendeteksi lebih banyak modifikasi yang tidak sah.

Format baru ini kompatibel dengan versi sebelumnya, sehingga APK yang ditandatangani dengan skema baru dapat diinstal pada perangkat lama (yang akan mengabaikan tanda tangan baru) selama APK tersebut juga ditandatangani dengan skema v1.

Secara default, penandatanganan menggunakan kedua skema sehingga aplikasi dapat diinstal pada perangkat apa pun. Namun, jika diperlukan, Anda dapat menonaktifkan tanda tangan v1 atau v2. Untuk melakukan ini, pada kode di atas di blok melepaskan Cukup dengan menambahkan baris berikut.

V1SigningEnabled salah

V2SigningEnabled salah

Penting juga untuk dicatat bahwa Anda harus menandatangani dengan skema v1 sebelum menandatangani dengan skema v2, karena APK tidak akan lolos verifikasi berdasarkan skema v2 jika ditandatangani dengan sertifikat tambahan setelah penandatanganan dengan skema v2.

Setelah kode ditambahkan, sertakan kode ini dalam satu blok tipe build di dalam melepaskan. Misalnya:

BuildTypes ( rilis ( minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" SigningConfig SigningConfigs.release ) )

Sekarang Anda dapat dengan aman di item menu Membangun memilih Bangun APK, setelah sebelumnya mengubah jenis perakitan dari men-debug pada melepaskan. Seperti yang terlihat, metode ini nyaman karena otomatis, Anda hanya perlu mengkonfigurasinya sekali dan penyimpanan kunci Anda bisa aman.



 


Membaca:



Apa yang harus dilakukan jika komputer tidak melihat telepon melalui port USB

Apa yang harus dilakukan jika komputer tidak melihat telepon melalui port USB

Penting! Instruksi ini tentang perangkat Android, yaitu cara menghubungkan ponsel Anda ke Internet melalui komputer melalui kabel USB...

Firmware pengaturan Asus rt n16

Firmware pengaturan Asus rt n16

Karakteristik teknis Antarmuka ASUS RT-N16: 1xWAN (RJ-45), 4xLAN (RJ-45) 10/100/1000 Mbit/s Titik akses Wi-Fi nirkabel: IEEE 802.11...

Cara mengetahui bitness sistem operasi dan prosesor di Windows

Cara mengetahui bitness sistem operasi dan prosesor di Windows

Hari ini saya mengusulkan untuk membahas kelebihan dan kekurangan OS 64-bit, yang dilengkapi dengan sebagian besar komputer modern dengan sistem operasi...

Cara mematikan Windows Firewall: penonaktifan dan penonaktifan total untuk masing-masing program Cara menonaktifkan firewall Windows 7 sepenuhnya

Cara mematikan Windows Firewall: penonaktifan dan penonaktifan total untuk masing-masing program Cara menonaktifkan firewall Windows 7 sepenuhnya

Halo! Senang bisa bersamamu lagi. Saya belum menulis apa pun selama hampir seminggu karena saya terlibat dalam petualangan berjudul “Uang Spanyol: Menuju Kebebasan!” Siapa di...

gambar umpan RSS