在Android设备上修改已安装的APK

时间:2012-02-11 12:04:42

标签: android apk

我正在尝试Android,我想知道以下是否可行:我可以使用其他APP修改/修补已安装的APP吗?

我知道有可能使用root访问权限,但我想知道非root用户手机。 想到的唯一解决方案如下:

- 从data / app /文件夹创建原始APK的副本 - 补丁/重建它 - 修补APK的安装

用户需要确认安装,但理论上它可以正常工作吗?还有其他任何我没有想过的技术吗?

如果您想知道,我有兴趣在现有应用中注入不同的字符串和其他资源,以提供翻译或其他修改(例如:游戏中的作弊),而无需更改原始应用的来源。

3 个答案:

答案 0 :(得分:2)

你说得对,你可以在设备上做到这一点。 Smali/Baksmali可以在Android上使用,也可以调用apktool(我只尝试过smali)。

一年前左右,我尝试在设备上使用smali并自动发送源输出。网上有一些信息(我目前无法找到,对不起),但它非常有限,至少有人展示了如何正确使用smali / baksmali。我已经放弃了这种方法,因为我对java并不擅长,而且手机上的资源相当有限。

我想到的另一种方法是将实际工作卸载到网络中的某个服务器上。但这有其自身的问题,因为您需要传输文件,您可能需要framework.apks,等等。

这很有趣但很难,你需要解码/解析/补丁/重建apks,这必须是可靠的。当你失败时,最糟糕的是用户手机坏了(我想修改关键系统apks,坏主意;)。)。

答案 1 :(得分:1)

如果重新安装是无缝的,并且您需要,则更好:INSTALL_PACKAGES权限。

现在,INSTALL_PACKAGES android:protectionLevel是“signatureOrSystem”,这意味着应用程序需要使用用于签署系统映像的相同证书进行签名。

现在使用与用于签署系统映像的证书相同的证书签署一个应用程序可能看起来像一个困难甚至不可能的任务,因为供应商可能不愿意让其他人使用他们的证书。然后,有些人可能希望您的应用程序包含在他们的系统映像中。无论如何,它本身并不重要,因为Android和Android都有ROM市场。

Android ROMS越来越多地成为Android的一般“工作”或“功能”的代名词。这是Android用户所期待的。 Android市场上有ROM管理器应用程序可以列出和安装ROM等。

因此,在获得INSTALL_PACKAGES权限的应用程序的本质上,可以制作自己的ROM,或者与制作ROMS的人一起工作,或者将应用程序包含在ROM中或使用用于签署ROM的系统映像的证书签署该应用程序。

同样,供应商完全有可能将应用程序包含在其“固件”(系统映像)中。你必须接近它们。

:)

答案 2 :(得分:0)

如果两个都是你的应用程序使用。content provider在apps.and之间共享数据,如果其他应用程序来自其他开发者,则你根本无法修改应用程序。