Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我可以使用平台密钥和我自己的密钥签署系统应用程序吗?_Android_Android Source - Fatal编程技术网

Android 我可以使用平台密钥和我自己的密钥签署系统应用程序吗?

Android 我可以使用平台密钥和我自己的密钥签署系统应用程序吗?,android,android-source,Android,Android Source,因为我希望系统应用程序具有系统权限,同时能够使用其他密钥/证书验证其他用户应用程序。(客户端应用程序将通过AIDL连接到系统应用程序,系统应用程序将通过签名进行验证,因为两个应用程序都使用一个密钥库进行签名) 这一直有效,直到我被要求与Android AOSP一起编译应用程序。然后,应用程序使用系统密钥进行签名,客户端无法再验证 根据我在android.mk文件中的理解,有一行代码指示如何使用-LOCAL_CERTIFICATE:=platform对APK进行签名 LOCAL_PATH := $

因为我希望系统应用程序具有系统权限,同时能够使用其他密钥/证书验证其他用户应用程序。(客户端应用程序将通过AIDL连接到系统应用程序,系统应用程序将通过签名进行验证,因为两个应用程序都使用一个密钥库进行签名)

这一直有效,直到我被要求与Android AOSP一起编译应用程序。然后,应用程序使用系统密钥进行签名,客户端无法再验证

根据我在android.mk文件中的理解,有一行代码指示如何使用-LOCAL_CERTIFICATE:=platform对APK进行签名

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := <name of APK>
LOCAL_SRC_FILES := <Name of APK>.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_CERTIFICATE := platform

include $(BUILD_PREBUILT)
LOCAL\u路径:=$(调用我的目录)
包括$(清除变量)
本地模块标记:=可选
本地_模块:=
本地\u SRC\u文件:=.apk
本地模块类:=应用程序
本地\模块\后缀:=$(通用\安卓\包\后缀)
本地证书:=平台
包括$(构建\预构建)
那么是否可以指示多个证书?
像这样-本地\u证书:=平台,我的\u密钥


谢谢

不清楚为什么您的系统应用程序需要使用密钥作为客户端应用程序进行签名。您仍然可以让系统应用程序验证客户端应用程序的签名,即使它们是用不同的密钥签名的。只需将您在客户端应用程序上签名时使用的证书或公钥硬编码到系统应用程序中。对不起,如果我错了,硬编码证书或公钥不是很糟糕吗?这就是为什么我认为我们应该只使用签名进行验证硬编码系统应用程序代码中的证书与从系统应用程序APK加载证书没有区别。