]> git.eshelyaron.com Git - emacs.git/commitdiff
Update Android port
authorPo Lu <luangruo@yahoo.com>
Sat, 15 Jul 2023 01:53:22 +0000 (09:53 +0800)
committerPo Lu <luangruo@yahoo.com>
Sat, 15 Jul 2023 01:53:22 +0000 (09:53 +0800)
* doc/emacs/android.texi (Android): Add new node to menu.
(Android Environment): Add footnote pointing to new node.
(Android Software): New node.
* doc/emacs/emacs.texi (Top): Add new node to menu.
* java/AndroidManifest.xml.in (manifest): Fix location of
sharedUserId property.
* java/INSTALL: Improve documentation of shared user ID
support.

doc/emacs/android.texi
doc/emacs/emacs.texi
java/AndroidManifest.xml.in
java/INSTALL

index 3e27c01925710c359e8f64ef854168714011b5f7..df73ee60c5da31e2e2eb9354cd14c33604f6fb2f 100644 (file)
@@ -21,6 +21,7 @@ about using such devices with Emacs, @pxref{Other Input Devices}.
 * Android Windowing::           The Android window system.
 * Android Fonts::               Font selection under Android.
 * Android Troubleshooting::     Dealing with problems.
+* Android Software::            Getting extra software.
 @end menu
 
 @node What is Android?
@@ -254,7 +255,12 @@ operating system; however, from the perspective of applications and
 Emacs, the system has an overwhelming number of users.
 
   Each application runs in its own user, with its home directory set
-to its app data directory (@pxref{Android File System}.)
+to its app data directory (@pxref{Android File
+System}.)@footnote{Except in cases where a ``shared user ID'' is
+specified and other applications signed using the same ``package
+signing key'' are installed, in which case Emacs runs as the same user
+and has access to the same files as each of the aformentioned
+applications.}
 
   Each application is also prohibited from accessing many system
 directories and the app data directories of other applications.
@@ -663,3 +669,40 @@ can then be accessed by any file manager program.
   If you can find out how to open that documents provider in the file
 manager that comes with your device, you can rename, delete, or edit
 your initialization or dump files from there instead.
+
+@node Android Software
+@section Installing extra software on Android
+@cindex installing extra software on Android
+@cindex installing Unix software on Android
+
+  Android includes an extremely limited set of Unix-like command line
+tools in a default installation.  Several projects exist to argument
+this selection, providing options that range from improved
+reproductions of Unix command-line utilities to package repositories
+containing extensive collections of free GNU and Unix software.
+
+  @uref{http://busybox.net, Busybox} provides Unix utilities and
+limited replicas of certain popular GNU programs such as
+@command{wget} in a single statically-linked Linux binary, which is
+capable of running under Android.
+
+  @uref{https://termux.dev, Termux} provides a package manager based
+on the Debian project's @command{dpkg} system and a set of package
+repositories containing substantial amounts of free software for Unix
+systems, including compilers, debuggers, and runtimes for languages
+such as C, C++, Java, Python and Common Lisp.  These packages are
+normally installed from within a purpose-built terminal emulator
+application, but Emacs can access them if it is built with the same
+application signing key as the Termux terminal emulator, and with its
+``shared user ID'' set to the package name of the terminal emulator
+program.  The @file{java/INSTALL} within the Emacs distribution
+explains how to build Emacs in this fashion.
+
+  @uref{https://github.com/termux/termux-packages, termux-packages}
+provides the package definitions that are used by Termux to generate
+their package repositories, which may also be independently compiled
+for installation within Emacs's home directory.
+
+  In addition to the projects mentioned above, statically linked
+binaries for most Linux kernel-based systems can also be run on
+Android.
index 7ce1a53f934dcf3485a2170f79016bca65ba68cb..92be9f9b9a9102ac8b5ea90bd7f67aef3d73b93e 100644 (file)
@@ -1271,6 +1271,7 @@ Emacs and Android
 * Android Windowing::           The Android window system.
 * Android Fonts::               Font selection under Android.
 * Android Troubleshooting::     Dealing with problems.
+* Android Software::            Getting extra software.
 
 Emacs and unconventional input devices
 
index 3aae2032fffc784839203264723949282bb6d9ee..895e7f88c57927f297f4c67f2460bd2b8cdb4dd5 100644 (file)
@@ -25,6 +25,8 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>. -->
          android:targetSandboxVersion="1"
          android:installLocation="auto"
          android:requestLegacyExternalStorage="true"
+         @ANDROID_SHARED_USER_ID@
+         @ANDROID_SHARED_USER_NAME@
          android:versionCode="@emacs_major_version@"
          android:versionName="@version@">
 
@@ -74,8 +76,7 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>. -->
               android:supportsRtl="true"
               android:theme="@style/EmacsStyle"
               android:debuggable="@ANDROID_DEBUGGABLE@"
-              @ANDROID_SHARED_USER_ID@
-              @ANDROID_SHARED_USER_NAME@
+              android:allowBackup="true"
               android:extractNativeLibs="true">
 
     <activity android:name="org.gnu.emacs.EmacsActivity"
index 63b99272004e478b4080b873c50eff5470850884..0646db426e0f72d825cdb2dcd7154f6df18ecb06 100644 (file)
@@ -161,15 +161,24 @@ to provide both debug and release versions.
 BUILDING WITH A SHARED USER ID
 
 Sometimes it may be desirable to build Emacs so that it is able to
-access executables from another program.  To achieve this, that other
-program must have a ``shared user ID'', and be signed with the same
-signing key used to sign Emacs (normally `emacs.keystore'.)
+access executables and application data from another program.  To
+achieve this, that other program must have a ``shared user ID'', and
+be signed with the same signing key used to sign Emacs (normally
+`emacs.keystore'.)
 
 Once you have both that signing key and its ``shared user ID'', you
 can give it to configure:
 
     ./configure --with-shared-user-id=MY.SHARED.USER.ID
 
+For instance,
+
+    ./configure --with-shared-user-id=com.termux
+
+will result in Termux (https://termux.dev)'s application data being
+accessible to Emacs, within its own application data directory located
+at `/data/data/com.termux/files'.
+
 Don't do this if you already have Emacs installed with a different
 shared user ID, as the system does not allow programs to change their
 user IDs after being installed.