--- /home/fdroid/fdroiddata/tmp/org.billthefarmer.buses_103.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_org.billthefarmer.buses_103.apk ├── /usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {} │┄ error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}` (b): │┄ DOES NOT VERIFY │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. CHUNKED_SHA256 digest mismatch. Expected: <46598db987b7a8c42811241f2b0e11ac6d09918bf3e74405b3ef0fc06d978035>, actual: <303959d2df99db26b225046307c92e12248754fa1a0225790dfc1cfcc56e3842> │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. VERITY_CHUNKED_SHA256 digest mismatch. Expected: , actual: │ @@ -1,19 +0,0 @@ │ -Verifies │ -Verified using v1 scheme (JAR signing): true │ -Verified using v2 scheme (APK Signature Scheme v2): true │ -Verified using v3 scheme (APK Signature Scheme v3): true │ -Verified using v4 scheme (APK Signature Scheme v4): false │ -Verified for SourceStamp: false │ -Number of signers: 1 │ -Signer #1 certificate DN: CN=FDroid, OU=FDroid, O=fdroid.org, L=ORG, ST=ORG, C=UK │ -Signer #1 certificate SHA-256 digest: 10513e8b9df6b58d2f6b83a3d937ee5cf8aa9cbbe0d69439e760360ca686f07d │ -Signer #1 certificate SHA-1 digest: c5ca5c8fc028197926732175c2ea1aef679e4793 │ -Signer #1 certificate MD5 digest: 5d9f33e223b1c55df925a8b95dae0f14 │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: dcb2ebb9f90c33795f1c3ca15bb3f10d04b64582fa8fced96f3eb79c4a5863aa │ -Signer #1 public key SHA-1 digest: e8879c37012a8e08f32b26c1e1d6f4e4e13b615c │ -Signer #1 public key MD5 digest: 71b7d9a86697bcadc58de1e1fcb57d04 │ -WARNING: META-INF/com/android/build/gradle/app-metadata.properties not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/CHANGES not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/README.md not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. ├── zipinfo {} │ @@ -107,8 +107,8 @@ │ -rw---- 0.0 fat 862 b- stor 81-Jan-01 01:01 res/z6.png │ -rw---- 0.0 fat 1144 b- stor 81-Jan-01 01:01 res/z61.png │ -rw---- 0.0 fat 4434 b- stor 81-Jan-01 01:01 res/zt.png │ -rw---- 0.0 fat 11916 b- stor 81-Jan-01 01:01 resources.arsc │ -rw---- 2.0 fat 7079 b- defN 81-Jan-01 01:01 META-INF/43E8D75D.SF │ -rw---- 2.0 fat 1336 b- defN 81-Jan-01 01:01 META-INF/43E8D75D.RSA │ -rw---- 2.0 fat 6971 b- defN 81-Jan-01 01:01 META-INF/MANIFEST.MF │ -112 files, 1335209 bytes uncompressed, 783644 bytes compressed: 41.3% │ +112 files, 1335209 bytes uncompressed, 783641 bytes compressed: 41.3% ├── classes.dex │ ├── dexdump -a -d -f -h {} │ │┄ Ignoring differences in offsets to keep diff size reasonable. │ │ @@ -1,12 +1,12 @@ │ │ DEX version '035' │ │ DEX file header: │ │ magic : 'dex\n035\0' │ │ -checksum : 0b116bc3 │ │ -signature : 7b1d...a15b │ │ +checksum : dd916ae2 │ │ +signature : ba41...60b8 │ │ file_size : 846756 │ │ header_size : 112 │ │ link_size : 0 │ │ link_off : 0 (0x000000) │ │ string_ids_size : 7493 │ │ string_ids_off : 112 (0x000070) │ │ type_ids_size : 1082 │ │ @@ -48,15 +48,15 @@ │ │ type : 'Ljava/lang/String;' │ │ access : 0x0019 (PUBLIC STATIC FINAL) │ │ value : "release" │ │ #2 : (in Lorg/billthefarmer/buses/BuildConfig;) │ │ name : 'BUILT' │ │ type : 'J' │ │ access : 0x0019 (PUBLIC STATIC FINAL) │ │ - value : 1682730087845 │ │ + value : 1683023664035 │ │ #3 : (in Lorg/billthefarmer/buses/BuildConfig;) │ │ name : 'DEBUG' │ │ type : 'Z' │ │ access : 0x0019 (PUBLIC STATIC FINAL) │ │ value : false │ │ #4 : (in Lorg/billthefarmer/buses/BuildConfig;) │ │ name : 'VERSION_CODE' │ │ @@ -1962,15 +1962,15 @@ │ │ 0271b6: 6e10 eb03 0300 |003b: invoke-virtual {v3}, Ljava/util/regex/Matcher;.find:()Z // method@03eb │ │ 0271bc: 0a04 |003e: move-result v4 │ │ 0271be: 3804 1a00 |003f: if-eqz v4, 0059 // +001a │ │ 0271c2: 6e10 f203 0300 |0041: invoke-virtual {v3}, Ljava/util/regex/Matcher;.start:()I // method@03f2 │ │ 0271c8: 0a04 |0044: move-result v4 │ │ 0271ca: 6e10 ea03 0300 |0045: invoke-virtual {v3}, Ljava/util/regex/Matcher;.end:()I // method@03ea │ │ 0271d0: 0a03 |0048: move-result v3 │ │ -0271d2: 1805 a575 87ca 8701 0000 |0049: const-wide v5, #double 8.31379e-312 // #00000187ca8775a5 │ │ +0271d2: 1805 a313 07dc 8701 0000 |0049: const-wide v5, #double 8.31524e-312 // #00000187dc0713a3 │ │ 0271dc: 7120 4702 6500 |004e: invoke-static {v5, v6}, Ljava/lang/Long;.valueOf:(J)Ljava/lang/Long; // method@0247 │ │ 0271e2: 0c05 |0051: move-result-object v5 │ │ 0271e4: 6e20 2303 5100 |0052: invoke-virtual {v1, v5}, Ljava/text/DateFormat;.format:(Ljava/lang/Object;)Ljava/lang/String; // method@0323 │ │ 0271ea: 0c01 |0055: move-result-object v1 │ │ 0271ec: 6e40 3301 4213 |0056: invoke-virtual {v2, v4, v3, v1}, Landroid/text/SpannableStringBuilder;.replace:(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder; // method@0133 │ │ 0271f2: 6e20 1400 2000 |0059: invoke-virtual {v0, v2}, Landroid/app/AlertDialog$Builder;.setMessage:(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; // method@0014 │ │ 0271f8: 1401 0a00 0401 |005c: const v1, #float 2.42446e-38 // #0104000a │ │ @@ -155008,111 +155008,112 @@ │ │ access : 0x0001 (PUBLIC) │ │ code - │ │ registers : 14 │ │ ins : 1 │ │ outs : 7 │ │ insns size : 178 16-bit code units │ │ 0805d8: |[0805d8] uk.me.jstott.jcoord.MGRSRef.toUTMRef:()Luk/me/jstott/jcoord/UTMRef; │ │ -0805e8: 52d0 8a0a |0000: iget v0, v13, Luk/me/jstott/jcoord/MGRSRef;.utmZoneNumber:I // field@0a8a │ │ -0805ec: 1211 |0002: const/4 v1, #int 1 // #1 │ │ -0805ee: b110 |0003: sub-int/2addr v0, v1 │ │ +0805e8: 52d1 8a0a |0000: iget v1, v13, Luk/me/jstott/jcoord/MGRSRef;.utmZoneNumber:I // field@0a8a │ │ +0805ec: d800 01ff |0002: add-int/lit8 v0, v1, #int -1 // #ff │ │ 0805f0: dc00 0006 |0004: rem-int/lit8 v0, v0, #int 6 // #06 │ │ -0805f4: b010 |0006: add-int/2addr v0, v1 │ │ -0805f6: 57d2 830a |0007: iget-char v2, v13, Luk/me/jstott/jcoord/MGRSRef;.eastingID:C // field@0a83 │ │ -0805fa: d802 02bf |0009: add-int/lit8 v2, v2, #int -65 // #bf │ │ -0805fe: 1303 0f00 |000b: const/16 v3, #int 15 // #f │ │ -080602: 3732 0400 |000d: if-le v2, v3, 0011 // +0004 │ │ -080606: d802 02ff |000f: add-int/lit8 v2, v2, #int -1 // #ff │ │ -08060a: 1304 0900 |0011: const/16 v4, #int 9 // #9 │ │ -08060e: 3742 0400 |0013: if-le v2, v4, 0017 // +0004 │ │ -080612: d802 02ff |0015: add-int/lit8 v2, v2, #int -1 // #ff │ │ -080616: 52d5 820a |0017: iget v5, v13, Luk/me/jstott/jcoord/MGRSRef;.easting:I // field@0a82 │ │ -08061a: dc02 0208 |0019: rem-int/lit8 v2, v2, #int 8 // #08 │ │ -08061e: b012 |001b: add-int/2addr v2, v1 │ │ -080620: 1406 a086 0100 |001c: const v6, #float 1.4013e-40 // #000186a0 │ │ -080626: 9202 0206 |001f: mul-int v2, v2, v6 │ │ -08062a: b025 |0021: add-int/2addr v5, v2 │ │ -08062c: 1402 4042 0f00 |0022: const v2, #float 1.4013e-39 // #000f4240 │ │ -080632: b425 |0025: rem-int/2addr v5, v2 │ │ -080634: 57d2 860a |0026: iget-char v2, v13, Luk/me/jstott/jcoord/MGRSRef;.northingID:C // field@0a86 │ │ -080638: d807 02c0 |0028: add-int/lit8 v7, v2, #int -64 // #c0 │ │ -08063c: 3737 0400 |002a: if-le v7, v3, 002e // +0004 │ │ -080640: d807 07ff |002c: add-int/lit8 v7, v7, #int -1 // #ff │ │ -080644: 3747 0400 |002e: if-le v7, v4, 0032 // +0004 │ │ -080648: d807 07ff |0030: add-int/lit8 v7, v7, #int -1 // #ff │ │ -08064c: dc00 0002 |0032: rem-int/lit8 v0, v0, #int 2 // #02 │ │ -080650: 3900 0400 |0034: if-nez v0, 0038 // +0004 │ │ -080654: d807 07fb |0036: add-int/lit8 v7, v7, #int -5 // #fb │ │ -080658: 3b07 0400 |0038: if-gez v7, 003c // +0004 │ │ -08065c: d807 0710 |003a: add-int/lit8 v7, v7, #int 16 // #10 │ │ -080660: 1203 |003c: const/4 v3, #int 0 // #0 │ │ -080662: 3900 0400 |003d: if-nez v0, 0041 // +0004 │ │ -080666: 1210 |003f: const/4 v0, #int 1 // #1 │ │ -080668: 2802 |0040: goto 0042 // +0002 │ │ -08066a: 1200 |0041: const/4 v0, #int 0 // #0 │ │ -08066c: 57d4 890a |0042: iget-char v4, v13, Luk/me/jstott/jcoord/MGRSRef;.utmZoneChar:C // field@0a89 │ │ -080670: 1308 4500 |0044: const/16 v8, #int 69 // #45 │ │ -080674: 1409 808d 5b00 |0046: const v9, #float 8.40779e-39 // #005b8d80 │ │ -08067a: 140a 0009 3d00 |0049: const v10, #float 5.60519e-39 // #003d0900 │ │ -080680: 140b 8084 1e00 |004c: const v11, #float 2.8026e-39 // #001e8480 │ │ -080686: 2b04 4f00 0000 |004f: packed-switch v4, 0000009e // +0000004f │ │ -08068c: 2838 |0052: goto 008a // +0038 │ │ -08068e: 1403 0012 7a00 |0053: const v3, #float 1.12104e-38 // #007a1200 │ │ -080694: 2834 |0056: goto 008a // +0034 │ │ -080696: 1403 808d 5b00 |0057: const v3, #float 8.40779e-39 // #005b8d80 │ │ -08069c: 2830 |005a: goto 008a // +0030 │ │ -08069e: 3900 0600 |005b: if-nez v0, 0061 // +0006 │ │ -0806a2: 1303 5000 |005d: const/16 v3, #int 80 // #50 │ │ -0806a6: 3432 f8ff |005f: if-lt v2, v3, 0057 // -0008 │ │ -0806aa: 3800 0700 |0061: if-eqz v0, 0068 // +0007 │ │ -0806ae: 1300 5500 |0063: const/16 v0, #int 85 // #55 │ │ -0806b2: 3502 0300 |0065: if-ge v2, v0, 0068 // +0003 │ │ -0806b6: 28f0 |0067: goto 0057 // -0010 │ │ -0806b8: 1403 0009 3d00 |0068: const v3, #float 5.60519e-39 // #003d0900 │ │ -0806be: 281f |006b: goto 008a // +001f │ │ -0806c0: 3900 0600 |006c: if-nez v0, 0072 // +0006 │ │ -0806c4: 1303 5200 |006e: const/16 v3, #int 82 // #52 │ │ -0806c8: 3432 f8ff |0070: if-lt v2, v3, 0068 // -0008 │ │ -0806cc: 3800 0500 |0072: if-eqz v0, 0077 // +0005 │ │ -0806d0: 3782 0300 |0074: if-le v2, v8, 0077 // +0003 │ │ -0806d4: 28f2 |0076: goto 0068 // -000e │ │ -0806d6: 1403 8084 1e00 |0077: const v3, #float 2.8026e-39 // #001e8480 │ │ -0806dc: 2810 |007a: goto 008a // +0010 │ │ -0806de: 3900 0600 |007b: if-nez v0, 0081 // +0006 │ │ -0806e2: 1304 5400 |007d: const/16 v4, #int 84 // #54 │ │ -0806e6: 3442 f8ff |007f: if-lt v2, v4, 0077 // -0008 │ │ -0806ea: 3800 0900 |0081: if-eqz v0, 008a // +0009 │ │ -0806ee: 1300 4300 |0083: const/16 v0, #int 67 // #43 │ │ -0806f2: 3402 f2ff |0085: if-lt v2, v0, 0077 // -000e │ │ -0806f6: 3782 0300 |0087: if-le v2, v8, 008a // +0003 │ │ -0806fa: 28ee |0089: goto 0077 // -0012 │ │ -0806fc: b117 |008a: sub-int/2addr v7, v1 │ │ -0806fe: 9207 0706 |008b: mul-int v7, v7, v6 │ │ -080702: 52d0 850a |008d: iget v0, v13, Luk/me/jstott/jcoord/MGRSRef;.northing:I // field@0a85 │ │ -080706: b007 |008f: add-int/2addr v7, v0 │ │ -080708: b073 |0090: add-int/2addr v3, v7 │ │ -08070a: 2200 d503 |0091: new-instance v0, Luk/me/jstott/jcoord/UTMRef; // type@03d5 │ │ -08070e: 52d7 8a0a |0093: iget v7, v13, Luk/me/jstott/jcoord/MGRSRef;.utmZoneNumber:I // field@0a8a │ │ -080712: 57d8 890a |0095: iget-char v8, v13, Luk/me/jstott/jcoord/MGRSRef;.utmZoneChar:C // field@0a89 │ │ -080716: 8359 |0097: int-to-double v9, v5 │ │ -080718: 833b |0098: int-to-double v11, v3 │ │ -08071a: 0706 |0099: move-object v6, v0 │ │ -08071c: 7607 e119 0600 |009a: invoke-direct/range {v6, v7, v8, v9, v10, v11, v12}, Luk/me/jstott/jcoord/UTMRef;.:(ICDD)V // method@19e1 │ │ -080722: 1100 |009d: return-object v0 │ │ +0805f4: 1212 |0006: const/4 v2, #int 1 // #1 │ │ +0805f6: b020 |0007: add-int/2addr v0, v2 │ │ +0805f8: 57d3 830a |0008: iget-char v3, v13, Luk/me/jstott/jcoord/MGRSRef;.eastingID:C // field@0a83 │ │ +0805fc: d803 03bf |000a: add-int/lit8 v3, v3, #int -65 // #bf │ │ +080600: 1304 0f00 |000c: const/16 v4, #int 15 // #f │ │ +080604: 3743 0400 |000e: if-le v3, v4, 0012 // +0004 │ │ +080608: d803 03ff |0010: add-int/lit8 v3, v3, #int -1 // #ff │ │ +08060c: 1305 0900 |0012: const/16 v5, #int 9 // #9 │ │ +080610: 3753 0400 |0014: if-le v3, v5, 0018 // +0004 │ │ +080614: d803 03ff |0016: add-int/lit8 v3, v3, #int -1 // #ff │ │ +080618: 52d6 820a |0018: iget v6, v13, Luk/me/jstott/jcoord/MGRSRef;.easting:I // field@0a82 │ │ +08061c: dc03 0308 |001a: rem-int/lit8 v3, v3, #int 8 // #08 │ │ +080620: b023 |001c: add-int/2addr v3, v2 │ │ +080622: 1407 a086 0100 |001d: const v7, #float 1.4013e-40 // #000186a0 │ │ +080628: 9203 0307 |0020: mul-int v3, v3, v7 │ │ +08062c: b036 |0022: add-int/2addr v6, v3 │ │ +08062e: 1403 4042 0f00 |0023: const v3, #float 1.4013e-39 // #000f4240 │ │ +080634: b436 |0026: rem-int/2addr v6, v3 │ │ +080636: 57d3 860a |0027: iget-char v3, v13, Luk/me/jstott/jcoord/MGRSRef;.northingID:C // field@0a86 │ │ +08063a: d808 03c0 |0029: add-int/lit8 v8, v3, #int -64 // #c0 │ │ +08063e: 3748 0400 |002b: if-le v8, v4, 002f // +0004 │ │ +080642: d808 08ff |002d: add-int/lit8 v8, v8, #int -1 // #ff │ │ +080646: 3758 0400 |002f: if-le v8, v5, 0033 // +0004 │ │ +08064a: d808 08ff |0031: add-int/lit8 v8, v8, #int -1 // #ff │ │ +08064e: dc00 0002 |0033: rem-int/lit8 v0, v0, #int 2 // #02 │ │ +080652: 3900 0400 |0035: if-nez v0, 0039 // +0004 │ │ +080656: d808 08fb |0037: add-int/lit8 v8, v8, #int -5 // #fb │ │ +08065a: 3b08 0400 |0039: if-gez v8, 003d // +0004 │ │ +08065e: d808 0810 |003b: add-int/lit8 v8, v8, #int 16 // #10 │ │ +080662: 1204 |003d: const/4 v4, #int 0 // #0 │ │ +080664: 3900 0400 |003e: if-nez v0, 0042 // +0004 │ │ +080668: 1210 |0040: const/4 v0, #int 1 // #1 │ │ +08066a: 2802 |0041: goto 0043 // +0002 │ │ +08066c: 1200 |0042: const/4 v0, #int 0 // #0 │ │ +08066e: 57d5 890a |0043: iget-char v5, v13, Luk/me/jstott/jcoord/MGRSRef;.utmZoneChar:C // field@0a89 │ │ +080672: 1309 4500 |0045: const/16 v9, #int 69 // #45 │ │ +080676: 140a 808d 5b00 |0047: const v10, #float 8.40779e-39 // #005b8d80 │ │ +08067c: 140b 0009 3d00 |004a: const v11, #float 5.60519e-39 // #003d0900 │ │ +080682: 140c 8084 1e00 |004d: const v12, #float 2.8026e-39 // #001e8480 │ │ +080688: 2b05 4e00 0000 |0050: packed-switch v5, 0000009e // +0000004e │ │ +08068e: 2838 |0053: goto 008b // +0038 │ │ +080690: 1404 0012 7a00 |0054: const v4, #float 1.12104e-38 // #007a1200 │ │ +080696: 2834 |0057: goto 008b // +0034 │ │ +080698: 1404 808d 5b00 |0058: const v4, #float 8.40779e-39 // #005b8d80 │ │ +08069e: 2830 |005b: goto 008b // +0030 │ │ +0806a0: 3900 0600 |005c: if-nez v0, 0062 // +0006 │ │ +0806a4: 1304 5000 |005e: const/16 v4, #int 80 // #50 │ │ +0806a8: 3443 f8ff |0060: if-lt v3, v4, 0058 // -0008 │ │ +0806ac: 3800 0700 |0062: if-eqz v0, 0069 // +0007 │ │ +0806b0: 1300 5500 |0064: const/16 v0, #int 85 // #55 │ │ +0806b4: 3503 0300 |0066: if-ge v3, v0, 0069 // +0003 │ │ +0806b8: 28f0 |0068: goto 0058 // -0010 │ │ +0806ba: 1404 0009 3d00 |0069: const v4, #float 5.60519e-39 // #003d0900 │ │ +0806c0: 281f |006c: goto 008b // +001f │ │ +0806c2: 3900 0600 |006d: if-nez v0, 0073 // +0006 │ │ +0806c6: 1304 5200 |006f: const/16 v4, #int 82 // #52 │ │ +0806ca: 3443 f8ff |0071: if-lt v3, v4, 0069 // -0008 │ │ +0806ce: 3800 0500 |0073: if-eqz v0, 0078 // +0005 │ │ +0806d2: 3793 0300 |0075: if-le v3, v9, 0078 // +0003 │ │ +0806d6: 28f2 |0077: goto 0069 // -000e │ │ +0806d8: 1404 8084 1e00 |0078: const v4, #float 2.8026e-39 // #001e8480 │ │ +0806de: 2810 |007b: goto 008b // +0010 │ │ +0806e0: 3900 0600 |007c: if-nez v0, 0082 // +0006 │ │ +0806e4: 130a 5400 |007e: const/16 v10, #int 84 // #54 │ │ +0806e8: 34a3 f8ff |0080: if-lt v3, v10, 0078 // -0008 │ │ +0806ec: 3800 0900 |0082: if-eqz v0, 008b // +0009 │ │ +0806f0: 1300 4300 |0084: const/16 v0, #int 67 // #43 │ │ +0806f4: 3403 f2ff |0086: if-lt v3, v0, 0078 // -000e │ │ +0806f8: 3793 0300 |0088: if-le v3, v9, 008b // +0003 │ │ +0806fc: 28ee |008a: goto 0078 // -0012 │ │ +0806fe: b128 |008b: sub-int/2addr v8, v2 │ │ +080700: 9208 0807 |008c: mul-int v8, v8, v7 │ │ +080704: 52d0 850a |008e: iget v0, v13, Luk/me/jstott/jcoord/MGRSRef;.northing:I // field@0a85 │ │ +080708: b008 |0090: add-int/2addr v8, v0 │ │ +08070a: b084 |0091: add-int/2addr v4, v8 │ │ +08070c: 2207 d503 |0092: new-instance v7, Luk/me/jstott/jcoord/UTMRef; // type@03d5 │ │ +080710: 8368 |0094: int-to-double v8, v6 │ │ +080712: 834a |0095: int-to-double v10, v4 │ │ +080714: 0770 |0096: move-object v0, v7 │ │ +080716: 0152 |0097: move v2, v5 │ │ +080718: 0483 |0098: move-wide v3, v8 │ │ +08071a: 04a5 |0099: move-wide v5, v10 │ │ +08071c: 7607 e119 0000 |009a: invoke-direct/range {v0, v1, v2, v3, v4, v5, v6}, Luk/me/jstott/jcoord/UTMRef;.:(ICDD)V // method@19e1 │ │ +080722: 1107 |009d: return-object v7 │ │ 080724: 0001 0800 5100 0000 2c00 0000 2800 ... |009e: packed-switch-data (20 units) │ │ catches : (none) │ │ positions : │ │ 0x0000 line=461 │ │ - 0x0007 line=462 │ │ - 0x0017 line=468 │ │ - 0x0026 line=472 │ │ - 0x0032 line=477 │ │ - 0x0042 line=486 │ │ - 0x008d line=525 │ │ - 0x0091 line=527 │ │ + 0x0008 line=462 │ │ + 0x0018 line=468 │ │ + 0x0027 line=472 │ │ + 0x0033 line=477 │ │ + 0x0043 line=486 │ │ + 0x008e line=525 │ │ + 0x0092 line=527 │ │ locals : │ │ 0x0000 - 0x00b2 reg=13 this Luk/me/jstott/jcoord/MGRSRef; │ │ │ │ source_file_idx : 2329 (MGRSRef.java) │ │ │ │ Class #541 header: │ │ class_idx : 978 │ ├── classes.jar │ │ ├── zipinfo {} │ │ │ @@ -1,8 +1,8 @@ │ │ │ -Zip file size: 1369477 bytes, number of entries: 699 │ │ │ +Zip file size: 1369491 bytes, number of entries: 699 │ │ │ ?rwxrwxr-x 2.0 unx 442 b- stor 80-Jan-01 00:00 org/billthefarmer/buses/BuildConfig.class │ │ │ ?rwxrwxr-x 2.0 unx 503 b- stor 80-Jan-01 00:00 org/billthefarmer/buses/Buses$$ExternalSyntheticLambda0.class │ │ │ ?rwxrwxr-x 2.0 unx 476 b- stor 80-Jan-01 00:00 org/billthefarmer/buses/Buses$$ExternalSyntheticLambda1.class │ │ │ ?rwxrwxr-x 2.0 unx 450 b- stor 80-Jan-01 00:00 org/billthefarmer/buses/Buses$2$$ExternalSyntheticLambda0.class │ │ │ ?rwxrwxr-x 2.0 unx 2117 b- stor 80-Jan-01 00:00 org/billthefarmer/buses/Buses$2.class │ │ │ ?rwxrwxr-x 2.0 unx 509 b- stor 80-Jan-01 00:00 org/billthefarmer/buses/Buses$BusesTask$$ExternalSyntheticLambda0.class │ │ │ ?rwxrwxr-x 2.0 unx 3112 b- stor 80-Jan-01 00:00 org/billthefarmer/buses/Buses$BusesTask.class │ │ │ @@ -535,15 +535,15 @@ │ │ │ ?rwxrwxr-x 2.0 unx 1456 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/milestones/MilestoneLister.class │ │ │ ?rwxrwxr-x 2.0 unx 1394 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/milestones/MilestoneManager.class │ │ │ ?rwxrwxr-x 2.0 unx 594 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/milestones/MilestonePathDisplayer.class │ │ │ ?rwxrwxr-x 2.0 unx 3850 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/mylocation/GpsMyLocationProvider.class │ │ │ ?rwxrwxr-x 2.0 unx 1152 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/simplefastpoint/SimplePointTheme.class │ │ │ ?rwxrwxr-x 2.0 unx 2421 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/ECEFRef.class │ │ │ ?rwxrwxr-x 2.0 unx 6254 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/IrishRef.class │ │ │ -?rwxrwxr-x 2.0 unx 5589 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/MGRSRef.class │ │ │ +?rwxrwxr-x 2.0 unx 5602 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/MGRSRef.class │ │ │ ?rwxrwxr-x 2.0 unx 6858 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/OSRef.class │ │ │ ?rwxrwxr-x 2.0 unx 4908 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/UTMRef.class │ │ │ ?rwxrwxr-x 2.0 unx 811 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/datum/ETRF89Datum.class │ │ │ ?rwxrwxr-x 2.0 unx 945 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/datum/Ireland1965Datum.class │ │ │ ?rwxrwxr-x 2.0 unx 956 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/datum/OSGB36Datum.class │ │ │ ?rwxrwxr-x 2.0 unx 817 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/datum/WGS84Datum.class │ │ │ ?rwxrwxr-x 2.0 unx 911 b- stor 80-Jan-01 00:00 uk/me/jstott/jcoord/datum/nad27/NAD27AlaskaDatum.class │ │ │ @@ -694,8 +694,8 @@ │ │ │ ?rwxrwxr-x 2.0 unx 593 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/milestones/MilestoneLineDisplayer$1.class │ │ │ ?rwxrwxr-x 2.0 unx 1784 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/simplefastpoint/StyledLabelledGeoPoint.class │ │ │ ?rwxrwxr-x 2.0 unx 668 b- stor 80-Jan-01 00:00 org/osmdroid/tileprovider/tilesource/FileBasedTileSource.class │ │ │ ?rwxrwxr-x 2.0 unx 7663 b- stor 80-Jan-01 00:00 org/osmdroid/tileprovider/tilesource/bing/BingMapTileSource.class │ │ │ ?rwxrwxr-x 2.0 unx 8490 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/ItemizedOverlayWithFocus.class │ │ │ ?rwxrwxr-x 2.0 unx 3894 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/Polygon.class │ │ │ ?rwxrwxr-x 2.0 unx 2197 b- stor 80-Jan-01 00:00 org/osmdroid/views/overlay/Polyline.class │ │ │ -699 files, 1459959 bytes uncompressed, 1247899 bytes compressed: 14.5% │ │ │ +699 files, 1459972 bytes uncompressed, 1247913 bytes compressed: 14.5% │ │ ├── org/billthefarmer/buses/BuildConfig.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -1,12 +1,12 @@ │ │ │ │ │ │ │ │ package org.billthefarmer.buses; │ │ │ │ │ │ │ │ public final class BuildConfig │ │ │ │ { │ │ │ │ public static final String APPLICATION_ID = "org.billthefarmer.buses"; │ │ │ │ public static final String BUILD_TYPE = "release"; │ │ │ │ - public static final long BUILT = 1682730087845L; │ │ │ │ + public static final long BUILT = 1683023664035L; │ │ │ │ public static final boolean DEBUG = false; │ │ │ │ public static final int VERSION_CODE = 103; │ │ │ │ public static final String VERSION_NAME = "1.03"; │ │ │ │ } │ │ ├── org/billthefarmer/buses/Buses.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -105,15 +105,15 @@ │ │ │ │ final SpannableStringBuilder message = new SpannableStringBuilder(this.getText(2131099691)); │ │ │ │ final Matcher matcher = Pattern.compile("%s").matcher((CharSequence)message); │ │ │ │ if (matcher.find()) { │ │ │ │ message.replace(matcher.start(), matcher.end(), (CharSequence)"1.03"); │ │ │ │ } │ │ │ │ matcher.reset((CharSequence)message); │ │ │ │ if (matcher.find()) { │ │ │ │ - message.replace(matcher.start(), matcher.end(), (CharSequence)dateTimeInstance.format(Long.valueOf(1682730087845L))); │ │ │ │ + message.replace(matcher.start(), matcher.end(), (CharSequence)dateTimeInstance.format(Long.valueOf(1683023664035L))); │ │ │ │ } │ │ │ │ alertDialog$Builder.setMessage((CharSequence)message); │ │ │ │ alertDialog$Builder.setPositiveButton(17039370, (DialogInterface$OnClickListener)null); │ │ │ │ final TextView textView = (TextView)((Dialog)alertDialog$Builder.show()).findViewById(16908299); │ │ │ │ if (textView != null) { │ │ │ │ textView.setMovementMethod(LinkMovementMethod.getInstance()); │ │ │ │ } │ │ ├── uk/me/jstott/jcoord/MGRSRef.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -310,87 +310,88 @@ │ │ │ │ sb4.append(s); │ │ │ │ sb4.append(s2); │ │ │ │ return sb4.toString(); │ │ │ │ } │ │ │ │ │ │ │ │ public UTMRef toUTMRef() { │ │ │ │ final int utmZoneNumber = this.utmZoneNumber; │ │ │ │ - final int n = 1; │ │ │ │ - final int n2 = (utmZoneNumber - n) % 6 + n; │ │ │ │ - int n3 = this.eastingID - 65; │ │ │ │ - final int n4 = 15; │ │ │ │ - if (n3 > n4) { │ │ │ │ - --n3; │ │ │ │ - } │ │ │ │ - final int n5 = 9; │ │ │ │ - if (n3 > n5) { │ │ │ │ - --n3; │ │ │ │ + final int n = (utmZoneNumber - 1) % 6; │ │ │ │ + final int n2 = 1; │ │ │ │ + final int n3 = n + n2; │ │ │ │ + int n4 = this.eastingID - 65; │ │ │ │ + final int n5 = 15; │ │ │ │ + if (n4 > n5) { │ │ │ │ + --n4; │ │ │ │ + } │ │ │ │ + final int n6 = 9; │ │ │ │ + if (n4 > n6) { │ │ │ │ + --n4; │ │ │ │ } │ │ │ │ final int easting = this.easting; │ │ │ │ - final int n6 = n3 % 8 + n; │ │ │ │ - final int n7 = 100000; │ │ │ │ - final int n8 = (easting + n6 * n7) % 1000000; │ │ │ │ + final int n7 = n4 % 8 + n2; │ │ │ │ + final int n8 = 100000; │ │ │ │ + final int n9 = (easting + n7 * n8) % 1000000; │ │ │ │ final char northingID = this.northingID; │ │ │ │ - int n9 = northingID - 64; │ │ │ │ - if (n9 > n4) { │ │ │ │ - --n9; │ │ │ │ - } │ │ │ │ - if (n9 > n5) { │ │ │ │ - --n9; │ │ │ │ - } │ │ │ │ - final int n10 = n2 % 2; │ │ │ │ - if (n10 == 0) { │ │ │ │ - n9 -= 5; │ │ │ │ + int n10 = northingID - 64; │ │ │ │ + if (n10 > n5) { │ │ │ │ + --n10; │ │ │ │ + } │ │ │ │ + if (n10 > n6) { │ │ │ │ + --n10; │ │ │ │ + } │ │ │ │ + final int n11 = n3 % 2; │ │ │ │ + if (n11 == 0) { │ │ │ │ + n10 -= 5; │ │ │ │ } │ │ │ │ - if (n9 < 0) { │ │ │ │ - n9 += 16; │ │ │ │ + if (n10 < 0) { │ │ │ │ + n10 += 16; │ │ │ │ } │ │ │ │ - int n11 = 0; │ │ │ │ - final boolean b = n10 == 0; │ │ │ │ + int n12 = 0; │ │ │ │ + final boolean b = n11 == 0; │ │ │ │ final char utmZoneChar = this.utmZoneChar; │ │ │ │ final char c = 'E'; │ │ │ │ - Label_0270_Outer: │ │ │ │ + Label_0288_Outer: │ │ │ │ while (true) { │ │ │ │ - Label_0304_Outer: │ │ │ │ + Label_0324_Outer: │ │ │ │ while (true) { │ │ │ │ while (true) { │ │ │ │ switch (utmZoneChar) { │ │ │ │ case 88: { │ │ │ │ - n11 = 8000000; │ │ │ │ + n12 = 8000000; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 86: │ │ │ │ case 87: { │ │ │ │ - n11 = 6000000; │ │ │ │ + n12 = 6000000; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 85: { │ │ │ │ if (b && northingID < 'P') { │ │ │ │ - continue Label_0270_Outer; │ │ │ │ + continue Label_0288_Outer; │ │ │ │ } │ │ │ │ if (b && northingID < 'U') { │ │ │ │ - continue Label_0270_Outer; │ │ │ │ + continue Label_0288_Outer; │ │ │ │ } │ │ │ │ - break Label_0270; │ │ │ │ + break Label_0288; │ │ │ │ } │ │ │ │ case 84: { │ │ │ │ - n11 = 4000000; │ │ │ │ + n12 = 4000000; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 83: { │ │ │ │ if (b && northingID < 'R') { │ │ │ │ - continue Label_0304_Outer; │ │ │ │ + continue Label_0324_Outer; │ │ │ │ } │ │ │ │ if (b && northingID > c) { │ │ │ │ - continue Label_0304_Outer; │ │ │ │ + continue Label_0324_Outer; │ │ │ │ } │ │ │ │ - break Label_0304; │ │ │ │ + break Label_0324; │ │ │ │ } │ │ │ │ case 82: { │ │ │ │ - n11 = 2000000; │ │ │ │ + n12 = 2000000; │ │ │ │ break; │ │ │ │ } │ │ │ │ case 81: { │ │ │ │ if (b && northingID < 'T') { │ │ │ │ continue; │ │ │ │ } │ │ │ │ if (!b) { │ │ │ │ @@ -407,10 +408,10 @@ │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ break; │ │ │ │ } │ │ │ │ - return new UTMRef(this.utmZoneNumber, this.utmZoneChar, (double)n8, (double)(n11 + ((n9 - n) * n7 + this.northing))); │ │ │ │ + return new UTMRef(utmZoneNumber, utmZoneChar, (double)n9, (double)(n12 + ((n10 - n2) * n8 + this.northing))); │ │ │ │ } │ │ │ │ } ├── smali/uk/me/jstott/jcoord/MGRSRef.smali │ @@ -1091,218 +1091,220 @@ │ return-object p1 │ .end method │ │ .method public toUTMRef()Luk/me/jstott/jcoord/UTMRef; │ .locals 13 │ │ .line 461 │ - iget v0, p0, Luk/me/jstott/jcoord/MGRSRef;->utmZoneNumber:I │ + iget v1, p0, Luk/me/jstott/jcoord/MGRSRef;->utmZoneNumber:I │ │ - const/4 v1, 0x1 │ - │ - sub-int/2addr v0, v1 │ + add-int/lit8 v0, v1, -0x1 │ │ rem-int/lit8 v0, v0, 0x6 │ │ - add-int/2addr v0, v1 │ + const/4 v2, 0x1 │ + │ + add-int/2addr v0, v2 │ │ .line 462 │ - iget-char v2, p0, Luk/me/jstott/jcoord/MGRSRef;->eastingID:C │ + iget-char v3, p0, Luk/me/jstott/jcoord/MGRSRef;->eastingID:C │ │ - add-int/lit8 v2, v2, -0x41 │ + add-int/lit8 v3, v3, -0x41 │ │ - const/16 v3, 0xf │ + const/16 v4, 0xf │ │ - if-le v2, v3, :cond_0 │ + if-le v3, v4, :cond_0 │ │ - add-int/lit8 v2, v2, -0x1 │ + add-int/lit8 v3, v3, -0x1 │ │ :cond_0 │ - const/16 v4, 0x9 │ + const/16 v5, 0x9 │ │ - if-le v2, v4, :cond_1 │ + if-le v3, v5, :cond_1 │ │ - add-int/lit8 v2, v2, -0x1 │ + add-int/lit8 v3, v3, -0x1 │ │ .line 468 │ :cond_1 │ - iget v5, p0, Luk/me/jstott/jcoord/MGRSRef;->easting:I │ + iget v6, p0, Luk/me/jstott/jcoord/MGRSRef;->easting:I │ │ - rem-int/lit8 v2, v2, 0x8 │ + rem-int/lit8 v3, v3, 0x8 │ │ - add-int/2addr v2, v1 │ + add-int/2addr v3, v2 │ │ - const v6, 0x186a0 │ + const v7, 0x186a0 │ │ - mul-int v2, v2, v6 │ + mul-int v3, v3, v7 │ │ - add-int/2addr v5, v2 │ + add-int/2addr v6, v3 │ │ - const v2, 0xf4240 │ + const v3, 0xf4240 │ │ - rem-int/2addr v5, v2 │ + rem-int/2addr v6, v3 │ │ .line 472 │ - iget-char v2, p0, Luk/me/jstott/jcoord/MGRSRef;->northingID:C │ + iget-char v3, p0, Luk/me/jstott/jcoord/MGRSRef;->northingID:C │ │ - add-int/lit8 v7, v2, -0x40 │ + add-int/lit8 v8, v3, -0x40 │ │ - if-le v7, v3, :cond_2 │ + if-le v8, v4, :cond_2 │ │ - add-int/lit8 v7, v7, -0x1 │ + add-int/lit8 v8, v8, -0x1 │ │ :cond_2 │ - if-le v7, v4, :cond_3 │ + if-le v8, v5, :cond_3 │ │ - add-int/lit8 v7, v7, -0x1 │ + add-int/lit8 v8, v8, -0x1 │ │ .line 477 │ :cond_3 │ rem-int/lit8 v0, v0, 0x2 │ │ if-nez v0, :cond_4 │ │ - add-int/lit8 v7, v7, -0x5 │ + add-int/lit8 v8, v8, -0x5 │ │ :cond_4 │ - if-gez v7, :cond_5 │ + if-gez v8, :cond_5 │ │ - add-int/lit8 v7, v7, 0x10 │ + add-int/lit8 v8, v8, 0x10 │ │ :cond_5 │ - const/4 v3, 0x0 │ + const/4 v4, 0x0 │ │ if-nez v0, :cond_6 │ │ const/4 v0, 0x1 │ │ goto :goto_0 │ │ :cond_6 │ const/4 v0, 0x0 │ │ .line 486 │ :goto_0 │ - iget-char v4, p0, Luk/me/jstott/jcoord/MGRSRef;->utmZoneChar:C │ + iget-char v5, p0, Luk/me/jstott/jcoord/MGRSRef;->utmZoneChar:C │ │ - const/16 v8, 0x45 │ + const/16 v9, 0x45 │ │ - const v9, 0x5b8d80 │ + const v10, 0x5b8d80 │ │ - const v10, 0x3d0900 │ + const v11, 0x3d0900 │ │ - const v11, 0x1e8480 │ + const v12, 0x1e8480 │ │ - packed-switch v4, :pswitch_data_0 │ + packed-switch v5, :pswitch_data_0 │ │ goto :goto_4 │ │ :pswitch_0 │ - const v3, 0x7a1200 │ + const v4, 0x7a1200 │ │ goto :goto_4 │ │ :cond_7 │ :goto_1 │ :pswitch_1 │ - const v3, 0x5b8d80 │ + const v4, 0x5b8d80 │ │ goto :goto_4 │ │ :pswitch_2 │ if-nez v0, :cond_8 │ │ - const/16 v3, 0x50 │ + const/16 v4, 0x50 │ │ - if-lt v2, v3, :cond_7 │ + if-lt v3, v4, :cond_7 │ │ :cond_8 │ if-eqz v0, :cond_9 │ │ const/16 v0, 0x55 │ │ - if-ge v2, v0, :cond_9 │ + if-ge v3, v0, :cond_9 │ │ goto :goto_1 │ │ :cond_9 │ :goto_2 │ :pswitch_3 │ - const v3, 0x3d0900 │ + const v4, 0x3d0900 │ │ goto :goto_4 │ │ :pswitch_4 │ if-nez v0, :cond_a │ │ - const/16 v3, 0x52 │ + const/16 v4, 0x52 │ │ - if-lt v2, v3, :cond_9 │ + if-lt v3, v4, :cond_9 │ │ :cond_a │ if-eqz v0, :cond_b │ │ - if-le v2, v8, :cond_b │ + if-le v3, v9, :cond_b │ │ goto :goto_2 │ │ :cond_b │ :goto_3 │ :pswitch_5 │ - const v3, 0x1e8480 │ + const v4, 0x1e8480 │ │ goto :goto_4 │ │ :pswitch_6 │ if-nez v0, :cond_c │ │ - const/16 v4, 0x54 │ + const/16 v10, 0x54 │ │ - if-lt v2, v4, :cond_b │ + if-lt v3, v10, :cond_b │ │ :cond_c │ if-eqz v0, :cond_d │ │ const/16 v0, 0x43 │ │ - if-lt v2, v0, :cond_b │ + if-lt v3, v0, :cond_b │ │ - if-le v2, v8, :cond_d │ + if-le v3, v9, :cond_d │ │ goto :goto_3 │ │ :cond_d │ :goto_4 │ - sub-int/2addr v7, v1 │ + sub-int/2addr v8, v2 │ │ - mul-int v7, v7, v6 │ + mul-int v8, v8, v7 │ │ .line 525 │ iget v0, p0, Luk/me/jstott/jcoord/MGRSRef;->northing:I │ │ - add-int/2addr v7, v0 │ + add-int/2addr v8, v0 │ │ - add-int/2addr v3, v7 │ + add-int/2addr v4, v8 │ │ .line 527 │ - new-instance v0, Luk/me/jstott/jcoord/UTMRef; │ + new-instance v7, Luk/me/jstott/jcoord/UTMRef; │ + │ + int-to-double v8, v6 │ │ - iget v7, p0, Luk/me/jstott/jcoord/MGRSRef;->utmZoneNumber:I │ + int-to-double v10, v4 │ │ - iget-char v8, p0, Luk/me/jstott/jcoord/MGRSRef;->utmZoneChar:C │ + move-object v0, v7 │ │ - int-to-double v9, v5 │ + move v2, v5 │ │ - int-to-double v11, v3 │ + move-wide v3, v8 │ │ - move-object v6, v0 │ + move-wide v5, v10 │ │ - invoke-direct/range {v6 .. v12}, Luk/me/jstott/jcoord/UTMRef;->(ICDD)V │ + invoke-direct/range {v0 .. v6}, Luk/me/jstott/jcoord/UTMRef;->(ICDD)V │ │ - return-object v0 │ + return-object v7 │ │ :pswitch_data_0 │ .packed-switch 0x51 │ :pswitch_6 │ :pswitch_5 │ :pswitch_4 │ :pswitch_3 ├── smali/org/billthefarmer/buses/Buses.smali │ @@ -191,15 +191,15 @@ │ │ move-result v4 │ │ invoke-virtual {v3}, Ljava/util/regex/Matcher;->end()I │ │ move-result v3 │ │ - const-wide v5, 0x187ca8775a5L │ + const-wide v5, 0x187dc0713a3L │ │ .line 600 │ invoke-static {v5, v6}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; │ │ move-result-object v5 │ │ invoke-virtual {v1, v5}, Ljava/text/DateFormat;->format(Ljava/lang/Object;)Ljava/lang/String; ├── smali/org/billthefarmer/buses/BuildConfig.smali │ @@ -4,15 +4,15 @@ │ │ │ # static fields │ .field public static final APPLICATION_ID:Ljava/lang/String; = "org.billthefarmer.buses" │ │ .field public static final BUILD_TYPE:Ljava/lang/String; = "release" │ │ -.field public static final BUILT:J = 0x187ca8775a5L │ +.field public static final BUILT:J = 0x187dc0713a3L │ │ .field public static final DEBUG:Z = false │ │ .field public static final VERSION_CODE:I = 0x67 │ │ .field public static final VERSION_NAME:Ljava/lang/String; = "1.03"