0
点赞
收藏
分享

微信扫一扫

System Apps权限详解

在这里插入图片描述

在Android 14系统中,System Apps(系统应用)是预装在设备上的应用,通常由设备制造商、操作系统开发者(如Google)或移动运营商提供。这些应用享有更高的权限级别,但也受到严格的安全管理。以下是关于System Apps权限的详细说明,包括变化和注意点:

System Apps权限的特点

  1. 预装特权

    • System Apps 通常安装在 /system/app/system/priv-app 目录下。
    • 这些应用默认具有 system 签名,与系统框架共享相同的权限范围。
  2. 平台签名权限

    • 系统应用若使用与平台相同的签名,可以请求一些普通应用无法访问的权限,如:
      • READ_PRIVILEGED_PHONE_STATE:读取用户设备的敏感信息(如IMEI)。
      • MANAGE_USERS:管理设备上的用户账户。
      • PACKAGE_USAGE_STATS:访问应用使用数据。
    • 这些权限只能通过 signature 级别授权。
  3. Privileged Apps

    • 位于 /system/priv-app 目录下的应用称为特权应用(Privileged Apps)。
    • 特权应用可以请求额外的权限,如:
      • INSTALL_PACKAGES:静默安装应用。
      • DELETE_PACKAGES:静默卸载应用。
      • WRITE_SECURE_SETTINGS:修改 Settings.Secure 中的安全设置。
    • 必须在设备的 privapp-permissions.xml 中显式声明这些权限。
  4. 权限授予方式

    • 普通权限(Normal Permissions):自动授予。
    • 危险权限(Dangerous Permissions):即使是系统应用,也需要通过运行时权限申请。
    • 特权权限(Privileged Permissions):需要在privapp-permissions.xml中配置,或者与系统签名匹配。

Android 14的权限变化

Android 14 在安全性和权限管理方面进行了增强,包括对系统应用的限制和优化:

权限精细化

  1. 动态权限分区

    • 针对不同的应用类型,Android 14 引入了更细化的权限分区:
      • system_core 应用:核心系统应用,权限最高。
      • default_system 应用:普通系统应用,权限受到限制。
    • 这种分区限制了低级别系统应用滥用高权限。
  2. 动态权限管理

    • 运行时权限模型进一步强化,即使是系统应用,也需要动态申请一些危险权限。
    • Android 14 禁止系统应用使用某些过时或危险的权限(如:WRITE_EXTERNAL_STORAGE)。

隐私保护增强

  1. 对用户数据的访问限制

    • ACCESS_FINE_LOCATIONACCESS_BACKGROUND_LOCATION 等权限需要更明确的用户同意。
    • 系统应用也不能绕过这些限制。
  2. 感知权限的记录与监控

    • Android 14 继续改进了权限监控机制,允许用户查看系统应用何时访问了敏感数据(如摄像头、位置、麦克风)。

文件访问权限的变化

  • Android 14 对存储权限进行了限制:
    • 应用必须使用分区存储(Scoped Storage),无法直接访问 /data/sdcard 根目录。
    • 系统应用如果需要全面文件访问,必须申请 MANAGE_EXTERNAL_STORAGE 权限,并在设置中启用。

自定义权限的限制

  • 系统应用创建的自定义权限必须显式声明访问策略,并受到 Android 系统的动态管理。

配置权限的文件

以下是影响系统应用权限的关键配置文件:

  1. AndroidManifest.xml

    • 系统应用声明的权限大多通过此文件定义,例如:
      <manifest xmlns:android="http://schemas.android.com/apk/res/android">
          <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
      </manifest>
      
  2. privapp-permissions.xml

    • 位于 /etc/permissions/,此文件定义了特权应用的权限。例如:
      <privapp-permissions>
          <privapp-package name="com.example.privilegedapp">
              <permission name="android.permission.INSTALL_PACKAGES" />
              <permission name="android.permission.DELETE_PACKAGES" />
          </privapp-package>
      </privapp-permissions>
      
  3. platform.xml

    • 位于 /etc/permissions/,定义了权限与应用签名的匹配关系。
  4. default-permissions.xml

    • 定义了默认授予的权限,例如对预装应用授予某些危险权限。

注意事项

  1. 滥用检测

    • Android 14 加强了对系统应用的滥用检测,违规的系统应用可能被用户禁用或卸载。
  2. 特权权限的审查

    • 如果特权应用的权限未在配置文件中声明,应用可能无法启动。
  3. 定期更新

    • 厂商需要定期更新系统应用,以确保兼容性和安全性。
  4. 开发建议

    • 遵循最小权限原则(Least Privilege Principle),避免不必要的高权限申请。

总结

在Android 14中,System Apps的权限体系得到了进一步的精细化和限制,以提高设备安全性和隐私保护。开发者和厂商需要特别关注配置文件中的权限声明,以及遵守Google最新的权限策略,以避免兼容性问题。

结束语 Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

举报

相关推荐

0 条评论