【问题标题】:Android System App 101安卓系统应用101
【发布时间】:2010-11-24 09:02:17
【问题描述】:

有人可以向我解释一下 Android 系统应用程序相对于“普通”应用程序有什么好处吗? (除了无法卸载系统应用程序这一事实之外)? 特殊权限?

【问题讨论】:

    标签: android security


    【解决方案1】:

    这里有些混乱。

    首先,如果您说“系统应用”只是一个设置了 FLAG_SYSTEM 的应用程序,这意味着该应用程序位于 /system 分区,这是只读分区,基本上是固件设备。 (它只能作为 OTA 固件更新的一部分进行修改。)这些应用程序不能仅仅因为它们位于无法修改的分区上而被删除。

    除此之外,系统应用程序的唯一特别之处在于,有一些签名权限也可以授予系统映像上的任何应用程序。例如,有权限直接与包管理器对话以安装此类应用程序可以拥有的应用程序(无需通过系统 UI);这对于设备上预装的任何应用商店/市场都很有用。

    使用平台证书进行签名是一个正交的概念——这样的应用程序既可以在系统映像上,也可以作为第三方应用程序安装(尽管显然在几乎所有情况下这些都是预先安装的)。此类应用程序可以访问一整套与平台交互的低级权限。很少有应用程序使用此证书进行签名;它仅适用于核心平台应用程序。除非您在设备上与硬件供应商合作,否则您将无权访问它。

    平台的所有证书(无论它们是否可用于所有应用、要求应用使用平台证书签名或可用于安装在系统分区上的应用)都由平台清单声明,就像任何其他应用一样:
    https://android.googlesource.com/platform/frameworks/base/+/master/core/res/AndroidManifest.xml

    【讨论】:

    • 谢谢!这就是我一直在寻找的
    • 在我看来这个答案已经过时了。在构建自定义 rom 时,您应该能够使用平台证书对内容进行签名。是否有提到的“低级功能”列表以及系统应用程序可用的特殊权限?
    【解决方案2】:

    有些权限只能由系统应用程序获得。例如,permission brick 可以由每个应用程序请求,但它只授予作为系统应用程序签名的应用程序。还有一些其他更有意义的功能,我认为直接安装和删除应用程序也将是系统唯一权限。

    【讨论】:

    • 你知道这样的权限列表(只有系统应用可以使用?)
    【解决方案3】:

    根据您的解释,我猜您的意思是预装的应用程序(例如浏览器或消息应用程序)。您可以在https://android.googlesource.com 中查看这些应用程序。 (搜索平台/包/应用程序/...)。

    您会发现这些应用程序与您自己定制开发的应用程序没有区别,只是您无法删除它们。它们无法删除,因为它们提供了操作手机/设备的基本功能。因此,同样的安全限制也适用于那里。

    【讨论】:

    • 只有自带固件才能做系统应用对吧? (用“平台密钥”签名)
    • 我认为您是从制造商的角度来看的。我知道由于市场限制,某些平板电脑制造商会预装Skype等。但是这些可以再次删除,值得研究。我从未在市场上看到过系统应用程序可供下载,这将是一个相当大的安全风险。想想下面提到的 BRICK 权限 Janusz。
    • 嘿! MobileDefense 应用程序正在开发类似的东西(我猜!)请参阅此处support.mobiledefense.com/viewtopic.php?id=569 阅读声明(顶部):“我们将很快发布一个新的 APK,它可以自动执行整个系统应用程序安装过程。”我认为有办法....
    猜你喜欢
    • 2015-02-18
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    相关资源
    最近更新 更多