8 Commits
6 changed files with 10 additions and 15 deletions
+1
View File
@@ -1,6 +1,7 @@
/local.properties
/.idea
/build
*.iml
# Built application files
*.apk
+1 -9
View File
@@ -1,11 +1,3 @@
# Keycard Installer for Android
This is an Android application to install the [keycard applet](https://github.com/status-im/status-keycard) to a
smartcard via NFC. The compiled cap file of the applet is bundled in the application. Currently, version 2.0rc1 of the
applet is installed.
If you work with the Status Keycard this is a quick utility to reinstall the applet.
[Download APK](https://github.com/status-im/keycard-installer-android/releases/download/v0.0.7/smartcard-cap-installer-debug.apk)
![https://github.com/status-im/smartcard-cap-installer-test/blob/master/docs/demo.gif?raw=true](https://github.com/status-im/smartcard-cap-installer-test/blob/master/docs/demo.gif?raw=true)
discountinued - use [https://github.com/status-im/keycard-cli](https://github.com/status-im/keycard-cli)
+3 -3
View File
@@ -6,8 +6,8 @@ android {
applicationId "im.status.keycard_installer.installer"
minSdkVersion 19
targetSdkVersion 27
versionCode 7
versionName "0.0.7"
versionCode 220
versionName "2.2.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
@@ -22,7 +22,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.github.status-im.status-keycard-java:android:2.0rc1'
implementation 'com.github.status-im.status-keycard-java:android:7ce0136'
implementation 'de.cotech:nfc-sweetspot:1.1'
testImplementation 'junit:junit:4.12'
Binary file not shown.
@@ -55,14 +55,16 @@ public class Installer {
Logger.i("installing Keycard applet...");
cmdSet.installKeycardApplet().checkOK();
this.personalizeApplet();
if (testSecrets) {
this.personalizeApplet();
}
long duration = System.currentTimeMillis() - startTime;
Logger.i(String.format("\n\ninstallation completed in %d seconds", duration / 1000));
}
private void personalizeApplet() throws NoSuchAlgorithmException, InvalidKeySpecException, APDUException, IOException {
Secrets secrets = testSecrets ? Secrets.testSecrets() : Secrets.generate();
Secrets secrets = Secrets.testSecrets();
KeycardCommandSet cmdSet = new KeycardCommandSet(this.plainChannel);
cmdSet.select().checkOK();
+1 -1
View File
@@ -27,7 +27,7 @@
android:id="@+id/buttonInstall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Install Secure"/>
android:text="Install w/o INIT"/>
<Button
android:id="@+id/buttonInstallTest"