forked from openkylin/platform_build
Merge "releasetools: Add sanity test for sign_apex."
This commit is contained in:
commit
2a917796b5
|
@ -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",
|
||||
|
|
|
@ -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.")
|
||||
|
||||
|
||||
|
|
|
@ -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))
|
Binary file not shown.
Loading…
Reference in New Issue