| 
									
										
										
										
											2018-10-09 16:19:05 -04:00
										 |  |  | #!/usr/bin/env python | 
					
						
							| 
									
										
										
										
											2019-06-15 19:26:09 +02:00
										 |  |  | from __future__ import print_function | 
					
						
							| 
									
										
										
										
											2018-10-09 16:19:05 -04:00
										 |  |  | import argparse | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-07 13:52:36 -05:00
										 |  |  | from lib.config import LINUX_BINARIES, enable_verbose_mode | 
					
						
							| 
									
										
										
										
											2018-10-09 16:19:05 -04:00
										 |  |  | from lib.util import execute, get_out_dir | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def strip_binaries(directory, target_cpu): | 
					
						
							| 
									
										
										
										
											2019-11-20 17:21:44 -08:00
										 |  |  |   for binary in LINUX_BINARIES: | 
					
						
							| 
									
										
										
										
											2018-10-09 16:19:05 -04: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-02-07 17:05:04 -05:00
										 |  |  |   execute([strip, '--preserve-dates', binary_path]) | 
					
						
							| 
									
										
										
										
											2018-10-09 16:19:05 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | def main(): | 
					
						
							|  |  |  |   args = parse_args() | 
					
						
							| 
									
										
										
										
											2020-02-07 13:52:36 -05:00
										 |  |  |   if args.verbose: | 
					
						
							|  |  |  |     enable_verbose_mode() | 
					
						
							| 
									
										
										
										
											2018-10-09 16:19:05 -04: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()) |