Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e815cec8 authored by Tao Bao's avatar Tao Bao Committed by android-build-merger
Browse files

Merge "releasetools: Add sanity test for sign_apex." am: 2a917796

am: 03dc3694

Change-Id: I0d2ad60b1df2f660a2a0658eaef000a19538b762
parents 73d6c1f7 03dc3694
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ python_library_host {
        "ota_from_target_files.py",
        "ota_package_parser.py",
        "rangelib.py",
        "sign_apex.py",
        "sign_target_files_apks.py",
        "sparse_img.py",
        "target_files_diff.py",
+20 −14
Original line number Diff line number Diff line
@@ -40,6 +40,20 @@ import common
logger = logging.getLogger(__name__)


def SignApexFile(apex_file, payload_key, container_key, signing_args=None):
  """Signs the given apex file."""
  with open(apex_file, 'rb') as input_fp:
    apex_data = input_fp.read()

  return apex_utils.SignApex(
      apex_data,
      payload_key=payload_key,
      container_key=container_key,
      container_pw=None,
      codename_to_api_level_map=None,
      signing_args=signing_args)


def main(argv):

  options = {}
@@ -76,20 +90,12 @@ def main(argv):

  common.InitLogging()

  input_zip = args[0]
  output_zip = args[1]
  with open(input_zip) as input_fp:
    apex_data = input_fp.read()

  signed_apex = apex_utils.SignApex(
      apex_data,
      payload_key=options['payload_key'],
      container_key=options['container_key'],
      container_pw=None,
      codename_to_api_level_map=None,
      signing_args=options.get('payload_extra_args'))

  shutil.copyfile(signed_apex, output_zip)
  signed_apex = SignApexFile(
      args[0],
      options['payload_key'],
      options['container_key'],
      options.get('payload_extra_args'))
  shutil.copyfile(signed_apex, args[1])
  logger.info("done.")


+41 −0
Original line number Diff line number Diff line
#
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

import os.path

import common
import sign_apex
import test_utils


class SignApexTest(test_utils.ReleaseToolsTestCase):

  def setUp(self):
    self.testdata_dir = test_utils.get_testdata_dir()
    self.assertTrue(os.path.exists(self.testdata_dir))

    common.OPTIONS.search_path = test_utils.get_search_path()

  @test_utils.SkipIfExternalToolsUnavailable()
  def test_SignApexFile(self):
    foo_apex = os.path.join(self.testdata_dir, 'foo.apex')
    payload_key = os.path.join(self.testdata_dir, 'testkey_RSA4096.key')
    container_key = os.path.join(self.testdata_dir, 'testkey')
    signed_foo_apex = sign_apex.SignApexFile(
        foo_apex,
        payload_key,
        container_key)
    self.assertTrue(os.path.exists(signed_foo_apex))
+3.15 MiB

File added.

No diff preview for this file type.