blob: 69a9db9f4bcbed35d267b49121be7d52e12cf106 [file] [log] [blame]
Rico Wind0ed24cc2018-03-23 07:16:35 +01001#!/usr/bin/env python
2# Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file
3# for details. All rights reserved. Use of this source code is governed by a
4# BSD-style license that can be found in the LICENSE file.
5
Søren Gjessecdae8792018-12-12 09:02:43 +01006import os
Rico Wind0ed24cc2018-03-23 07:16:35 +01007import subprocess
8import utils
9
Christoffer Quist Adamsen41cbdca2019-04-12 08:52:03 +020010def sign(unsigned_apk, signed_apk, keystore, quiet=False, logging=True):
Christoffer Quist Adamsen1de3dde2019-01-24 13:17:46 +010011 utils.Print('Signing (ignore the warnings)', quiet=quiet)
Rico Wind0ed24cc2018-03-23 07:16:35 +010012 cmd = ['zip', '-d', unsigned_apk, 'META-INF/*']
Christoffer Quist Adamsen41cbdca2019-04-12 08:52:03 +020013 utils.RunCmd(cmd, quiet=quiet, logging=logging)
Rico Wind0ed24cc2018-03-23 07:16:35 +010014 cmd = [
15 'jarsigner',
16 '-sigalg', 'SHA1withRSA',
17 '-digestalg', 'SHA1',
18 '-keystore', keystore,
19 '-storepass', 'android',
20 '-signedjar', signed_apk,
21 unsigned_apk,
22 'androiddebugkey'
23 ]
Christoffer Quist Adamsen1de3dde2019-01-24 13:17:46 +010024 utils.RunCmd(cmd, quiet=quiet)
Søren Gjessecdae8792018-12-12 09:02:43 +010025
Christoffer Quist Adamsen3b6f1062019-02-07 09:49:43 +010026def sign_with_apksigner(
Christoffer Quist Adamsen41cbdca2019-04-12 08:52:03 +020027 unsigned_apk, signed_apk, keystore, password='android', quiet=False,
28 logging=True):
Søren Gjessecdae8792018-12-12 09:02:43 +010029 cmd = [
Morten Krogh-Jespersen220e5702019-02-27 12:57:01 +010030 os.path.join(utils.getAndroidBuildTools(), 'apksigner'),
Søren Gjessecdae8792018-12-12 09:02:43 +010031 'sign',
32 '-v',
33 '--ks', keystore,
34 '--ks-pass', 'pass:' + password,
35 '--min-sdk-version', '19',
36 '--out', signed_apk,
37 unsigned_apk
38 ]
Christoffer Quist Adamsen41cbdca2019-04-12 08:52:03 +020039 utils.RunCmd(cmd, quiet=quiet, logging=logging)