Bagaimana cara menginstal dua versi aplikasi?

43

Android Market baru saja memperbarui aplikasi di perangkat saya. Saya menyukai pembaruan, tetapi sangat berbeda dari versi terakhir yang juga favorit saya. Jadi, saya ingin menyimpan versi terakhir juga. Saya memiliki versi apk terakhir berkat Titanium Backup. Tapi, saya tidak bisa menginstalnya tanpa mengganti yang sekarang (arsitektur Android menyebalkan). Apakah ada cara untuk melakukan ini? Hacks dll.
Catatan: Saya ingin menyimpan versi saat ini yang harus terhubung dengan Market untuk menerima pembaruan di masa mendatang.

Android Quesito
sumber

Jawaban:

29

Itu bisa dilakukan, tetapi tidak sederhana karena alasan yang disebutkan eldarerathis . Anda perlu apktool . Lihat panduan ini tentang cara menggunakannya. Dan ini pada penandatanganan apk setelah Anda selesai.

Anda perlu memodifikasi file AndroidManifest.xml. Temukan garis yang terlihat seperti ini:

manifest package="com.example.app"

dan mengubahnya menjadi sesuatu seperti:

"com.example.app.foo"

Setelah selesai, kompilasi ulang lalu mundur. Untuk mengembalikan data Anda, coba yang berikut ini melalui adb:

adb rm /data/data/com.example.app.foo
adb push /data/data/com.example.app /data/data/com.example.app.foo

Di mana com.example.appnama paket asli dan com.example.app.foodimodifikasi.

Selalu ada sedikit peluang bahwa aplikasi akan rusak, atau tergantung pada bagaimana struktur aplikasi Anda dapat menerima dialog setiap kali Anda mengubah layar meminta Anda untuk memilih aplikasi yang ingin Anda luncurkan, tetapi pasti patut dicoba jika Anda sangat menginginkannya.

Tentu saja, kedua aplikasi tidak akan berbagi pengaturan dan data yang sama.

RR
sumber
2
Hebat ... Saya tidak berpikir itu akan menjadi masalah hukum karena saya tidak akan mendistribusikan / menjualnya .. Terima kasih!
Android Quesito
1
Itu tergantung pada negara Anda. Di Hongaria adalah legal untuk merekayasa balik aplikasi untuk tujuan pembelajaran / pribadi tetapi saya tidak tahu tentang bagian dunia lainnya. Tetapi karena Anda tidak membagikan apa pun, Anda tidak akan mendapat masalah.
RR
16

Kamu tidak bisa melakukan ini Setiap aplikasi Android memiliki nama paket, yang secara efektif mendefinisikan namespace Java / Dalvik yang ditempati oleh kelasnya. Anda tidak dapat menginstal dua paket dengan nama yang sama karena itu akan menciptakan ruang nama yang tumpang tindih, itulah sebabnya ia selalu menggantikan yang lama ketika Anda menginstal yang baru. Satu-satunya cara Anda bisa melakukan ini adalah jika Anda bisa mendapatkan sumber untuk aplikasi dan mengubah semua definisi paket.

eldarerathis
sumber
7

Lakukan dengan dalam 5 menit

Metode : Ubah nama paket sehingga android akan mengenalinya sebagai aplikasi yang berbeda.

Tidak ada APKtool, tidak adb, tidak diperlukan keahlian super user.

Alat yang dibutuhkan

  • PC dengan JAVA (Windows, Linux, Mac) (lebih disukai JDK 8)
  • ApkRename

Tangga

  1. Cadangkan / Unduh salinan aplikasi yang diinginkan ( app.APK)
  2. Transfer ke PC
  3. Di PC unduh JAVA dan ApkRename
  4. Ubah nama paket dengan menyediakan, path ke file APK dan nama paket baru, ke ApkRename
  5. Masuk APK menggunakan ApkSign
  6. Transfer APK baru ke ponsel dan instal.

CATATAN: Jika ada kesulitan dalam menandatangani APK, gunakan aplikasi penyunting APK Android seperti Advanced permission managerdan buat penyuntingan, tekan simpan & pasang. Saat ini mereka akan menandatangani aplikasi.

totti
sumber
2

Anda dapat mencoba mengemas ulang aplikasi tersebut. Saya pernah menginstal beberapa versi game yang sudah diedit dan hasilnya adalah dua game. Jika diingat baik, nama paket tidak sama.

Andrius
sumber
0

Terkadang, ada beberapa referensi di library yang dapat dieksekusi ( .so), dan mengubah nama paket (juga smali -> classes.dex) juga tidak membantu.

Dalam kasus sederhana, cari ApkEditor .

pengguna39670
sumber
1
Ini adalah awal yang baik, tetapi tidak menjelaskan perubahan apa yang perlu Anda lakukan di ApkEditor. Jika Anda ingin jawaban Anda bermanfaat, Anda mungkin ingin mengeditnya untuk menambah sedikit informasi.
Dan Hulme