chromium/remoting/tools/extract_android_native_lib.py

#!/usr/bin/env python
#
# Copyright 2015 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Extracts a native library from an Android JAR."""

import os
import sys
import zipfile


def main():
  if len(sys.argv) != 4:
    print 'Usage: %s <android_app_abi> <jar file> <output file>' % sys.argv[0]
    sys.exit(1)

  android_app_abi = sys.argv[1]  # e.g. armeabi-v7a
  jar_file = sys.argv[2]  # e.g. path/to/foo.jar
  output_file = sys.argv[3]  # e.g. path/to/libfoo.so

  library_filename = os.path.basename(output_file)
  library_in_jar = os.path.join('lib', android_app_abi, library_filename)

  with zipfile.ZipFile(jar_file, 'r') as archive:
    with open(output_file, 'wb') as target:
      content = archive.read(library_in_jar)
      target.write(content)


if __name__ == '__main__':
  sys.exit(main())