summaryrefslogtreecommitdiffstats
path: root/tzdata
diff options
context:
space:
mode:
authorNeil Fuller <nfuller@google.com>2015-05-14 17:02:32 +0100
committerNeil Fuller <nfuller@google.com>2015-05-15 09:12:01 +0000
commit266664659f091122ec603435bc3dea4282a353f1 (patch)
treeb7b63dcbea7c4547c40c95b3e88a06f14d6ee8a9 /tzdata
parentaf13f698a348ab33fb37df20fb9a7fd45e07edfe (diff)
downloadlibcore-266664659f091122ec603435bc3dea4282a353f1.zip
libcore-266664659f091122ec603435bc3dea4282a353f1.tar.gz
libcore-266664659f091122ec603435bc3dea4282a353f1.tar.bz2
Remove signature generation from UpdateTestApp
The need for a signature was removed in internal changes for the M release. Instead, a permission is required. Related commits: 12964bf5dd36d13fc25efef7c7175a677f9490a5 ef3d6079a55f559191c90d15e3f30a72b576c499 Bug: 19941636 (cherry picked from commit ba148e2de81badc77ad21daca18996d0766e412e) Change-Id: Ie107b344b4e60cd4d71fe78a87d2260405d94c3a
Diffstat (limited to 'tzdata')
-rw-r--r--tzdata/update_test_app/AndroidManifest.xml3
-rw-r--r--tzdata/update_test_app/src/libcore/tzdata/update_test_app/installupdatetestapp/MainActivity.java102
2 files changed, 3 insertions, 102 deletions
diff --git a/tzdata/update_test_app/AndroidManifest.xml b/tzdata/update_test_app/AndroidManifest.xml
index 67a8450..081aae5 100644
--- a/tzdata/update_test_app/AndroidManifest.xml
+++ b/tzdata/update_test_app/AndroidManifest.xml
@@ -2,8 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="libcore.tzdata.update_test_app.installupdatetestapp" >
- <uses-permission android:name="android.permission.WRITE_SETTINGS" />
- <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
+ <uses-permission android:name="android.permission.UPDATE_CONFIG" />
<application
android:allowBackup="false"
diff --git a/tzdata/update_test_app/src/libcore/tzdata/update_test_app/installupdatetestapp/MainActivity.java b/tzdata/update_test_app/src/libcore/tzdata/update_test_app/installupdatetestapp/MainActivity.java
index f9d911b..2348e43 100644
--- a/tzdata/update_test_app/src/libcore/tzdata/update_test_app/installupdatetestapp/MainActivity.java
+++ b/tzdata/update_test_app/src/libcore/tzdata/update_test_app/installupdatetestapp/MainActivity.java
@@ -29,17 +29,12 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
-import java.security.KeyFactory;
-import java.security.PrivateKey;
-import java.security.Signature;
-import java.security.spec.PKCS8EncodedKeySpec;
import java.util.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -47,45 +42,9 @@ import java.util.concurrent.Executors;
public class MainActivity extends Activity implements View.OnClickListener {
- private static final String UPDATE_CERTIFICATE_KEY = "config_update_certificate";
private static final String EXTRA_REQUIRED_HASH = "REQUIRED_HASH";
- private static final String EXTRA_SIGNATURE = "SIGNATURE";
private static final String EXTRA_VERSION_NUMBER = "VERSION";
- public static final String TEST_CERT = "" +
- "MIIDsjCCAxugAwIBAgIJAPLf2gS0zYGUMA0GCSqGSIb3DQEBBQUAMIGYMQswCQYDVQQGEwJVUzET" +
- "MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEPMA0GA1UEChMGR29v" +
- "Z2xlMRAwDgYDVQQLEwd0ZXN0aW5nMRYwFAYDVQQDEw1HZXJlbXkgQ29uZHJhMSEwHwYJKoZIhvcN" +
- "AQkBFhJnY29uZHJhQGdvb2dsZS5jb20wHhcNMTIwNzE0MTc1MjIxWhcNMTIwODEzMTc1MjIxWjCB" +
- "mDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZp" +
- "ZXcxDzANBgNVBAoTBkdvb2dsZTEQMA4GA1UECxMHdGVzdGluZzEWMBQGA1UEAxMNR2VyZW15IENv" +
- "bmRyYTEhMB8GCSqGSIb3DQEJARYSZ2NvbmRyYUBnb29nbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUA" +
- "A4GNADCBiQKBgQCjGGHATBYlmas+0sEECkno8LZ1KPglb/mfe6VpCT3GhSr+7br7NG/ZwGZnEhLq" +
- "E7YIH4fxltHmQC3Tz+jM1YN+kMaQgRRjo/LBCJdOKaMwUbkVynAH6OYsKevjrOPk8lfM5SFQzJMG" +
- "sA9+Tfopr5xg0BwZ1vA/+E3mE7Tr3M2UvwIDAQABo4IBADCB/TAdBgNVHQ4EFgQUhzkS9E6G+x8W" +
- "L4EsmRjDxu28tHUwgc0GA1UdIwSBxTCBwoAUhzkS9E6G+x8WL4EsmRjDxu28tHWhgZ6kgZswgZgx" +
- "CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3" +
- "MQ8wDQYDVQQKEwZHb29nbGUxEDAOBgNVBAsTB3Rlc3RpbmcxFjAUBgNVBAMTDUdlcmVteSBDb25k" +
- "cmExITAfBgkqhkiG9w0BCQEWEmdjb25kcmFAZ29vZ2xlLmNvbYIJAPLf2gS0zYGUMAwGA1UdEwQF" +
- "MAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAYiugFDmbDOQ2U/+mqNt7o8ftlEo9SJrns6O8uTtK6AvR" +
- "orDrR1AXTXkuxwLSbmVfedMGOZy7Awh7iZa8hw5x9XmUudfNxvmrKVEwGQY2DZ9PXbrnta/dwbhK" +
- "mWfoepESVbo7CKIhJp8gRW0h1Z55ETXD57aGJRvQS4pxkP8ANhM=";
-
-
- public static final String TEST_KEY = "" +
- "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKMYYcBMFiWZqz7SwQQKSejwtnUo" +
- "+CVv+Z97pWkJPcaFKv7tuvs0b9nAZmcSEuoTtggfh/GW0eZALdPP6MzVg36QxpCBFGOj8sEIl04p" +
- "ozBRuRXKcAfo5iwp6+Os4+TyV8zlIVDMkwawD35N+imvnGDQHBnW8D/4TeYTtOvczZS/AgMBAAEC" +
- "gYBxwFalNSwZK3WJipq+g6KLCiBn1JxGGDQlLKrweFaSuFyFky9fd3IvkIabirqQchD612sMb+GT" +
- "0t1jptW6z4w2w6++IW0A3apDOCwoD+uvDBXrbFqI0VbyAWUNqHVdaFFIRk2IHGEE6463mGRdmILX" +
- "IlCd/85RTHReg4rl/GFqWQJBANgLAIR4pWbl5Gm+DtY18wp6Q3pJAAMkmP/lISCBIidu1zcqYIKt" +
- "PoDW4Knq9xnhxPbXrXKv4YzZWHBK8GkKhQ0CQQDBQnXufQcMew+PwiS0oJvS+eQ6YJwynuqG2ejg" +
- "WE+T7489jKtscRATpUXpZUYmDLGg9bLt7L62hFvFSj2LO2X7AkBcdrD9AWnBFWlh/G77LVHczSEu" +
- "KCoyLiqxcs5vy/TjLaQ8vw1ZQG580/qJnr+tOxyCjSJ18GK3VppsTRaBznfNAkB3nuCKNp9HTWCL" +
- "dfrsRsFMrFpk++mSt6SoxXaMbn0LL2u1CD4PCEiQMGt+lK3/3TmRTKNs+23sYS7Ahjxj0udDAkEA" +
- "p57Nj65WNaWeYiOfTwKXkLj8l29H5NbaGWxPT0XkWr4PvBOFZVH/wj0/qc3CMVGnv11+DyO+QUCN" +
- "SqBB5aRe8g==";
-
private EditText actionEditText;
private EditText versionEditText;
private EditText contentPathEditText;
@@ -137,27 +96,10 @@ public class MainActivity extends Activity implements View.OnClickListener {
}
publishProgress("Created copy of " + contentFile + " at " + copyOfContentFile);
- String originalCert = null;
try {
- originalCert = overrideCert(TEST_CERT);
- sleep(1000);
- publishProgress("Overridden update cert");
-
- String signature = createSignature(copyOfContentFile, version, requiredHash);
- sendIntent(copyOfContentFile, action, version, requiredHash, signature);
- publishProgress("Sent update intent");
+ sendIntent(copyOfContentFile, action, version, requiredHash);
} catch (Exception e) {
publishProgress("Error", exceptionToString(e));
- } finally {
- if (originalCert != null) {
- sleep(1000);
- try {
- overrideCert(originalCert);
- publishProgress("Reverted update cert");
- } catch (Exception e) {
- publishProgress("Unable to revert update cert", exceptionToString(e));
- }
- }
}
publishProgress("Update intent sent successfully");
return null;
@@ -172,15 +114,6 @@ public class MainActivity extends Activity implements View.OnClickListener {
}.executeOnExecutor(executor);
}
- private String overrideCert(String cert) throws Exception {
- final String key = UPDATE_CERTIFICATE_KEY;
- String originalCert = Settings.Secure.getString(getContentResolver(), key);
- if (!Settings.Secure.putString(getContentResolver(), key, cert)) {
- throw new Exception("Unable to override update certificate");
- }
- return originalCert;
- }
-
private void sleep(long millisDelay) {
try {
Thread.sleep(millisDelay);
@@ -190,7 +123,7 @@ public class MainActivity extends Activity implements View.OnClickListener {
}
private void sendIntent(
- File contentFile, String action, String version, String required, String sig) {
+ File contentFile, String action, String version, String required) {
Intent i = new Intent();
i.setAction(action);
Uri contentUri =
@@ -201,7 +134,6 @@ public class MainActivity extends Activity implements View.OnClickListener {
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.putExtra(EXTRA_VERSION_NUMBER, version);
i.putExtra(EXTRA_REQUIRED_HASH, required);
- i.putExtra(EXTRA_SIGNATURE, sig);
sendBroadcast(i);
}
@@ -220,36 +152,6 @@ public class MainActivity extends Activity implements View.OnClickListener {
logView.scrollTo(0, scrollAmount);
}
- private static String createSignature(File contentFile, String version, String requiredHash)
- throws Exception {
- byte[] contentBytes = readBytes(contentFile);
- Signature signer = Signature.getInstance("SHA512withRSA");
- signer.initSign(createKey());
- signer.update(contentBytes);
- signer.update(version.trim().getBytes());
- signer.update(requiredHash.getBytes());
- return new String(Base64.encode(signer.sign(), Base64.DEFAULT));
- }
-
- private static byte[] readBytes(File contentFile) throws IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- try (FileInputStream fis = new FileInputStream(contentFile)) {
- int count;
- byte[] buffer = new byte[8192];
- while ((count = fis.read(buffer)) != -1) {
- baos.write(buffer, 0, count);
- }
- }
- return baos.toByteArray();
- }
-
- private static PrivateKey createKey() throws Exception {
- byte[] derKey = Base64.decode(TEST_KEY.getBytes(), Base64.DEFAULT);
- PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(derKey);
- KeyFactory keyFactory = KeyFactory.getInstance("RSA");
- return keyFactory.generatePrivate(keySpec);
- }
-
private static String exceptionToString(Exception e) {
StringWriter writer = new StringWriter();
e.printStackTrace(new PrintWriter(writer));