Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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 AOSP构建:用默认测试密钥替换我自己的密钥_Android_Android Source_Android 7.1 Nougat_Android Signing - Fatal编程技术网

Android AOSP构建:用默认测试密钥替换我自己的密钥

Android AOSP构建:用默认测试密钥替换我自己的密钥,android,android-source,android-7.1-nougat,android-signing,Android,Android Source,Android 7.1 Nougat,Android Signing,我正在构建AOSP,我想用我自己的密钥对构建进行签名。关于这个过程有一些官方文件 但我想知道我是否可以简单地扭转这一过程,转而做以下事情: 删除位于build/target/product/security 将我的密钥(使用官方指示生成)以相同的名称放入该文件夹中。(假设所有共享、媒体等都有一个密钥) 但这种方法行不通。刻录映像后,系统应用程序(SystemUI、设置等)将停止并持续显示ANR对话框。我知道如果系统签名与这些应用的签名不匹配,就会发生这种情况。。。但是为什么呢 另一个问题:是否使

我正在构建AOSP,我想用我自己的密钥对构建进行签名。关于这个过程有一些官方文件

但我想知道我是否可以简单地扭转这一过程,转而做以下事情:

  • 删除位于
    build/target/product/security
  • 将我的密钥(使用官方指示生成)以相同的名称放入该文件夹中。(假设所有共享、媒体等都有一个密钥)
  • 但这种方法行不通。刻录映像后,系统应用程序(SystemUI、设置等)将停止并持续显示ANR对话框。我知道如果系统签名与这些应用的签名不匹配,就会发生这种情况。。。但是为什么呢

    另一个问题:是否使用与
    shared.pk8
    media.pk8
    testkey.pk8
    。。。有什么问题吗


    谢谢

    首先,请确保版本已重新签署应用程序。您可能需要执行
    清理
    以清除以前的工件

    另外,请检查捆绑系统应用的
    Android.mk
    文件(如
    软件包/应用
    或您可能放置它们的任何地方)。您可以看到这一行:

    LOCAL_CERTIFICATE := PRESIGNED
    
    将其替换为以下内容:

    LOCAL_CERTIFICATE := platform
    
    这将允许构建使用将要检查的密钥对您的系统应用进行重新签名

    当为
    共享
    媒体
    测试密钥
    平台
    使用相同的密钥时,(从您的系统应该启动和运行的意义上讲,
    平台
    将起作用),它将从使用这些密钥构建的应用程序中移除一层隔离。特别是,通常使用
    testkey
    签名的非系统应用程序现在将使用与
    platform
    相同的密钥签名。这将使他们能够访问系统应用程序数据和代码,并赋予他们更高的权限(例如不必要求用户确认是否使用相机或访问其文件)。我认为不建议这样做。

    一个建议:

    如果不想将私钥与aosp代码一起保留在源代码管理中,可以在设备mk中定义指向它们的路径:

    PRODUCT_DEFAULT_DEV_CERTIFICATE :=  /home/my_user/release_keys_folder/releasekey
    PRODUCT_VERITY_SIGNING_KEY := /home/my_user/release_keys_folder/verity
    

    对我来说,关键的一步是做
    makeclean
    。完成此操作后,替换我的密钥而不是testkey是可以的。我懒得这么做,因为在我的电脑上重建AOSP需要很多时间!感谢我的构建,我使用了一个AWS EC2盒,有96个内核和768M的ram(一个
    r5.metal
    /
    r5d.metal
    实例)。这只野兽需要大约15分钟才能从clean完成完整的AOSP构建。以俄亥俄州现货价格计算,包括启动/传输时间,通常每个构建成本约为0.50美元(外加大约10美元/月的磁盘空间)。