构建AOSP,使其具有仅适用于系统应用程序的隐藏键值

时间:2018-11-09 19:18:39

标签: android android-source android-keystore android-7.1-nougat serial-number

我正在为电视盒构建AOSP ROM。我开发了一个系统应用程序,并将其作为priv-app放在AOSP中。

我想跟踪硬件本身,以便能够唯一标识服务器端的框。但是我不想要这个ID,它会泄漏到任何用户可以在其上安装的其他应用程序。 (因此,对手无法通过在许多设备上安装其应用程序来找到密钥)

到目前为止,我已经能够刻录密钥并通过以下代码读取它:

String serial = null; 

try {
    Class<?> c = Class.forName("android.os.SystemProperties");
    Method get = c.getMethod("get", String.class);
    serial = (String) get.invoke(c, "ro.boot.mycustomserialnumber");
} catch (Exception ignored) {
}

但是此代码可以在没有任何许可的情况下由任何应用程序运行。我可以阻止常规应用访问此值吗?

1 个答案:

答案 0 :(得分:0)

在SettingsProvider中添加自定义名称/值对,或者您可以创建自己的Provider。使用自定义权限保护名称/值对,并将该权限仅授予您的应用。