gecko-dev/config/android-common.mk
Nick Alexander f2c9cdeaf9 Bug 1258760 - Allow re-signing already signed APK files. r=gps
Gradle produces signed, unaligned APK files.  We expect unsigned,
unaligned APK files.  This change discards any existing signature,
turning a signed, unaligned APK into an unsigned, unaligned APK.

Sadly |zip -q| does not silence a warning message about "nothing to
do" so we pipe to /dev/null.

MozReview-Commit-ID: DnSGJCvHsym

--HG--
extra : rebase_source : ee7884847767c0a075e3cfd404ba695d07f47e93
extra : histedit_source : 6aaa07eac03d69668f8556b84d1c1bae51c8ea22
2016-03-15 16:01:44 -07:00

52 lines
1.8 KiB
Makefile

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Ensure ANDROID_SDK is defined before including this file.
# We use common android defaults for boot class path and java version.
ifndef ANDROID_SDK
$(error ANDROID_SDK must be defined before including android-common.mk)
endif
# DEBUG_JARSIGNER always debug signs.
DEBUG_JARSIGNER=$(PYTHON) $(abspath $(topsrcdir)/mobile/android/debug_sign_tool.py) \
--keytool=$(KEYTOOL) \
--jarsigner=$(JARSIGNER) \
$(NULL)
# RELEASE_JARSIGNER release signs if possible.
ifdef MOZ_SIGN_CMD
RELEASE_JARSIGNER := $(MOZ_SIGN_CMD) -f jar
else
RELEASE_JARSIGNER := $(DEBUG_JARSIGNER)
endif
# $(1) is the full path to input: foo-debug-unsigned-unaligned.apk.
# $(2) is the full path to output: foo.apk.
# Use this like: $(call RELEASE_SIGN_ANDROID_APK,foo-debug-unsigned-unaligned.apk,foo.apk)
#
# The |zip -d| there to handle re-signing previously signed APKs. Gradle
# produces signed, unaligned APK files, but this expects unsigned, unaligned
# APK files. The |zip -d| discards any existing signature, turning a signed,
# unaligned APK into an unsigned, unaligned APK. Sadly |zip -q| doesn't
# silence a warning about "nothing to do" so we pipe to /dev/null.
RELEASE_SIGN_ANDROID_APK = \
cp $(1) $(2)-unaligned.apk && \
($(ZIP) -d $(2)-unaligned.apk 'META-INF/*' > /dev/null || true) && \
$(RELEASE_JARSIGNER) $(2)-unaligned.apk && \
$(ZIPALIGN) -f -v 4 $(2)-unaligned.apk $(2) && \
$(RM) $(2)-unaligned.apk
# For Android, we default to 1.7
ifndef JAVA_VERSION
JAVA_VERSION = 1.7
endif
JAVAC_FLAGS = \
-target $(JAVA_VERSION) \
-source $(JAVA_VERSION) \
-encoding UTF8 \
-g:source,lines \
-Werror \
$(NULL)