จะติดตั้งแอพสองเวอร์ชันได้อย่างไร


43

Android Market เพิ่งอัปเดตแอปในอุปกรณ์ของฉัน ฉันชอบการอัปเดต แต่มันต่างจากเวอร์ชั่นล่าสุดซึ่งเป็นเวอร์ชั่นที่ฉันชอบมาก ดังนั้นฉันต้องการเก็บรุ่นล่าสุดไว้ด้วย ฉันมี apk รุ่นล่าสุดขอบคุณ Titanium Backup แต่ฉันไม่สามารถติดตั้งได้โดยไม่ต้องแทนที่อันปัจจุบัน (สถาปัตยกรรม Android ครับ) มีวิธีการทำเช่นนี้? แฮ็ก ฯลฯ
หมายเหตุ:ฉันต้องการเก็บเวอร์ชันปัจจุบันซึ่งต้องเชื่อมต่อกับ Market เพื่อรับการอัพเดทในอนาคต

คำตอบ:


29

มันสามารถทำได้ แต่ไม่ใช่เรื่องง่ายสำหรับเหตุผลที่eldarerathisกล่าวถึง คุณจำเป็นต้องapktool อ้างถึงคู่มือนี้เกี่ยวกับวิธีการใช้งาน และนี่คือการลงชื่อ apk หลังจากคุณทำเสร็จแล้ว

คุณต้องแก้ไขไฟล์ AndroidManifest.xml ค้นหาบรรทัดที่มีลักษณะดังนี้:

manifest package="com.example.app"

และเปลี่ยนเป็น:

"com.example.app.foo"

หลังจากเสร็จสิ้นให้คอมไพล์ใหม่แล้วลาออก ในการกู้คืนข้อมูลของคุณให้ลองทำสิ่งต่อไปนี้ผ่าน adb:

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

com.example.appชื่อแพ็กเกจของต้นฉบับอยู่ที่ไหนและได้com.example.app.fooรับการแก้ไข

มีโอกาสเล็กน้อยที่แอพพลิเคชั่นจะพังหรือขึ้นอยู่กับโครงสร้างของแอพที่คุณอาจได้รับการโต้ตอบทุกครั้งที่คุณเปลี่ยนหน้าจอพร้อมท์ให้คุณเลือกแอพที่คุณต้องการเปิดตัว แต่แน่นอนว่าคุ้มค่าถ้าคุณลอง ต้องการมันไม่ดีพอ

แน่นอนว่าแอพทั้งสองจะไม่แชร์การตั้งค่าและข้อมูลเดียวกัน


2
เยี่ยมมาก ... ฉันไม่คิดว่ามันจะเป็นประเด็นทางกฎหมายเพราะฉันจะไม่แจกจ่าย / ขายมัน .. ขอบคุณ!
Android Quesito

1
ขึ้นอยู่กับประเทศของคุณ ในฮังการีมีกฎหมายที่จะทำวิศวกรรมย้อนกลับแอพเพื่อการเรียนรู้ / เพื่อวัตถุประสงค์ส่วนตัว แต่ฉันไม่รู้เกี่ยวกับส่วนที่เหลือของโลก แต่เนื่องจากคุณไม่ได้แจกจ่ายอะไรเลยคุณจะไม่เดือดร้อน
RR

16

คุณทำสิ่งนี้ไม่ได้ แอปพลิเคชั่น Android แต่ละตัวมีชื่อแพ็คเกจซึ่งกำหนด namespace Java / Dalvik ที่คลาสนั้นใช้อย่างมีประสิทธิภาพ คุณไม่สามารถติดตั้งแพ็กเกจชื่อเดียวกันสองแพ็กเกจได้เนื่องจากมันจะสร้างเนมสเปซที่ทับซ้อนกันซึ่งเป็นสาเหตุที่มันจะแทนที่แพ็กเกจเก่าเสมอเมื่อคุณติดตั้งแพ็คเกจใหม่ วิธีเดียวที่คุณสามารถทำได้คือถ้าคุณสามารถรับแหล่งที่มาสำหรับแอปและเปลี่ยนข้อกำหนดแพคเกจทั้งหมด


7

ทำได้ภายใน 5 นาที

วิธีการ : เปลี่ยนชื่อแพคเกจเพื่อให้ Android รับรู้ว่าเป็นแอพอื่น

ไม่มี APKtool ไม่มี adb ไม่จำเป็นต้องมีทักษะผู้ใช้ขั้นสูง

เครื่องมือที่จำเป็น

  • พีซีที่มี JAVA (Windows, Linux, Mac) (เลือกใช้ JDK 8)
  • ApkRename

ขั้นตอน

  1. สำรอง / ดาวน์โหลดสำเนาของแอพที่ต้องการ ( app.APK)
  2. ถ่ายโอนไปยังพีซี
  3. บนพีซีดาวน์โหลด JAVA และ ApkRename
  4. เปลี่ยนชื่อแพ็คเกจโดยระบุพา ธ ไปยังไฟล์ APK และชื่อแพ็คเกจใหม่เป็น ApkRename
  5. ลงชื่อ APK โดยใช้ ApkSign
  6. โอน APK ใหม่ไปยังโทรศัพท์และติดตั้ง

หมายเหตุ:ในกรณีที่มีปัญหาในการลงชื่อ APK ให้ใช้แอพ android APK editor เช่น Advanced permission managerและทำการแก้ไขใด ๆ กด save & install ในเวลานี้พวกเขาจะลงนามในแอพ


2

คุณสามารถลองบรรจุแอปพลิเคชันใหม่ได้ ฉันเคยติดตั้งเกมที่แก้ไขแล้วผลก็คือเกมสองเกม ถ้าจำได้ดีชื่อแพคเกจจะไม่เหมือนกัน


0

บางครั้งมีการอ้างอิงบางอย่างในไลบรารีที่ปฏิบัติการได้ ( .so) และการเปลี่ยนชื่อแพ็คเกจ (เช่น smali -> classes.dex) ก็ไม่ได้ช่วยอะไรเช่นกัน

ในกรณีที่เรียบง่ายมองหาApkEditor


1
นี่เป็นการเริ่มต้นที่ดี แต่ไม่ได้อธิบายการเปลี่ยนแปลงที่คุณต้องทำใน ApkEditor หากคุณต้องการคำตอบที่เป็นประโยชน์คุณอาจต้องการแก้ไขเพื่อเพิ่มข้อมูลอีกเล็กน้อย
Dan Hulme
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.