tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

binary_baseline_profile.py (1899B)


      1 #!/usr/bin/env python3
      2 # Copyright 2023 The Chromium Authors
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 """Creates a binary profile from an HRF + dex + mapping."""
      6 
      7 import argparse
      8 import sys
      9 
     10 from util import build_utils
     11 import action_helpers
     12 
     13 
     14 def main(args):
     15  parser = argparse.ArgumentParser(description=__doc__)
     16  action_helpers.add_depfile_arg(parser)
     17  parser.add_argument('--output-profile',
     18                      required=True,
     19                      help='Path to output binary profile.')
     20  parser.add_argument('--output-metadata',
     21                      required=True,
     22                      help='Path to output binary profile metadata.')
     23  parser.add_argument('--profgen',
     24                      required=True,
     25                      help='Path to profgen binary.')
     26  parser.add_argument('--dex',
     27                      required=True,
     28                      help='Path to a zip containing release dex files.')
     29  parser.add_argument('--proguard-mapping',
     30                      help='Path to proguard mapping for release dex.')
     31  parser.add_argument('--input-profile-path',
     32                      required=True,
     33                      help='Path to HRF baseline profile to apply.')
     34  options = parser.parse_args(build_utils.ExpandFileArgs(args))
     35 
     36  cmd = [
     37      options.profgen,
     38      'bin',
     39      options.input_profile_path,
     40      '-o',
     41      options.output_profile,
     42      '-om',
     43      options.output_metadata,
     44      '-a',
     45      options.dex,
     46  ]
     47 
     48  if options.proguard_mapping:
     49    cmd += [
     50        '-m',
     51        options.proguard_mapping,
     52    ]
     53 
     54  build_utils.CheckOutput(cmd, env={'JAVA_HOME': build_utils.JAVA_HOME})
     55  action_helpers.write_depfile(options.depfile,
     56                               options.output_profile,
     57                               inputs=[options.dex])
     58 
     59 
     60 if __name__ == '__main__':
     61  sys.exit(main(sys.argv[1:]))