如何保持两个版本的应用程序安装?


43

Android电子市场刚刚更新了我设备上的一个应用。我喜欢此更新,但与我最喜欢的上一个版本完全不同。因此,我也想保留最新版本。感谢Titanium Backup,我有最新版本的APK。但是,如果不替换当前版本,就无法安装(Android体系结构很糟糕)。有什么办法吗?黑客等。
注意:我想保留当前版本,该版本必须与Market连接才能接收将来的更新。

Answers:


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 2012年

1
这取决于您的国家。在匈牙利,出于学习/个人目的对应用程序进行反向工程是合法的,但我对世界其他地方一无所知。但是,由于您不分发任何内容,因此不会遇到麻烦。
RR 2012年

16

你做不到 每个Android应用程序都有一个包名,该包名有效地定义了其类占用的Java / Dalvik命名空间。您不能安装两个同名的软件包,因为它会创建重叠的命名空间,这就是为什么在安装新的命名空间时总是替换旧的命名空间的原因。可行的唯一方法是,如果您能够获取应用程序的源代码并更改所有程序包定义。


7

5分钟内完成

方法:更改程序包名称,以便android将其识别为其他应用程序。

无需APKtool,无需adb,无需任何超级用户技能。

所需工具

  • 装有JAVA的PC(Windows,Linux,Mac)(首选JDK 8)
  • Apk重命名

脚步

  1. 备份/下载所需应用程序的副本(app.APK
  2. 转移到PC
  3. 在PC上下载JAVA和ApkRename
  4. 通过提供APK文件和新软件包名称的路径,将软件包名称更改为ApkRename
  5. 使用ApkSign签署APK
  6. 将新的APK传输到手机并安装。

注意:如果在签署APK时遇到任何困难,请使用android APK编辑器之类的应用程序 Advanced permission manager并进行任何编辑,然后按保存并安装。此时,他们将对应用进行签名。


2

您可以尝试重新打包应用程序。我曾经安装过某个游戏的一些编辑版本,结果只有两个游戏。如果没记错的话,包名是不一样的。


0

有时,可执行库(.so)中有一些引用,更改程序包名称(也包括smali-> classes.dex)也无济于事。

在简单的情况下,请寻找ApkEditor


1
这是一个很好的开始,但没有说明您需要在ApkEditor中进行哪些更改。如果您希望答案有帮助,则可能需要对其进行编辑以添加更多信息。
Dan Hulme
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.