History | View | Annotate | Download (29.7 KB)
set maxSdkVersion="20" until this is built with PIE to run on 21
android-21 now requires -pie -fPIE on all executables to run, but PIE wasnot supported until android-16.
https://code.google.com/p/android-developer-preview/issues/detail?id=888
bump versionCode to 3020 to give room for 0.3.1.x releases for non-PIE
In case anyone wants to make non-PIE fix releases based on 0.3.1, settingthe version code to allow for that possibility.
add app description to manifest to support p2p distribution
This allows other methods of distributing APKs to also include thedescription text, like the FDroid local repo swapping.
bump to version code 6 name 0.3.2
dismiss install dialog if user navigates away
This dismisses the install progress dialog if the user navigates away whilethe install is in process. Otherwise, there will be a crash when theinstall is complete and it tries to dismiss the dialog.
fixes #3058 https://dev.guardianproject.info/issues/3058
bump to version code 5 name 0.3.1
set minSdkVersion to 14/4.0/Ice Cream Sandwich
Things are not really usable on android-10, so I figure leave them with ausable version rather than force an upgrade to an unusable version.OpenPGP-Keychain supports down to android-9, so that's the best bet for...
set version name 0.3 code 4 and release!
get file extension associations working on more apps
Based on the comment in OpenPGP Keychain's AndroidManifest.xml:
Do not set mimeType for .gpg! Cyanogenmod's file manager will only show Keychain for .gpg files if no mimeType is set! For OI Filemanager it makes...
DecryptActivity: add ActionBar back button in case of crashes
Sometimes, something isn't handled quite right and DecryptActivitystays open instead of just disappearing. This provides an ActionBar backbutton to give the user some place to go when this happens.
FileHandlerActivity: add ActionBar back button in case of crashes
Sometimes, something isn't handled quite right and FileHandlerActivitystays open instead of just disappearing. This provides an ActionBar backbutton to give the user some place to go when this happens.
add SignFileActivity for signing incoming files with default key
There wasn't any way to sign files yet, this is based on the approach ofEncryptFileActivity and just provides a very simple interface to thesigning procedure.
allow "navigate up with app icon" in ActionBar in relevant Activities
Just provides the standard way to get back to MainActivity
port all UI from ActionBarSherlock to android-support-v7-appcompat
The app: thing in the XML files is odd, otherwise it was pretty simple.
closes #1467
purge useless local keyring search
recruit unused KeyListActivity become SelectKeysActivity
It turns out that the built-in Contacts picker cannot handling selectingmore than one contact at a time. This suck for choosing who to encrypt to,since you can encrypt a file to multiple people. Therefore, we have to...
bump version to 0.3 code 4
set min platform to android-9/2.3/Gingerbread
Its currently too much work for us to handle supporting older versions.This relies on a lot of new APIs both in the SDK, like the Contactshandling, and in the NDK.
Update target to the latest while I'm at it.
bump version to code 3 name 0.2.1
standardize on camelCase spelling of Gpg in class names
refs #1629
set version to code 2 name 0.2 for release
Finally!
Android's scheme matcher is case-sensitive, add 'openpgp4fpr' variations
Just a few guesses at the most likely variations of case that someone mightthink up. Also, it turns out that QRCodes have a special all UPPERCASEmode which makes the QR Code have less data, and therefore larger blocks...
use targetted mimeType for VIEW catch-all to avoid catching Contacts types
GPG's Contacts integration uses the app-specific type:vnd.android.cursor.item/vnd.info.guardianproject.gpg.encryptfiletoFileHandlerActivity should not catch that type, instead ContactIntentRouter...
every Activity should have a label, i.e. 'android:label'
accept *.bin files, some email clients name PGP attachments that way
refs #1455 refs #1456
handle .key file type as application/pgp-keys
On Samsung Galaxy Player 5.0 running Android 2.3.6, it converted a .pkrfile to a .key file, and labeled it 'application/pgp-keys'. This happenedin the Gmail app, but Astro File Manager did not know about the .key file,...
do NOT set noHistory on Activities that might pop up PinEntryActivity
When noHistory is set on an Activity, it is immediately killed when anyother Activity pops up. In this case, PinEntryActivity will pop up when apassword is needed. When that happens, the noHistory Activities get...
add ContentProvider to read from private files, to sent via VIEW Intents
Currently, the data is decrypted to the private 'files' directory inside ofthe app. This is better than the SDcard, but it is still writing it to thedisk, which is less than desirable. This is a temporary step towards...
claim openpgp4fpr: URI scheme and launch dialog to receive from keyservers
GPG now registers to handle the 'openpgp4fpr:' URI scheme as a way todirect OpenPGP 4 fingerprints to GPG for it to handle them. Currently, itprompts the user to download the key with that fingerprint from the PGP...
for now, route all application/pgp-encrypted data thru FileHandlerActivity
Once the encrypt Activity gets fixed up, this IntentFilter should be inthat Activity.
add DecryptActivity to handle decrypting anything we throw at it
Currently this only supports file:// Uris, but it is intended to handleall Uris once we get InputStream/OutputStream support into GnuPGData.
refs #1455 refs #1456 refs #1581
make EncryptFileActivity receive files via an Intent
This allows other internal Activities to call it to handle encryptingfiles.
refs #1454
add basic VerifyActivity to check .sig files
This currently just works with file:// Uris, and probably only files thatcome in via the .sig file association in AndroidManifest.xml. This is justa rough version to get the ball rolling. Once GnuPGData can handle files...
route known key files to ImportFileActivity, all else goes to FileHandlerActivity
Unfortunately, this can't all be nice and neat since .asc, .gpg, and .pgpfiles can all have multiple contents (keys, sigs, or encrypted data). Also,since these Activities just serve as data routers, keep them from being...
don't add the setup and install Activities to the history
once the user has gone thru them, they should forget they ever existed...
Perhaps we should also remove them from Recents, I'm not sure there.
put all of the single line Activity declarations at top of AndroidManifest
Just trying to make them a bit easier to find.
handle "Encrypt File To" ContactIntent using the gpg2 command line
This is a first step to getting the full flow working. Right now, its usingthe gpg2 tool in a Runtime.exec() call, then just writes out the file nextto the original file to be encrypted. Ultimately, gpgcli should handle...
Contacts mimeType should be specific to the action, not the included data
We incorrectly thought that the MIME Type used in the Contacts actions wasdescribing the data, but it is really supposed to describe the action.So we renamed it from openpgp4fpr to encryptfileto in the gpg namespace...
add associations for known file extension to MIME types
I got these from the Free Desktop standards, i.e. looking at my ownmachine in /usr/share/mime
add PGP's .pkr as a supported file type (refs #1455 refs #1454)
.pkr is the Public KeyRing binary format from PGP
added intent-filter tricks from vplayer to get more files sent to gpgcli (refs #1455 refs #1454)
It seems that you need to have a bunch of different intent-filters in orderto actually receive the files in all the relevant cases. But there arestill problem spots, for example OI File Manager does not find any app for...
move all Activity subclasses into a single java package
standardize class names, always include 'Activity' if a subclass, etc.
subclass Application to cleanly handle installing assets (fixes #1358)
It adds InstallActivity to show the ProgressDialog when installing.
This replaces the code that was originally in GnuPrivacyGuard.java and wasthen moved to MainActivity. Its currently an AsyncTask, but should be...
purge unneeded APG Intent test buttons, they're in gnupg-for-android-tests
this basically reverts:"setup APG Intent test buttons" 8693c7c3958b11a4e3d4a157a8cf8c70973e663e
APG DECRYPT_AND_RETURN Intent (issue #1442)
sort permissions for readability
add READ_EXTERNAL_STORAGE perm to be a good citizen
Some android distros allow you to disable automatic READ_EXTERNAL_STORAGEpermissions, and require apps to declare READ_EXTERNAL_STORAGE in order toread from the SD Card. Since we need that, we should declare that perm.
skeleton for handle actions from the contact app #1438
The ContactIntentRouter catches intents sent from a user clickingone of our actions in the People app and routes them to the appropriateactivity.
There currently are no activities, so it finish()es right away.
launch the fist run wizard when appropriate #1478
this is guaranteed to run after the assets have been installed andthe gnupg context initialized
added a skeleton "create key" UI that automatically gets name and email #1460
The context menus should be handled by Fragments, that's not sorted outyet. Currently the menus pop up, but don't do anything. Also, this is notyet wired up to actually create a key.
add craziness to allow file associations for .gpg .pgp .asc and .sig #1455
Thanks Dominik Schnuermann for the example!
add ContentProvider for searching by keyId and email, similar to APG's #1442
We can't actually make our ContentProvider work for apps that expect to useAPG's ContentProvider because we can't claim APG's permission for this. Soinstead, this is just a similar, tho expanded, API.
format AndroidManifest and add some docs to the Auth system
implement gnupg keyring -> contacts syncing #1438
This commit:
Add GnuPG account type
With this commit the "Gnupg" account stype shows up under theAccounts settings page.
Use modern dialog API via support lib to show pinentry
The dialog method we were using was using a deprecated API, now it'susing DialogFragment (from the support lib). The styles changes are toensure that pinentry appears on top of everything using this fragment method...
implement two-tab pager with Public and Private keylist
resolve pinentry orientation changing issues
we're treating PinEntryActivity as a dialog that once dismissed(either through back button, or some other event) CANNOT be reactivated.The fact the pinentry dialog closed is propagated back to gpg-agent.
This mimicks the behavior of pinentry on the desktop, if you kill it,...
fix external pinentrys
by using an abstract domain socket instead of a file-backed socketthis is because we can't chown nor chmod for different app uidswithout root. we still authenticate using SO_PEERCRED.
woot.
Revert "ignore changing in orientation, it causes issues in pinentry"
This reverts commit d7d8c222570528d52b799cf0999681370b9969b0.
the pinentry crashes/zombieing have been fixed, so we can allow rotation
move version stuff to GnuPrivacyGuard and eliminate GPGApplication
After reading about the android.app.Application class, its not reallyintended to be a global state class. It is meant to handle global statechanges, and has a specific API. GnuPrivacyGuard.java is currently two...
working implementation of encrypt-only ENCRYPT_AND_RETURN APG Intent
implement AGP's SELECT_SECRET_KEY Intent using the shared KeyListActivity
replace old ListKeysActivity with unified KeyListActivity
setup APG Intent test buttons
make app receive APG's SELECT_PUBLIC_KEYS Intent
set target SDK version to 17
ignore changing in orientation, it causes issues in pinentry
since the NDK setup is min android-8, make android:minSdkVersion="8"
format all XML using the Eclipse auto-formatter (Ctrl-Shift-F)
android:allowBackup="false"
add SearchKeysActivity to show results of a search of the local keyring
rename services to better describe their function
add preferences screen
first setting controls start on boot
refactor pinentry into its own service and start it at boot issue #1231
also fixes crash when setting the PATH but NativeHelper.setup() hasn't been called
draw pinentry dialog activity over the existing activity
append GnuPG tools to Android Terminal Emulator's PATH
add a skeleton SEND intent handler for .gpg and .asc files
android:targetSdkVersion="16" (4.1.2)
let the build tools set android:debuggable
From SDK Tools : ( SDK Tools, Revision 8 (December 2010) )
Support for a true debug build. Developers no longer need to add theandroid:debuggable attribute to the <application> tag in the manifest — thebuild tools add the attribute automatically. In Eclipse/ADT, all incremental...
Move PinEntryActivity to pinentry package
Be a dialog
Add the new java activity and cleanup the handler
pinentry: integrate the Android pinentry activity (the gui)
add ListKeysActivity as a place to test the gpgme keyring searching
Change project config to support native code debugging.
include upstream changes for npth and gnupg to get things working on android < 9
added perms: INTERNET for keyservers, WRITE_EXTERNAL_STORAGE for key import/export
set app logo
sketched out a RemoteService for running gpg-agent and dirmngr in
pthread_rwlock_* is required by dirmngr, but was added in android-9/2.3 so up min platform
minimum target: Android 2.2/android-8 because gnupg needs regexp support
rename app from Gnupg to GnuPrivacyGuard/gpg
added blank template Android project