guardianproject/gnupg-for-android is a open-source project on GitHub, written primarily in Java. It has 348 stars. A port of gnupg to Android (UNMAINTAINED!)
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
If you are using these tools in your own apps, we'd love to hear about
it. Email us at [email protected].
Gnu Privacy Guard (GPG) gives you access to the entire GnuPG suite of
encryption software. GnuPG is GNU’s tool for end-to-end secure communication
and encrypted data storage. This trusted protocol is the free software
alternative to PGP. GnuPG 2.1 is the new modularized version of GnuPG that now
supports OpenPGP and S/MIME.
Using Gnu Privacy Guard's Android Integration
One of the core goals of Gnu Privacy Guard is to provide integrated encryption
support in a way that feels natural on Android. That means it tries to be as
transparent as possible, and only pop up with there is no other way:
if you want to send someone an encrypted file, find them in your
Contacts/People app, and click on "Encrypt File To"
if you want encrypt something, then share it to Gnu Privacy Guard
if you want to view an encrypted file, share it with Gnu Privacy Guard and
it'll prompt you for your password and the app to view it with
if you want to import keys into your keyring, there are a few ways to do it:
click on a .pkr, .skr, .key, or pubring.gpg file in your email, dropbox,
SD card, etc.
click on a fingerprint URL, for example: openpgp4fpr:9F0FE587374BBE81
scan a fingerprint QRCode
Look for more features in the Android integration, and please post your ideas
in our issues tracker:
https://dev.guardianproject.info/projects/gpgandroid/issues
Using Gnu Privacy Guard from the Terminal
Before using Gnu Privacy Guard, be sure to launch the app and let it finish its
installation process. Once it has completed, then you're ready to use it. The
easiest way to get started with Gnu Privacy Guard is to install Android Terminal
Emulator. gpgcli will automatically configure Android Terminal Emulator as
long as you have the "Allow PATH extensions" settings enabled. Get the Android
Terminal Emulator at
https://play.google.com/store/apps/details?id=jackpal.androidterm
Currently, this app offers the full gnupg suite of commands in the terminal.
When you run the GnuPG tools in an app, a GNUPGHOME folder will be created for
that specific app. Because of the Android permissions model, its not possible
to create a shared GNUPGHOME without having it world-writable.
Use in Android Terminal Emulator
The app automatically configures Android Terminal Emulator to use the GnuPG
tools, as long as you have the Allow PATH extensions preference set.
Manual configuration and using it with other apps
In order to use the GnuPG tools in your app, preferred terminal emulator, or
adb shell, you need to set the PATH to include the full path to the GnuPG
aliases, for example:
WARNING: The above method stores key material inside the data dir of Gnu Privacy Guard
Gnu Privacy Guard is not able to read your key material, only root or your app
can, but the material will remain after the app is uninstalled. If this is not
desirable for you then you should set the environment variables managed in
The technical reason why is that GnuPG uses a lot of shared libraries, and
the only way Android has for finding shared libraries is the LD_LIBRARY_PATH
environment variable. GNU/Linux has rpath, Mac OS X has install names,
but Android has none of this stuff.
Please Report Bugs
This is an early release of a big project, so there will inevitable be
bugs. Help us improve this software by filing bug reports about any problem
that you encounter. Feature requests are also welcome!
https://dev.guardianproject.info/projects/gpgandroid/issues
Target Platform
We would like to target as many Android platforms as possible. Currently
there are three limiting APIs:
regex - provided in Android 2.2, SDK android-8 and above
pthread_rwlock* - provided in Android 2.3, SDK android-9 and above
pthread_atfork - provided in Android 4.0, SDK android-14 and above
regex could easily be included in the build, pthread_rwlock\* would be more
difficult. pthread_atfork is not really fully required, but might be in the
future.
The easiest way to get started is to use the script we made to make our
release builds. It deletes all changes from this project, then runs all the
steps needed to build the APK:
./make-release-build
Otherwise, you can break out the steps and run them individually while you are
working on the code:
make -C external/ distclean clean-assets
make -C external/
ndk-build clean
ndk-build
./setup-ant.sh
ant clean debug
Running the GnuPG tests
The GnuPG subprojects all include their own test suites. They end up being
quite large, so they are not included in the APK by default. If you want to
include all of the tests, then run make -C external/ assets-tests before
ndk-build. That gives you the same sequence as used in jenkins-build.sh,
which is how we run our tests:
make -C external/ distclean clean-assets
make -C external/
make -C external/ assets-tests
ndk-build clean
ndk-build
./setup-ant.sh
ant clean debug
Then to run the tests, first install the APK and run it so that it sets up all
of its included assets. Once the Android app has completed its initial setup,
run:
./assets/tests/launch_run-tests_on-android.sh
How to Build Individual Components
To compile the components individually you can use commands like (the order
that you run them is important):
make -C external/ gnupg-install
make -C external/ gnupg-static
make -C external/ gpgme-install
The results will be in external/data/data/info.guardianproject.gpg
Hacking Notes
Please conform to our code format standard.
For C files use format-code.sh.
For Java, please apply the official Android formatter profile
How active is development on guardianproject/gnupg-for-android?
The most recent commit recorded on guardianproject/gnupg-for-android was 9.7 years ago, based on the GitHub push timestamp. The repository has 113 forks — one of the better signals of community interest.
How many stars does guardianproject/gnupg-for-android have?
guardianproject/gnupg-for-android has 348 GitHub stars — refresh the page for the live number, or check github.com/guardianproject/gnupg-for-android. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is guardianproject/gnupg-for-android open source?
Yes — guardianproject/gnupg-for-android ships under the GPL-3.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/guardianproject/gnupg-for-android.
What is guardianproject/gnupg-for-android?
guardianproject/gnupg-for-android (guardianproject/gnupg-for-android) is a Java project on GitHub. From the project's own README: A port of gnupg to Android (UNMAINTAINED!)
Where do I read more about guardianproject/gnupg-for-android?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/guardianproject/gnupg-for-android is the definitive source.
Read full README in the tab above.
Is gnupg-for-android worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of gnupg-for-android.