Option to pack unstripped .so into libwebrtc.aar

Bug: webrtc:12508
Change-Id: I12e9e9efabc9e8669cad1ff6be9919fef5027da7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/270423
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37689}
diff --git a/tools_webrtc/android/build_aar.py b/tools_webrtc/android/build_aar.py
index fb5b67a..de5fe2f 100755
--- a/tools_webrtc/android/build_aar.py
+++ b/tools_webrtc/android/build_aar.py
@@ -68,6 +68,10 @@
                       action='store_true',
                       default=False,
                       help='Use goma.')
+  parser.add_argument('--use-unstripped-libs',
+                      action='store_true',
+                      default=False,
+                      help='Use unstripped .so files within libwebrtc.aar')
   parser.add_argument('--verbose',
                       action='store_true',
                       default=False,
@@ -197,14 +201,16 @@
   aar_file.write(os.path.join(output_directory, JAR_FILE), 'classes.jar')
 
 
-def Collect(aar_file, build_dir, arch):
+def Collect(aar_file, build_dir, arch, unstripped):
   """Collects architecture specific files into the .aar-archive."""
   logging.info('Collecting: %s', arch)
   output_directory = _GetOutputDirectory(build_dir, arch)
 
   abi_dir = os.path.join('jni', arch)
   for so_file in NEEDED_SO_FILES:
-    aar_file.write(os.path.join(output_directory, so_file),
+    source_so_file = os.path.join("lib.unstripped",
+                                  so_file) if unstripped else so_file
+    aar_file.write(os.path.join(output_directory, source_so_file),
                    os.path.join(abi_dir, so_file))
 
 
@@ -220,7 +226,8 @@
              extra_gn_args=None,
              ext_build_dir=None,
              extra_gn_switches=None,
-             extra_ninja_switches=None):
+             extra_ninja_switches=None,
+             unstripped=False):
   extra_gn_args = extra_gn_args or []
   extra_gn_switches = extra_gn_switches or []
   extra_ninja_switches = extra_ninja_switches or []
@@ -234,7 +241,7 @@
     # Architecture doesn't matter here, arbitrarily using the first one.
     CollectCommon(aar_file, build_dir, archs[0])
     for arch in archs:
-      Collect(aar_file, build_dir, arch)
+      Collect(aar_file, build_dir, arch, unstripped)
 
   license_dir = os.path.dirname(os.path.realpath(output_file))
   GenerateLicenses(license_dir, build_dir, archs)
@@ -248,7 +255,8 @@
   logging.basicConfig(level=logging.DEBUG if args.verbose else logging.INFO)
 
   BuildAar(args.arch, args.output, args.use_goma, args.extra_gn_args,
-           args.build_dir, args.extra_gn_switches, args.extra_ninja_switches)
+           args.build_dir, args.extra_gn_switches, args.extra_ninja_switches,
+           args.use_unstripped_libs)
 
 
 if __name__ == '__main__':