emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Android port of Emacs


From: Po Lu
Subject: Re: Android port of Emacs
Date: Fri, 23 Jun 2023 16:52:52 +0800
User-agent: Gnus/5.13 (Gnus v5.13)

Gregory Heytings <gregory@heytings.org> writes:

> If that process was as trivial as you say it is, distros would not
> exist. Users will have to do that every time they want to upgrade
> their packages. And the same programs will be installed twice on their
> device (unless they want to use Emacs exclusively).

And most users will wish to use Emacs exclusively: its features are much
richer than that of the Termux application.

> I won't do that.  I'm not a student and you're not a teacher here.

Then the only conclusion I can reach is that what you said earlier was
wrong.  Android security policy cannot prevent Emacs from executing
programs, as long as executing read-only binaries is permitted, ptrace
continues to work, and executable memory mappings to files can continue
to be made.  All of which are required for either LLDB or Chromium to
work, and both are explicitly supported as part of Android.

> Not only will Termux not have to adopt that "solution", but they
> unequivocally said they will not do that, and they already have
> another solution, of which they say that it's the only correct
> solution.

Their ``other solution'' is to rely on yet another feature obsoleted by
Android: sharing files between APK packages, using android:sharedUserId.

Its documentation says:

    This constant is deprecated as of API level 29.

    Shared user IDs cause non-deterministic behavior within the package
    manager. As such, their use is strongly discouraged and might be
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    removed in a future version of Android.  Instead, use proper
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    communication mechanisms, such as services and content providers, to
    facilitate interoperability between shared components.  Existing
    apps can't remove this value, as migrating off a shared user ID
    isn't supported. In these apps, add
    android:sharedUserMaxSdkVersion="32" to avoid using shared user ID
    on new user installs.

The reason Termux developers believe that ptrace-based solutions are
unsuitable, is because it violates their interpretation of Google Play
Store policy.  We are not interested in distributing Emacs through
proprietary platforms, and thus are not limited by those policies.

In an ironic twist, Termux developers stopped being able to upload
updates to the Play Store, shortly after their developers came to their
``conclusions'', as the Play Store placed a minimum target API
requirement on new applications and their updates -- updating their
target API level to the requirement would stop them from being able to
execute binaries.

In fact, the approach I have taken is the only approach that Android has
not discouraged or decided to remove in the future.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]