2018-10-09 23:19:05 +03:00
|
|
|
#!/usr/bin/env python
|
2019-06-15 20:26:09 +03:00
|
|
|
from __future__ import print_function
|
2018-10-09 23:19:05 +03:00
|
|
|
import argparse
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
|
2020-02-07 21:52:36 +03:00
|
|
|
from lib.config import LINUX_BINARIES, enable_verbose_mode
|
2018-10-09 23:19:05 +03:00
|
|
|
from lib.util import execute, get_out_dir
|
|
|
|
|
|
|
|
def strip_binaries(directory, target_cpu):
|
2019-11-21 04:21:44 +03:00
|
|
|
for binary in LINUX_BINARIES:
|
2018-10-09 23:19:05 +03:00
|
|
|
binary_path = os.path.join(directory, binary)
|
|
|
|
if os.path.isfile(binary_path):
|
|
|
|
strip_binary(binary_path, target_cpu)
|
|
|
|
|
|
|
|
def strip_binary(binary_path, target_cpu):
|
|
|
|
if target_cpu == 'arm':
|
|
|
|
strip = 'arm-linux-gnueabihf-strip'
|
|
|
|
elif target_cpu == 'arm64':
|
|
|
|
strip = 'aarch64-linux-gnu-strip'
|
|
|
|
elif target_cpu == 'mips64el':
|
|
|
|
strip = 'mips64el-redhat-linux-strip'
|
|
|
|
else:
|
|
|
|
strip = 'strip'
|
2020-04-08 18:29:14 +03:00
|
|
|
execute([strip, '--discard-all', '--strip-debug', '--preserve-dates', binary_path])
|
2018-10-09 23:19:05 +03:00
|
|
|
|
|
|
|
def main():
|
|
|
|
args = parse_args()
|
2020-02-07 21:52:36 +03:00
|
|
|
if args.verbose:
|
|
|
|
enable_verbose_mode()
|
2018-10-09 23:19:05 +03:00
|
|
|
if args.file:
|
|
|
|
strip_binary(args.file, args.target_cpu)
|
|
|
|
else:
|
|
|
|
strip_binaries(args.directory, args.target_cpu)
|
|
|
|
|
|
|
|
def parse_args():
|
|
|
|
parser = argparse.ArgumentParser(description='Strip linux binaries')
|
|
|
|
parser.add_argument('-d', '--directory',
|
|
|
|
help='Path to the dir that contains files to strip.',
|
|
|
|
default=get_out_dir(),
|
|
|
|
required=False)
|
|
|
|
parser.add_argument('-f', '--file',
|
|
|
|
help='Path to a specific file to strip.',
|
|
|
|
required=False)
|
|
|
|
parser.add_argument('-v', '--verbose',
|
|
|
|
action='store_true',
|
|
|
|
help='Prints the output of the subprocesses')
|
|
|
|
parser.add_argument('--target-cpu',
|
|
|
|
default='',
|
|
|
|
required=False,
|
|
|
|
help='Target cpu of binaries to strip')
|
|
|
|
|
|
|
|
return parser.parse_args()
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
sys.exit(main())
|