gecko-dev/mobile/android/docs/bouncer.rst
Nick Alexander 891d11a620 Bug 1234629 - Post: Add simple bouncer APK docs. r=me
--HG--
extra : histedit_source : 2a7ca7e83a79edfa85662aa4cbd225fc6f1456d2%2C1aac94bd9388d1268f85d0203d4495399c24c3df
extra : rebase_source : 78433bbef80356fa17ab215d23768834ca32a455
extra : commitid : Cl8s8ivnO55
extra : source : c79f4a8c3e86aa0c1c693f637b9d5ac053a6fd2f
extra : amend_source : 0087a285e17e660e0729c6394e2e72cf5118d655
2016-02-04 15:54:12 -08:00

39 lines
1.9 KiB
ReStructuredText

.. -*- Mode: rst; fill-column: 100; -*-
=========================================
The Firefox for Android install bouncer
=========================================
`Bug 1234629 <https://bugzilla.mozilla.org/show_bug.cgi?id=1234629>`_ and `Bug 1163082
<https://bugzilla.mozilla.org/show_bug.cgi?id=1163082>`_ combine to allow building a very small
Fennec-like "bouncer" APK that redirects (bounces) a potential Fennec user to the marketplace of
their choice -- usually the Google Play Store -- to install the real Firefox for Android application
APK.
The real APK should install seamlessly over top of the bouncer APK. Care is taken to keep the
bouncer and application APK <permission> manifest definitions identical, and to have the bouncer APK
<activity> manifest definitions look similar to the application APK <activity> manifest definitions.
In addition, the bouncer APK can carry a Fennec distribution, which it copies onto the device before
redirecting to the marketplace. The application APK recognizes the installed distribution and
customizes itself accordingly on first run.
The motivation is to allow partners to pre-install the very small bouncer APK on shipping devices
and to have a smooth path to upgrade to the full application APK, with a partner-specific
distribution in place.
Technical details
=================
To build the bouncer APK, define ``MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER``. To pack a distribution
into the bouncer APK (and *not* into the application APK), add a line like::
ac_add_options --with-android-distribution-directory=/path/to/fennec-distribution-sample
to your ``mozconfig`` file. See the `general distribution documentation on the wiki
<https://wiki.mozilla.org/Mobile/Distribution_Files>`_ for more information.
The ``distribution`` directory should end up in the ``assets/distribution`` directory of the bouncer
APK. It will be copied into ``/data/data/$ANDROID_PACKAGE_NAME/distribution`` when the bouncer
executes.