From 342c4d256a1b3c1358b6c34011086ef60023ab03 Mon Sep 17 00:00:00 2001 From: Ryan VanderMeulen Date: Wed, 19 Jun 2013 20:32:47 -0400 Subject: [PATCH] Backed out changeset 833ca9a17792 (bug 874132) for Android bustage on a CLOSED TREE. --- build/mobile/robocop/Makefile.in | 28 +++----- build/mobile/sutagent/android/Makefile.in | 29 ++++---- .../mobile/sutagent/android/fencp/Makefile.in | 30 ++++---- .../mobile/sutagent/android/ffxcp/Makefile.in | 30 ++++---- .../sutagent/android/watcher/Makefile.in | 35 +++++----- config/android-common.mk | 9 +-- mobile/android/base/Makefile.in | 2 +- mobile/android/build.mk | 12 ++-- mobile/android/debug_sign_tool.py | 70 +++++++------------ testing/testsuite-targets.mk | 2 +- toolkit/mozapps/installer/packager.mk | 17 ++--- 11 files changed, 110 insertions(+), 154 deletions(-) diff --git a/build/mobile/robocop/Makefile.in b/build/mobile/robocop/Makefile.in index 866701526e2..d52504bb2cd 100644 --- a/build/mobile/robocop/Makefile.in +++ b/build/mobile/robocop/Makefile.in @@ -13,8 +13,6 @@ dir-tests := $(DEPTH)/$(mobile-tests) include $(DEPTH)/config/autoconf.mk -ANDROID_APK_NAME := robocop-debug - ROBOTIUM_PATH = $(srcdir)/robotium-solo-3.6.jar JAVAFILES = \ @@ -83,10 +81,9 @@ GARBAGE += \ $(java-tests-dep) \ $(_JAVA_HARNESS) \ classes.dex \ - $(ANDROID_APK_NAME).ap_ \ - $(ANDROID_APK_NAME)-unsigned-unaligned.apk \ - $(ANDROID_APK_NAME)-unaligned.apk \ - $(ANDROID_APK_NAME).apk \ + robocop.ap_ \ + robocop-debug-signed.apk \ + robocop-debug-signed-unaligned.apk \ $(robocop-deps) \ $(NULL) @@ -103,28 +100,23 @@ include $(topsrcdir)/config/android-common.mk GENERATED_DIRS_tools = classes $(dir-tests) -tools:: $(ANDROID_APK_NAME).apk +libs:: robocop-debug-signed.apk -classes.dex: $(ANDROID_APK_NAME).ap_ +classes.dex: robocop.ap_ classes.dex: $(robocop-deps) classes.dex: $(java-harness-dep) classes.dex: $(java-tests-dep) $(JAVAC) $(JAVAC_FLAGS) -d classes $(JAVAFILES) $(_JAVA_HARNESS) $(java-tests-dep) $(DX) --dex --output=$@ classes $(ROBOTIUM_PATH) $(ANDROID_COMPT_LIB) -$(ANDROID_APK_NAME).ap_: AndroidManifest.xml $(TESTPATH)/assets/* +robocop.ap_: AndroidManifest.xml $(TESTPATH)/assets/* $(AAPT) package -f -M $< -I $(ANDROID_SDK)/android.jar -I . -S res -A $(TESTPATH)/assets -F $@ -J ./ -$(ANDROID_APK_NAME)-unsigned-unaligned.apk: $(ANDROID_APK_NAME).ap_ classes.dex - cp $< $@ - $(ZIP) -0 $@ classes.dex +robocop-debug-signed-unaligned.apk: robocop.ap_ classes.dex + $(APKBUILDER) $@ -v $(APKBUILDER_FLAGS) -z robocop.ap_ -f classes.dex -$(ANDROID_APK_NAME)-unaligned.apk: $(ANDROID_APK_NAME)-unsigned-unaligned.apk - cp $< $@ - $(DEBUG_JARSIGNER) $@ - -$(ANDROID_APK_NAME).apk: $(ANDROID_APK_NAME)-unaligned.apk - $(ZIPALIGN) -f -v 4 $< $@ +robocop-debug-signed.apk: robocop-debug-signed-unaligned.apk + $(ZIPALIGN) -f -v 4 $^ $@ # PP_java-tests not fully usable here # Intermediate step toward a library rule. diff --git a/build/mobile/sutagent/android/Makefile.in b/build/mobile/sutagent/android/Makefile.in index 8fdc64b0e79..e5f1eb4d6d7 100644 --- a/build/mobile/sutagent/android/Makefile.in +++ b/build/mobile/sutagent/android/Makefile.in @@ -9,8 +9,6 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk -ANDROID_APK_NAME := sutAgentAndroid - JAVAFILES = \ AlertLooperThread.java \ ASMozStub.java \ @@ -41,10 +39,10 @@ RES_FILES = \ GARBAGE += \ AndroidManifest.xml \ classes.dex \ - $(ANDROID_APK_NAME).ap_ \ - $(ANDROID_APK_NAME)-unsigned-unaligned.apk \ - $(ANDROID_APK_NAME)-unaligned.apk \ - $(ANDROID_APK_NAME).apk \ + sutAgentAndroid.apk \ + sutAgentAndroid.ap_ \ + sutAgentAndroid-unsigned-unaligned.apk \ + sutAgentAndroid-unaligned.apk \ $(NULL) GARBAGE_DIRS += network-libs @@ -58,22 +56,23 @@ include $(topsrcdir)/config/rules.mk # include Android specific java flags - using these instead of what's in rules.mk include $(topsrcdir)/config/android-common.mk -tools:: $(ANDROID_APK_NAME).apk +tools:: sutAgentAndroid.apk classes.dex: $(JAVAFILES) $(JAVAC) $(JAVAC_FLAGS) -d classes $(addprefix $(srcdir)/,$(JAVAFILES)) $(DX) --dex --output=$@ classes $(subst :, ,$(EXTRA_JARS)) -$(ANDROID_APK_NAME).ap_: AndroidManifest.xml +sutAgentAndroid.ap_: $(srcdir)/AndroidManifest.xml $(AAPT) package -f -M $< -I $(ANDROID_SDK)/android.jar -S res -F $@ -$(ANDROID_APK_NAME)-unsigned-unaligned.apk: $(ANDROID_APK_NAME).ap_ classes.dex - cp $< $@ - $(ZIP) -0 $@ classes.dex +sutAgentAndroid-unsigned-unaligned.apk: sutAgentAndroid.ap_ classes.dex + $(APKBUILDER) $@ -v $(APKBUILDER_FLAGS) -z sutAgentAndroid.ap_ -f classes.dex -$(ANDROID_APK_NAME)-unaligned.apk: $(ANDROID_APK_NAME)-unsigned-unaligned.apk +sutAgentAndroid-unaligned.apk: sutAgentAndroid-unsigned-unaligned.apk cp $< $@ - $(DEBUG_JARSIGNER) $@ +ifdef JARSIGNER + $(JARSIGNER) $@ +endif -$(ANDROID_APK_NAME).apk: $(ANDROID_APK_NAME)-unaligned.apk - $(ZIPALIGN) -f -v 4 $< $@ +sutAgentAndroid.apk: sutAgentAndroid-unaligned.apk + $(ZIPALIGN) -f -v 4 sutAgentAndroid-unaligned.apk $@ diff --git a/build/mobile/sutagent/android/fencp/Makefile.in b/build/mobile/sutagent/android/fencp/Makefile.in index 7b29ea0ba52..2d5c7d03059 100644 --- a/build/mobile/sutagent/android/fencp/Makefile.in +++ b/build/mobile/sutagent/android/fencp/Makefile.in @@ -9,8 +9,6 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk -ANDROID_APK_NAME := FenCP - JAVAFILES = \ DirCursor.java \ FenCP.java \ @@ -30,10 +28,7 @@ RES_FILES = \ GARBAGE += \ AndroidManifest.xml \ classes.dex \ - $(ANDROID_APK_NAME).ap_ \ - $(ANDROID_APK_NAME)-unsigned-unaligned.apk \ - $(ANDROID_APK_NAME)-unaligned.apk \ - $(ANDROID_APK_NAME).apk \ + FenCP.apk \ $(NULL) GARBAGE_DIRS += network-libs @@ -45,22 +40,23 @@ include $(topsrcdir)/config/rules.mk # include Android specific java flags - using these instead of what's in rules.mk include $(topsrcdir)/config/android-common.mk -tools:: $(ANDROID_APK_NAME).apk +tools:: FenCP.apk classes.dex: $(JAVAFILES) $(JAVAC) $(JAVAC_FLAGS) -d classes $(addprefix $(srcdir)/,$(JAVAFILES)) $(DX) --dex --output=$@ classes -$(ANDROID_APK_NAME).ap_: AndroidManifest.xml - $(AAPT) package -f -M $< -I $(ANDROID_SDK)/android.jar -S res -F $@ +FenCP.ap_: $(srcdir)/AndroidManifest.xml + $(AAPT) package -f -M $(srcdir)/AndroidManifest.xml -I $(ANDROID_SDK)/android.jar -S res -F $@ -$(ANDROID_APK_NAME)-unsigned-unaligned.apk: $(ANDROID_APK_NAME).ap_ classes.dex - cp $< $@ - $(ZIP) -0 $@ classes.dex +FenCP-unsigned-unaligned.apk: FenCP.ap_ classes.dex + $(APKBUILDER) $@ -v $(APKBUILDER_FLAGS) -z FenCP.ap_ -f classes.dex -$(ANDROID_APK_NAME)-unaligned.apk: $(ANDROID_APK_NAME)-unsigned-unaligned.apk - cp $< $@ - $(DEBUG_JARSIGNER) $@ +FenCP-unaligned.apk: FenCP-unsigned-unaligned.apk + cp FenCP-unsigned-unaligned.apk $@ +ifdef JARSIGNER + $(JARSIGNER) $@ +endif -$(ANDROID_APK_NAME).apk: $(ANDROID_APK_NAME)-unaligned.apk - $(ZIPALIGN) -f -v 4 $< $@ +FenCP.apk: FenCP-unaligned.apk + $(ZIPALIGN) -f -v 4 FenCP-unaligned.apk $@ diff --git a/build/mobile/sutagent/android/ffxcp/Makefile.in b/build/mobile/sutagent/android/ffxcp/Makefile.in index 2cabb757971..8c153756e8f 100644 --- a/build/mobile/sutagent/android/ffxcp/Makefile.in +++ b/build/mobile/sutagent/android/ffxcp/Makefile.in @@ -9,8 +9,6 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk -ANDROID_APK_NAME := FfxCP - JAVAFILES = \ DirCursor.java \ ffxcp.java \ @@ -30,10 +28,7 @@ RES_FILES = \ GARBAGE += \ AndroidManifest.xml \ classes.dex \ - $(ANDROID_APK_NAME).ap_ \ - $(ANDROID_APK_NAME)-unsigned-unaligned.apk \ - $(ANDROID_APK_NAME)-unaligned.apk \ - $(ANDROID_APK_NAME).apk \ + FfxCP.apk \ $(NULL) GARBAGE_DIRS += network-libs @@ -45,22 +40,23 @@ include $(topsrcdir)/config/rules.mk # include Android specific java flags - using these instead of what's in rules.mk include $(topsrcdir)/config/android-common.mk -tools:: $(ANDROID_APK_NAME).apk +tools:: FfxCP.apk classes.dex: $(JAVAFILES) $(JAVAC) $(JAVAC_FLAGS) -d classes $(addprefix $(srcdir)/,$(JAVAFILES)) $(DX) --dex --output=$@ classes -$(ANDROID_APK_NAME).ap_: AndroidManifest.xml - $(AAPT) package -f -M $< -I $(ANDROID_SDK)/android.jar -S res -F $@ +FfxCP.ap_: $(srcdir)/AndroidManifest.xml + $(AAPT) package -f -M $(srcdir)/AndroidManifest.xml -I $(ANDROID_SDK)/android.jar -S res -F $@ -$(ANDROID_APK_NAME)-unsigned-unaligned.apk: $(ANDROID_APK_NAME).ap_ classes.dex - cp $< $@ - $(ZIP) -0 $@ classes.dex +FfxCP-unsigned-unaligned.apk: FfxCP.ap_ classes.dex + $(APKBUILDER) $@ -v $(APKBUILDER_FLAGS) -z FfxCP.ap_ -f classes.dex -$(ANDROID_APK_NAME)-unaligned.apk: $(ANDROID_APK_NAME)-unsigned-unaligned.apk - cp $< $@ - $(DEBUG_JARSIGNER) $@ +FfxCP-unaligned.apk: FfxCP-unsigned-unaligned.apk + cp FfxCP-unsigned-unaligned.apk $@ +ifdef JARSIGNER + $(JARSIGNER) $@ +endif -$(ANDROID_APK_NAME).apk: $(ANDROID_APK_NAME)-unaligned.apk - $(ZIPALIGN) -f -v 4 $< $@ +FfxCP.apk: FfxCP-unaligned.apk + $(ZIPALIGN) -f -v 4 FfxCP-unaligned.apk $@ diff --git a/build/mobile/sutagent/android/watcher/Makefile.in b/build/mobile/sutagent/android/watcher/Makefile.in index c711e75ce35..7941103d5a3 100644 --- a/build/mobile/sutagent/android/watcher/Makefile.in +++ b/build/mobile/sutagent/android/watcher/Makefile.in @@ -9,8 +9,6 @@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk -ANDROID_APK_NAME := Watcher - JAVAFILES = \ IWatcherService.java \ RedirOutputThread.java \ @@ -34,10 +32,7 @@ RES_FILES = \ GARBAGE += \ AndroidManifest.xml \ classes.dex \ - $(ANDROID_APK_NAME).ap_ \ - $(ANDROID_APK_NAME)-unsigned-unaligned.apk \ - $(ANDROID_APK_NAME)-unaligned.apk \ - $(ANDROID_APK_NAME).apk \ + Watcher.apk \ $(NULL) GARBAGE_DIRS += res classes network-libs @@ -49,23 +44,29 @@ include $(topsrcdir)/config/rules.mk # include Android specific java flags - using these instead of what's in rules.mk include $(topsrcdir)/config/android-common.mk -tools:: $(ANDROID_APK_NAME).apk +tools:: Watcher.apk classes.dex: $(JAVAFILES) $(NSINSTALL) -D classes $(JAVAC) $(JAVAC_FLAGS) -d classes $(addprefix $(srcdir)/,$(JAVAFILES)) $(DX) --dex --output=$@ classes -$(ANDROID_APK_NAME).ap_: AndroidManifest.xml - $(AAPT) package -f -M $< -I $(ANDROID_SDK)/android.jar -S res -F $@ +Watcher.ap_: $(srcdir)/AndroidManifest.xml + $(AAPT) package -f -M $(srcdir)/AndroidManifest.xml -I $(ANDROID_SDK)/android.jar -S res -F $@ -$(ANDROID_APK_NAME)-unsigned-unaligned.apk: $(ANDROID_APK_NAME).ap_ classes.dex - cp $< $@ - $(ZIP) -0 $@ classes.dex +Watcher-unsigned-unaligned.apk: Watcher.ap_ classes.dex + $(APKBUILDER) $@ -v $(APKBUILDER_FLAGS) -z Watcher.ap_ -f classes.dex -$(ANDROID_APK_NAME)-unaligned.apk: $(ANDROID_APK_NAME)-unsigned-unaligned.apk - cp $< $@ - $(DEBUG_JARSIGNER) $@ +Watcher-unaligned.apk: Watcher-unsigned-unaligned.apk + cp Watcher-unsigned-unaligned.apk $@ +ifdef JARSIGNER + $(JARSIGNER) $@ +endif + +Watcher.apk: Watcher-unaligned.apk + $(ZIPALIGN) -f -v 4 Watcher-unaligned.apk $@ + +export:: + $(NSINSTALL) -D res + @(cd $(srcdir)/res && tar $(TAR_CREATE_FLAGS) - *) | (cd $(DEPTH)/build/mobile/sutagent/android/watcher/res && tar -xf -) -$(ANDROID_APK_NAME).apk: $(ANDROID_APK_NAME)-unaligned.apk - $(ZIPALIGN) -f -v 4 $< $@ diff --git a/config/android-common.mk b/config/android-common.mk index da51412f741..57c5623020e 100644 --- a/config/android-common.mk +++ b/config/android-common.mk @@ -14,11 +14,12 @@ endif DX=$(ANDROID_BUILD_TOOLS)/dx AAPT=$(ANDROID_BUILD_TOOLS)/aapt -AIDL=$(ANDROID_BUILD_TOOLS)/aidl -ADB=$(ANDROID_PLATFORM_TOOLS)/adb +APKBUILDER=$(ANDROID_SDK)/../../tools/apkbuilder ZIPALIGN=$(ANDROID_SDK)/../../tools/zipalign -# DEBUG_JARSIGNER always debug signs. -DEBUG_JARSIGNER=$(PYTHON) $(call core_abspath,$(topsrcdir)/mobile/android/debug_sign_tool.py) + +ifdef JARSIGNER + APKBUILDER_FLAGS += -u +endif # For Android, this defaults to $(ANDROID_SDK)/android.jar ifndef JAVA_BOOTCLASSPATH diff --git a/mobile/android/base/Makefile.in b/mobile/android/base/Makefile.in index 91dd2cc3a8d..a4db17b5c51 100644 --- a/mobile/android/base/Makefile.in +++ b/mobile/android/base/Makefile.in @@ -1221,7 +1221,7 @@ jars: $(NSINSTALL) -D jars $(AIDL_AUTOGEN_FILES): %.java: %.aidl - $(AIDL) -I$(srcdir)/braille $< + $(ANDROID_PLATFORM_TOOLS)/aidl -I$(srcdir)/braille $< CLASSES_WITH_JNI= \ org.mozilla.gecko.GeckoAppShell \ diff --git a/mobile/android/build.mk b/mobile/android/build.mk index f3c1304cdee..69f4004d5b1 100644 --- a/mobile/android/build.mk +++ b/mobile/android/build.mk @@ -4,7 +4,7 @@ include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk -installer: +installer: @$(MAKE) -C mobile/android/installer installer package: @@ -14,10 +14,6 @@ fast-package: @$(MAKE) package MOZ_FAST_PACKAGE=1 ifeq ($(OS_TARGET),Android) -# $(ADB) is defined in config/android-common.mk, but that file is not -# in scope when this file is read, so we define it locally. -ADB=$(ANDROID_PLATFORM_TOOLS)/adb - ifneq ($(MOZ_ANDROID_INSTALL_TARGET),) ANDROID_SERIAL = $(MOZ_ANDROID_INSTALL_TARGET) endif @@ -25,7 +21,7 @@ ifneq ($(ANDROID_SERIAL),) export ANDROID_SERIAL else # Determine if there's more than one device connected -android_devices=$(filter device,$(shell $(ADB) devices)) +android_devices=$(filter device,$(shell $(ANDROID_PLATFORM_TOOLS)/adb devices)) ifeq ($(android_devices),) install:: @echo "No devices are connected. Connect a device or start an emulator." @@ -34,14 +30,14 @@ else ifneq ($(android_devices),device) install:: @echo "Multiple devices are connected. Define ANDROID_SERIAL to specify the install target." - $(ADB) devices + $(ANDROID_PLATFORM_TOOLS)/adb devices @exit 1 endif endif endif install:: - $(ADB) install -r $(DIST)/$(PKG_PATH)$(PKG_BASENAME).apk + $(ANDROID_PLATFORM_TOOLS)/adb install -r $(DIST)/$(PKG_PATH)$(PKG_BASENAME).apk else @echo "Mobile can't be installed directly." @exit 1 diff --git a/mobile/android/debug_sign_tool.py b/mobile/android/debug_sign_tool.py index 9488931e763..b216ec5ad71 100755 --- a/mobile/android/debug_sign_tool.py +++ b/mobile/android/debug_sign_tool.py @@ -36,7 +36,7 @@ class DebugKeystore: """ def __init__(self, keystore): self._keystore = os.path.abspath(os.path.expanduser(keystore)) - self._alias = 'androiddebugkey' + self._alias = 'debug' self.verbose = False self.keytool = 'keytool' self.jarsigner = 'jarsigner' @@ -49,36 +49,24 @@ class DebugKeystore: def alias(self): return self._alias - def _check(self, args): - if self.verbose: - subprocess.check_call(args) + def _ensure_keystore(self): + if os.path.exists(self.keystore): + if self.verbose: + log.debug('Keystore exists at %s' % self.keystore) else: - subprocess.check_output(args) + self.create_keystore() - def keystore_contains_alias(self): - args = [ self.keytool, - '-list', - '-keystore', self.keystore, - '-storepass', 'android', - '-alias', self.alias, - ] - if self.verbose: - args.append('-v') - contains = True + def create_keystore(self): try: - self._check(args) - except subprocess.CalledProcessError as e: - contains = False - if self.verbose: - log.info('Keystore %s %s alias %s' % - (self.keystore, - 'contains' if contains else 'does not contain', - self.alias)) - return contains + path = os.path.dirname(self.keystore) + os.makedirs(path) + except OSError as exception: + if exception.errno != errno.EEXIST: + raise - def create_alias_in_keystore(self): args = [ self.keytool, - '-genkeypair', + '-genkey', + '-v', '-keystore', self.keystore, '-storepass', 'android', '-alias', self.alias, @@ -87,16 +75,12 @@ class DebugKeystore: '-keyalg', 'RSA', '-validity', '365', ] + subprocess.check_call(args) if self.verbose: - args.append('-v') - self._check(args) - if self.verbose: - log.info('Created alias %s in keystore %s' % - (self.alias, self.keystore)) + log.info('Created keystore at %s' % self.keystore) def sign(self, apk): - if not self.keystore_contains_alias(): - self.create_alias_in_keystore() + self._ensure_keystore() args = [ self.jarsigner, '-digestalg', 'SHA1', @@ -106,12 +90,9 @@ class DebugKeystore: apk, self.alias, ] + subprocess.check_call(args) if self.verbose: - args.append('-verbose') - self._check(args) - if self.verbose: - log.info('Signed %s with alias %s from keystore %s' % - (apk, self.alias, self.keystore)) + log.info('Signed %s with keystore at %s' % (apk, self.keystore)) def parse_args(argv): @@ -119,11 +100,11 @@ def parse_args(argv): parser.add_argument('apks', nargs='+', metavar='APK', help='Android packages to be signed') - parser.add_argument('-v', '--verbose', + parser.add_argument('-q', '--quiet', dest='verbose', - default=False, - action='store_true', - help='verbose output') + default=True, + action='store_false', + help='quiet output') parser.add_argument('--keytool', metavar='PATH', default='keytool', @@ -154,10 +135,9 @@ def main(): if args.force: try: - keystore.create_alias_in_keystore() + keystore.create_keystore() except subprocess.CalledProcessError as e: - log.error('Failed to force-create alias %s in keystore %s' % - (keystore.alias, keystore.keystore)) + log.error('Failed to force-create keystore') log.error(e) return 1 diff --git a/testing/testsuite-targets.mk b/testing/testsuite-targets.mk index 31d56443450..2e7baed84f1 100644 --- a/testing/testsuite-targets.mk +++ b/testing/testsuite-targets.mk @@ -66,7 +66,7 @@ RUN_MOCHITEST_REMOTE = \ RUN_MOCHITEST_ROBOCOP = \ rm -f ./$@.log && \ $(PYTHON) _tests/testing/mochitest/runtestsremote.py \ - --robocop-apk=$(DEPTH)/build/mobile/robocop/robocop-debug.apk \ + --robocop-apk=$(DEPTH)/build/mobile/robocop/robocop-debug-signed.apk \ --robocop-ids=$(DEPTH)/mobile/android/base/fennec_ids.txt \ --robocop-ini=$(DEPTH)/build/mobile/robocop/robocop.ini \ --console-level=INFO --log-file=./$@.log --file-level=INFO $(DM_FLAGS) --dm_trans=$(DM_TRANS) \ diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk index cec7c549927..f02d9060060 100644 --- a/toolkit/mozapps/installer/packager.mk +++ b/toolkit/mozapps/installer/packager.mk @@ -247,12 +247,10 @@ ifeq ($(MOZ_PKG_FORMAT),APK) JAVA_CLASSPATH = $(ANDROID_SDK)/android.jar include $(MOZILLA_DIR)/config/android-common.mk -# DEBUG_JARSIGNER is defined by android-common.mk and always debug -# signs. We want to release sign if possible. ifdef MOZ_SIGN_CMD -RELEASE_JARSIGNER := $(MOZ_SIGN_CMD) -f jar +JARSIGNER := $(MOZ_SIGN_CMD) -f jar else -RELEASE_JARSIGNER := $(DEBUG_JARSIGNER) +JARSIGNER ?= echo endif DIST_FILES = @@ -329,12 +327,10 @@ ifeq ($(MOZ_BUILD_APP),mobile/android) UPLOAD_EXTRA_FILES += robocop.apk UPLOAD_EXTRA_FILES += fennec_ids.txt ROBOCOP_PATH = $(call core_abspath,$(_ABS_DIST)/../build/mobile/robocop) -# Robocop and Fennec need to be signed with the same key, which means -# release signing them both. INNER_ROBOCOP_PACKAGE= \ $(NSINSTALL) $(GECKO_APP_AP_PATH)/fennec_ids.txt $(_ABS_DIST) && \ - cp $(ROBOCOP_PATH)/robocop-debug-unsigned-unaligned.apk $(_ABS_DIST)/robocop-unaligned.apk && \ - $(RELEASE_JARSIGNER) $(_ABS_DIST)/robocop-unaligned.apk && \ + cp $(ROBOCOP_PATH)/robocop-debug-signed-unaligned.apk $(_ABS_DIST)/robocop-unaligned.apk && \ + $(JARSIGNER) $(_ABS_DIST)/robocop-unaligned.apk && \ $(ZIPALIGN) -f -v 4 $(_ABS_DIST)/robocop-unaligned.apk $(_ABS_DIST)/robocop.apk endif else @@ -374,10 +370,9 @@ INNER_MAKE_PACKAGE = \ $(ZIP) -r9D $(_ABS_DIST)/gecko.ap_ $(DIST_FILES) -x $(NON_DIST_FILES) $(SZIP_LIBRARIES) && \ $(ZIP) -0 $(_ABS_DIST)/gecko.ap_ $(OMNIJAR_NAME)) && \ rm -f $(_ABS_DIST)/gecko.apk && \ - cp $(_ABS_DIST)/gecko.ap_ $(_ABS_DIST)/gecko.apk && \ - $(ZIP) -j0 $(_ABS_DIST)/gecko.apk $(STAGEPATH)$(MOZ_PKG_DIR)$(_BINPATH)/classes.dex && \ + $(APKBUILDER) $(_ABS_DIST)/gecko.apk -v $(APKBUILDER_FLAGS) -z $(_ABS_DIST)/gecko.ap_ -f $(STAGEPATH)$(MOZ_PKG_DIR)$(_BINPATH)/classes.dex && \ cp $(_ABS_DIST)/gecko.apk $(_ABS_DIST)/gecko-unsigned-unaligned.apk && \ - $(RELEASE_JARSIGNER) $(_ABS_DIST)/gecko.apk && \ + $(JARSIGNER) $(_ABS_DIST)/gecko.apk && \ $(ZIPALIGN) -f -v 4 $(_ABS_DIST)/gecko.apk $(PACKAGE) && \ $(INNER_ROBOCOP_PACKAGE)