我正在为电视盒构建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) {
}
但是此代码可以在没有任何许可的情况下由任何应用程序运行。我可以阻止常规应用访问此值吗?
答案 0 :(得分:0)
在SettingsProvider中添加自定义名称/值对,或者您可以创建自己的Provider。使用自定义权限保护名称/值对,并将该权限仅授予您的应用。