我的问题可能看起来很奇怪,但我会尝试以某种方式解释。让我们想象一下,有一款带有软件的Android设备会根据应用程序包名称调整一些设置 - 这是一个真实的场景。该软件可以为列出的应用程序提供更好的性能,并且无法将我的应用程序添加到该列表中。我能做的就是在列出的一个包名下发布我的应用程序(不是谷歌播放,只需在GitHub上提供APK,这样任何想要使用它的人都会手动安装它)。我的问题出现了: 将一些公司现有的包名称用于我自己的应用程序是否合法?它是否合法受到保护?我的应用程序是免费的&开源应用程序。
要明确一点:我不是这样做的冒充"真实"意图不好的申请。我只是希望我的应用程序能够使用全系列的设备功能......下载页面将清楚地说明它和可见:)
换句话说:我可以使用包名称发布应用程序,例如com.google.android.talk?我知道如果有人安装了它,它就不会覆盖现有的应用程序(它不是我覆盖某些应用程序的目标)。我只是谈论这种可能性和合法性。
答案 0 :(得分:0)
这是完全合法的,因为您可以使用您想要的任何String作为您的应用/包名称。
然而,这样做很可能不足以“冒充”其他应用程序,因为这将是一个严重的安全漏洞。首先,永远不会有两个安装了相同软件包名称的应用程序。
如果你说的应用是由“严肃的”开发者创建的,比如谷歌或其中一个原始设备制造商,它会检查应用的包装和签名,因此会知道你的应用是与被替换的应用程序不同。
此外,当用户尝试安装您的应用时,会发生程序包冲突,然后发生签名冲突。这里有两种情况:
如果您要更换的应用是标准应用,则用户可以从adb安装您的应用,但只有在接受后才能完全擦除原始应用的数据。您可能在开发内容时看到了这个对话框。
如果该应用程序由OEM提供并具有系统权限,则安装将失败,不可能“覆盖”该应用程序。这可以通过使设备生根,替换系统目录中的.apk文件并重新启动手机来实现。
请注意,只需将.apk上传到手机即可。这需要从adb完成。手机安装程序将失败。