我想开发一个自己的Android API,它会请求“签名”保护级别,并且可以访问“我的”应用程序。
想法如下:
因此,在我的API系统的任何应用程序的请求期间,将检查此应用程序是否使用适当的证书进行签名。如果我的sertificate安装到Android中,一切都应该没问题。
我打算对这种方法进行原型设计,但如果有明显的事情可以阻止我这样做 - 请告诉我。
问题:
如何将自己的证书安装到系统证书存储中(假设我们自己构建Android并且可以修改系统(在合理的边界内))?
非常感谢。
P.S。我对Java / Android开发不太熟悉,所以如果你看到一些奇怪的东西,请不要介意。
更新
正如我在对zeetoobiker的回答中写的那样,如果我使用自己的证书签署我的API,那么我的所有应用程序都可以访问它(由我的证书签名),但它没有任何系统权限。而且我不希望我的所有“客户”都能访问“realmb.com/droidCert/”网站。相反,我希望制造商将我的证书添加到操作系统中,现在我正在努力进行概念验证。
答案 0 :(得分:0)
我认为您不需要安装证书。
从permission docs签名:
仅当请求的应用程序使用与声明该权限的应用程序相同的证书进行签名时,系统才授予的权限。如果证书匹配,系统会自动授予权限,而不通知用户或要求用户明确批准。
这意味着它是您用来签署重要应用程序的证书(不是任何已安装的证书) - 如果您使用相同的证书对App 1和App 2进行签名,那么它将获得许可。如果使用其他证书签名的App 3尝试访问API,则会获得无权限异常。
根据文档(我必须承认我没有这样做,虽然我正在寻找我的一些应用程序)它应该适用于vanilla Android而无需任何必要的定制/访问设备/ root。
如果您确实需要安装根证书,this可能有所帮助,但我认为您没有按照既定目标行事。