【问题标题】:Java security file location in AndroidAndroid 中的 Java 安全文件位置
【发布时间】:2016-08-24 21:22:18
【问题描述】:

在我的电脑中,我可以在以下路径下找到java安全文件:

jre/lib/security/java.security

在 Android 4.1 及更高版本中,android 将这个文件存储在哪里? & 是否只能通过 root 设备访问?

==== 更新 ====

一般来说,我需要知道 android 在哪里维护安全提供商列表(例如 AndroidOpenSSL、HarmonyJSSE 等)。我想应该有一个系统文件维护这些提供者的列表(比如我电脑中的文件jre/lib/security/java.security)。

该文件位于何处?我知道我可以使用Security 类来获取列表,但我需要知道文件在 Android 中的位置。

(我想知道那个文件在android中的位置是因为我想改变provider的顺序。)

【问题讨论】:

  • 我认为它不存在。 Android 不使用 jre,权限处理方式完全不同。
  • @GabeSechan ,但是必须有一个文件维护安全提供者的列表,在我的电脑中它在jre/lib/security/java.security,android 必须有那种文件,这就是我真正要问的。不过还是谢谢。
  • @GabeSechan,什么?你的意思是甚至不在系统文件中维护?如果您确定您所说的内容,请给我一个方向,android在哪里维护安全提供程序?至少,我尝试了代码Security.getProviders(),它确实列出了我的Android设备中的所有提供者,这就是为什么我猜肯定有一个系统文件维护着安全提供者的列表。
  • 不,它没有。 Java 和 Android 的实现之间存在差异。它确实提供了 java.security 命名空间(包括 java.security.Security),但这并不意味着它的实现是相同的——不必与该文件等效
  • @GabeSechan,澄清一下,我并不是说 android 中的实现与标准 jre 中的实现相同。但我是说 android 中应该有一个系统文件来维护安全提供者的列表,我想知道该文件的位置在哪里。你碰巧知道吗?

标签: android android-4.0-ice-cream-sandwich jsse java-security android-security


【解决方案1】:

Android 4.0 及以上版本的android 将这个文件存储在哪里?

Android 6.0 不使用该文件,我怀疑之前的 Android 版本也这样做。

但必须有一个文件维护安全提供者的列表

必须有一个安全提供者列表。此列表不必保存在文本文件中。

我尝试了代码 Security.getProviders() 它确实列出了我的 Android 设备中的所有提供程序

如果你阅读the source code to java.security.Security for Android 6.0.1 r16,你会看到提供者列表有两种可能的来源:

  1. The security.properties text 作为 JAR 资源烘焙到 libcore JAR 中

  2. Security 源代码中的硬编码名册,如果由于某种原因无法加载 security.properties

请注意,旧版本的 Android 可能会有所不同,设备制造商/自定义 ROM 开发人员可能会进一步更改。

我想知道那个文件在android中的位置的原因是我想改变provider的顺序

充其量,在有根设备上,您可以尝试将替换 security.properties 破解到该 JAR 中。

【讨论】:

  • 谢谢,源代码链接很有说服力。旧的android版本超出了我的问题范围,我只关注4.1+
  • @Leem.fin:嗯,4.1 和 6.0 之间有很多版本。 Opersys 的Android Xref 将让您检查该文件的其他版本,或者您可以使用 git 存储库等。
猜你喜欢
  • 1970-01-01
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
  • 1970-01-01
  • 2018-12-30
  • 1970-01-01
相关资源
最近更新 更多