首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android系统app更新,带/不带平台签名

Android系统app更新,带/不带平台签名
EN

Stack Overflow用户
提问于 2013-02-08 04:10:18
回答 2查看 11.3K关注 0票数 8

我有一个系统应用程序,OEM安装了系统镜像,但由我签名。如果我将更新的apk上传到市场,市场应用程序会自动静默安装此更新吗?

如果我的系统应用程序使用平台签名而不是我的签名,这意味着任何更新也必须使用平台签名,对吗?平台签名的apk可以从市场上更新吗?

EN

回答 2

Stack Overflow用户

发布于 2013-02-08 16:45:03

首先,让我们澄清所有类型的应用程序之间的区别。

系统应用程序是位于/system/app文件夹中的应用程序。这些应用程序设置了标志ApplicationInfo.FLAG_SYSTEM。在普通设备中,分区/system被挂载为只读访问。因此,无法更新系统应用程序,因为它位于只读位置。这些应用程序只能作为OTA更新的一部分进行更新。

普通应用位于读写的/data分区上。因此,这些应用程序可以由系统更新。

现在让我们来谈谈签名。部分Android组件有签名类型的权限保护。这意味着,如果您希望访问受此类型权限保护的组件,则您的应用程序必须使用与受保护组件相同的证书进行签名。这不仅适用于Android系统,也适用于Android应用程序,即您的应用程序中可以有一个受签名权限保护的组件,因此只有具有相同签名的应用程序才能访问该组件。

我们需要回答你的问题的第三个论点是,Android禁止安装具有相同包名但不同签名的包。

因此,

我有一个系统应用程序,原始设备制造商安装了系统镜像,但由我签名。如果我将更新的apk上传到市场,市场应用程序会自动静默安装此更新吗?

如果我的系统应用程序使用平台签名而不是我的签名,这意味着任何更新也必须使用平台签名,对吗?平台签名的apk可以从市场上更新吗?

答案是否定的。虽然位于/ system /app中的应用程序可以使用与平台证书不同的证书进行签名,但这些应用程序的更新只能通过系统更新来实现。

要解决您的问题,您可以更改应用程序的包名,使用您的(如果应用程序不需要访问受保护的Android组件)或平台(如果应用程序应该可以访问受保护的组件,并且如果您有权访问此签名)对其进行签名,然后将此应用程序投放市场。然后,您将通过市场收到应用程序的更新。

票数 6
EN

Stack Overflow用户

发布于 2014-12-05 03:29:19

除非签名与/ system /ap中的签名匹配,否则系统不会将/data/app中的apk视为更新

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14760089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档