aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-06-06 14:32:29 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-06 14:33:48 -0700
commitccaccb2b277a82f7264567563a02ab133a0f6e6f (patch)
tree62f5f3a6a89ec3892d565b4ee630387d0f8e85db /tools
parent899a3e7ad9853c036bc84b7b6905516df6b7f62b (diff)
Let blaze obfuscate manual main_dex_list according to proguard map.
PiperOrigin-RevId: 199529974
Diffstat (limited to 'tools')
-rw-r--r--tools/android/BUILD.tools6
-rw-r--r--tools/android/dex_list_obfuscator.sh41
2 files changed, 47 insertions, 0 deletions
diff --git a/tools/android/BUILD.tools b/tools/android/BUILD.tools
index 4828323ad7..8def828b18 100644
--- a/tools/android/BUILD.tools
+++ b/tools/android/BUILD.tools
@@ -444,3 +444,9 @@ package_group(
name = "export_deps_whitelist",
packages = ["//..."],
)
+
+sh_binary(
+ name = "dex_list_obfuscator",
+ srcs = ["dex_list_obfuscator.sh"],
+ visibility = ["//visibility:public"],
+) \ No newline at end of file
diff --git a/tools/android/dex_list_obfuscator.sh b/tools/android/dex_list_obfuscator.sh
new file mode 100644
index 0000000000..ce7e526496
--- /dev/null
+++ b/tools/android/dex_list_obfuscator.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+# Copyright 2018 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Dummy dex list obfuscator doing nothing
+# Should be updated to contain an app, that can obfuscate main dex keep list
+# according to the proguard map.
+
+set -eu
+input=
+output=
+while [[ "$#" -gt 0 ]]; do
+ arg="$1"; shift;
+ case "${arg}" in
+ --input) input="$1"; shift ;;
+ --output) output="$1"; shift ;;
+ ---obfuscation_map=*) shift ;;
+ *) echo "Unknown flag: ${arg}"; exit 1 ;;
+ esac
+done
+
+echo "WARNING: This is just no-op version of the list obfuscator."
+echo "It is invoked, because main_dex_list and proguard were both used."
+echo "If proguard obfuscates a class, it will not be kept in the main dex even"
+echo "if the original name was in the main_dex_list."
+echo "The main_dex_list (provided as --input) should be obfuscated using the"
+echo "map provided as --obfuscation_map parameter."
+echo "If no obfuscation of main dex classes is performed, then noop is OK."
+
+cp $input $output