Merge "releasetools: Add sanity test for sign_apex."

This commit is contained in:
Tao Bao 2019-06-27 17:35:29 +00:00 committed by Gerrit Code Review
commit 2a917796b5
4 changed files with 62 additions and 14 deletions

View File

@ -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",

View File

@ -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.")

View File

@ -0,0 +1,41 @@
#
# 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))

BIN
tools/releasetools/testdata/foo.apex vendored Normal file

Binary file not shown.