--- /home/hans/code/fdroid/data/tmp/org.nick.cryptfs.passwdmanager_1260.apk +++ /home/hans/code/fdroid/data/tmp/sigcp_org.nick.cryptfs.passwdmanager_1260.apk ├── zipinfo {} │ @@ -1,14 +1,14 @@ │ -Zip file size: 30093 bytes, number of entries: 12 │ +Zip file size: 29994 bytes, number of entries: 12 │ -rw---- 2.0 fat 771 bl defN 16-Apr-19 09:20 META-INF/MANIFEST.MF │ -rw---- 2.0 fat 892 bl defN 16-Apr-19 09:20 META-INF/21DD1B59.SF │ -rw---- 2.0 fat 1326 bl defN 16-Apr-19 09:20 META-INF/21DD1B59.RSA │ -rw---- 2.0 fat 41 bl defN 16-Apr-18 20:42 META-INF/buildserverid │ -rw---- 2.0 fat 41 bl defN 16-Apr-18 20:42 META-INF/fdroidserverid │ --rw---- 2.0 fat 1812 bX defN 16-Apr-18 20:42 AndroidManifest.xml │ --rw---- 1.0 fat 2839 b- stor 16-Apr-18 20:42 res/drawable-hdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 1596 b- stor 16-Apr-18 20:42 res/drawable-mdpi-v4/ic_launcher.png │ --rw---- 1.0 fat 3700 b- stor 16-Apr-18 20:42 res/drawable-xhdpi-v4/ic_launcher.png │ --rw---- 2.0 fat 2368 bl defN 16-Apr-18 20:42 res/layout/activity_main.xml │ --rw---- 1.0 fat 4192 b- stor 16-Apr-18 20:42 resources.arsc │ --rw---- 2.0 fat 26540 bl defN 16-Apr-18 20:42 classes.dex │ -12 files, 46118 bytes uncompressed, 28443 bytes compressed: 38.3% │ +-rw---- 2.0 fat 1812 bX defN 16-Sep-07 15:51 AndroidManifest.xml │ +-rw---- 1.0 fat 2839 b- stor 80-Jan-01 00:00 res/drawable-hdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 1546 b- stor 80-Jan-01 00:00 res/drawable-mdpi-v4/ic_launcher.png │ +-rw---- 1.0 fat 3700 b- stor 80-Jan-01 00:00 res/drawable-xhdpi-v4/ic_launcher.png │ +-rw---- 2.0 fat 2368 bl defN 16-Sep-07 15:51 res/layout/activity_main.xml │ +-rw---- 1.0 fat 4228 b- stor 80-Jan-01 00:00 resources.arsc │ +-rw---- 2.0 fat 26396 bl defN 16-Sep-07 15:51 classes.dex │ +12 files, 45960 bytes uncompressed, 28382 bytes compressed: 38.2% ├── AndroidManifest.xml │ @@ -1,9 +1,9 @@ │ │ - ├── res/drawable-mdpi-v4/ic_launcher.png ├── sng │ │ @@ -12,65 +12,40 @@ │ │ (103,128,137) # rgb = (0x67,0x80,0x89) │ │ (102,127,136) # rgb = (0x66,0x7f,0x88) │ │ (100,125,135) # rgb = (0x64,0x7d,0x87) │ │ ( 97,125,132) # rgb = (0x61,0x7d,0x84) │ │ ( 91,115,125) # rgb = (0x5b,0x73,0x7d) │ │ ( 95,122,130) # rgb = (0x5f,0x7a,0x82) │ │ (101,127,137) # rgb = (0x65,0x7f,0x89) │ │ - ( 97,124,133) # rgb = (0x61,0x7c,0x85) │ │ - ( 81,110,121) # rgb = (0x51,0x6e,0x79) │ │ - ( 70,101,112) # rgb = (0x46,0x65,0x70) │ │ - ( 62, 95,106) # rgb = (0x3e,0x5f,0x6a) │ │ - ( 58, 91,103) # rgb = (0x3a,0x5b,0x67) │ │ - ( 69,101,112) # rgb = (0x45,0x65,0x70) │ │ - ( 80,110,120) # rgb = (0x50,0x6e,0x78) │ │ - ( 95,122,132) # rgb = (0x5f,0x7a,0x84) │ │ (102,128,136) # rgb = (0x66,0x80,0x88) │ │ ( 93,120,130) # rgb = (0x5d,0x78,0x82) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 76,104,113) # rgb = (0x4c,0x68,0x71) │ │ - ( 90,118,128) # rgb = (0x5a,0x76,0x80) │ │ - ( 65, 97,109) # rgb = (0x41,0x61,0x6d) │ │ - ( 54, 88,100) # rgb = (0x36,0x58,0x64) │ │ - ( 64, 96,107) # rgb = (0x40,0x60,0x6b) │ │ - ( 88,116,126) # rgb = (0x58,0x74,0x7e) │ │ (100,127,134) # rgb = (0x64,0x7f,0x86) │ │ ( 75,105,113) # rgb = (0x4b,0x69,0x71) │ │ ( 88,113,121) # rgb = (0x58,0x71,0x79) │ │ ( 99,125,135) # rgb = (0x63,0x7d,0x87) │ │ - ( 67, 99,110) # rgb = (0x43,0x63,0x6e) │ │ ( 98,125,133) # rgb = (0x62,0x7d,0x85) │ │ ( 87,112,122) # rgb = (0x57,0x70,0x7a) │ │ ( 85,109,117) # rgb = (0x55,0x6d,0x75) │ │ ( 94,122,131) # rgb = (0x5e,0x7a,0x83) │ │ - ( 53, 87, 99) # rgb = (0x35,0x57,0x63) │ │ - ( 57, 91,103) # rgb = (0x39,0x5b,0x67) │ │ ( 92,120,129) # rgb = (0x5c,0x78,0x81) │ │ ( 85,108,118) # rgb = (0x55,0x6c,0x76) │ │ ( 62, 85, 93) # rgb = (0x3e,0x55,0x5d) │ │ ( 94,120,130) # rgb = (0x5e,0x78,0x82) │ │ - ( 57, 90,102) # rgb = (0x39,0x5a,0x66) │ │ - ( 50, 82, 93) # rgb = (0x32,0x52,0x5d) │ │ - ( 34, 56, 64) # rgb = (0x22,0x38,0x40) │ │ - ( 25, 41, 47) # rgb = (0x19,0x29,0x2f) │ │ - ( 25, 41, 46) # rgb = (0x19,0x29,0x2e) │ │ - ( 33, 54, 61) # rgb = (0x21,0x36,0x3d) │ │ - ( 49, 80, 91) # rgb = (0x31,0x50,0x5b) │ │ - ( 55, 89,101) # rgb = (0x37,0x59,0x65) │ │ ( 91,119,128) # rgb = (0x5b,0x77,0x80) │ │ ( 68, 91,102) # rgb = (0x44,0x5b,0x66) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 94,119,129) # rgb = (0x5e,0x77,0x81) │ │ ( 26, 44, 49) # rgb = (0x1a,0x2c,0x31) │ │ ( 24, 39, 46) # rgb = (0x18,0x27,0x2e) │ │ ( 16, 26, 29) # rgb = (0x10,0x1a,0x1d) │ │ ( 14, 24, 27) # rgb = (0x0e,0x18,0x1b) │ │ ( 24, 40, 45) # rgb = (0x18,0x28,0x2d) │ │ ( 25, 42, 47) # rgb = (0x19,0x2a,0x2f) │ │ - ( 48, 79, 90) # rgb = (0x30,0x4f,0x5a) │ │ ( 93,120,129) # rgb = (0x5d,0x78,0x81) │ │ ( 85, 85, 85) # rgb = (0x55,0x55,0x55) │ │ ( 79,103,110) # rgb = (0x4f,0x67,0x6e) │ │ ( 35, 57, 64) # rgb = (0x23,0x39,0x40) │ │ ( 17, 28, 31) # rgb = (0x11,0x1c,0x1f) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ @@ -82,15 +57,14 @@ │ │ ( 85,112,122) # rgb = (0x55,0x70,0x7a) │ │ ( 29, 45, 51) # rgb = (0x1d,0x2d,0x33) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 26, 42, 46) # rgb = (0x1a,0x2a,0x2e) │ │ - ( 53, 86, 98) # rgb = (0x35,0x56,0x62) │ │ ( 83,112,122) # rgb = (0x53,0x70,0x7a) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 64, 80, 84) # rgb = (0x40,0x50,0x54) │ │ ( 31, 44, 48) # rgb = (0x1f,0x2c,0x30) │ │ ( 6, 13, 13) # rgb = (0x06,0x0d,0x0d) │ │ ( 53, 87, 99) # rgb = (0x35,0x57,0x63) │ │ ( 67, 88, 94) # rgb = (0x43,0x58,0x5e) │ │ @@ -109,85 +83,61 @@ │ │ ( 59, 78, 88) # rgb = (0x3b,0x4e,0x58) │ │ ( 55, 91, 91) # rgb = (0x37,0x5b,0x5b) │ │ ( 89,116,125) # rgb = (0x59,0x74,0x7d) │ │ ( 63, 93,105) # rgb = (0x3f,0x5d,0x69) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 58, 87, 98) # rgb = (0x3a,0x57,0x62) │ │ - ( 60, 93,104) # rgb = (0x3c,0x5d,0x68) │ │ ( 99,125,134) # rgb = (0x63,0x7d,0x86) │ │ ( 93,118,126) # rgb = (0x5d,0x76,0x7e) │ │ ( 73,109,109) # rgb = (0x49,0x6d,0x6d) │ │ ( 64,128,128) # rgb = (0x40,0x80,0x80) │ │ ( 94,119,129) # rgb = (0x5e,0x77,0x81) │ │ ( 98,125,133) # rgb = (0x62,0x7d,0x85) │ │ - ( 63, 95,107) # rgb = (0x3f,0x5f,0x6b) │ │ ( 57, 89,100) # rgb = (0x39,0x59,0x64) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 51, 80, 90) # rgb = (0x33,0x50,0x5a) │ │ - ( 61, 94,106) # rgb = (0x3d,0x5e,0x6a) │ │ - ( 89,117,127) # rgb = (0x59,0x75,0x7f) │ │ (103,129,138) # rgb = (0x67,0x81,0x8a) │ │ (103,129,139) # rgb = (0x67,0x81,0x8b) │ │ - ( 91,119,129) # rgb = (0x5b,0x77,0x81) │ │ ( 51, 82, 93) # rgb = (0x33,0x52,0x5d) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 46, 71, 82) # rgb = (0x2e,0x47,0x52) │ │ ( 46, 73, 84) # rgb = (0x2e,0x49,0x54) │ │ ( 40, 63, 71) # rgb = (0x28,0x3f,0x47) │ │ ( 42, 64, 72) # rgb = (0x2a,0x40,0x48) │ │ ( 39, 55, 61) # rgb = (0x27,0x37,0x3d) │ │ ( 38, 56, 61) # rgb = (0x26,0x38,0x3d) │ │ ( 33, 47, 50) # rgb = (0x21,0x2f,0x32) │ │ - ( 47, 76, 87) # rgb = (0x2f,0x4c,0x57) │ │ - ( 48, 79, 89) # rgb = (0x30,0x4f,0x59) │ │ ( 34, 48, 55) # rgb = (0x22,0x30,0x37) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 33, 53, 60) # rgb = (0x21,0x35,0x3c) │ │ ( 41, 65, 74) # rgb = (0x29,0x41,0x4a) │ │ ( 10, 10, 10) # rgb = (0x0a,0x0a,0x0a) grey4 │ │ ( 29, 45, 51) # rgb = (0x1d,0x2d,0x33) │ │ - ( 45, 73, 83) # rgb = (0x2d,0x49,0x53) │ │ ( 56, 83, 95) # rgb = (0x38,0x53,0x5f) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 27, 46, 51) # rgb = (0x1b,0x2e,0x33) │ │ - ( 50, 82, 94) # rgb = (0x32,0x52,0x5e) │ │ - ( 73,104,115) # rgb = (0x49,0x68,0x73) │ │ ( 93,119,128) # rgb = (0x5d,0x77,0x80) │ │ ( 19, 32, 35) # rgb = (0x13,0x20,0x23) │ │ ( 30, 49, 55) # rgb = (0x1e,0x31,0x37) │ │ - ( 52, 84, 96) # rgb = (0x34,0x54,0x60) │ │ ( 93,120,129) # rgb = (0x5d,0x78,0x81) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 23, 38, 42) # rgb = (0x17,0x26,0x2a) │ │ ( 30, 49, 55) # rgb = (0x1e,0x31,0x37) │ │ - ( 51, 83, 94) # rgb = (0x33,0x53,0x5e) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 23, 37, 41) # rgb = (0x17,0x25,0x29) │ │ ( 26, 43, 49) # rgb = (0x1a,0x2b,0x31) │ │ - ( 45, 74, 84) # rgb = (0x2d,0x4a,0x54) │ │ ( 17, 28, 33) # rgb = (0x11,0x1c,0x21) │ │ ( 24, 41, 47) # rgb = (0x18,0x29,0x2f) │ │ - ( 32, 53, 60) # rgb = (0x20,0x35,0x3c) │ │ - ( 47, 78, 88) # rgb = (0x2f,0x4e,0x58) │ │ - ( 41, 67, 76) # rgb = (0x29,0x43,0x4c) │ │ ( 5, 5, 5) # rgb = (0x05,0x05,0x05) grey2 │ │ ( 25, 39, 44) # rgb = (0x19,0x27,0x2c) │ │ ( 25, 39, 45) # rgb = (0x19,0x27,0x2d) │ │ - ( 28, 47, 53) # rgb = (0x1c,0x2f,0x35) │ │ - ( 38, 62, 71) # rgb = (0x26,0x3e,0x47) │ │ - ( 50, 81, 92) # rgb = (0x32,0x51,0x5c) │ │ - ( 52, 85, 96) # rgb = (0x34,0x55,0x60) │ │ - ( 52, 85, 97) # rgb = (0x34,0x55,0x61) │ │ - ( 45, 74, 85) # rgb = (0x2d,0x4a,0x55) │ │ - ( 29, 47, 53) # rgb = (0x1d,0x2f,0x35) │ │ ( 24, 39, 45) # rgb = (0x18,0x27,0x2d) │ │ ( 26, 41, 47) # rgb = (0x1a,0x29,0x2f) │ │ - ( 36, 60, 68) # rgb = (0x24,0x3c,0x44) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 21, 33, 39) # rgb = (0x15,0x21,0x27) │ │ ( 25, 41, 46) # rgb = (0x19,0x29,0x2e) │ │ ( 25, 40, 46) # rgb = (0x19,0x28,0x2e) │ │ ( 23, 37, 44) # rgb = (0x17,0x25,0x2c) │ │ ( 22, 36, 41) # rgb = (0x16,0x24,0x29) │ │ @@ -201,25 +151,22 @@ │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 25, 42, 48) # rgb = (0x19,0x2a,0x30) │ │ - ( 51, 84, 96) # rgb = (0x33,0x54,0x60) │ │ ( 22, 37, 42) # rgb = (0x16,0x25,0x2a) │ │ ( 23, 39, 44) # rgb = (0x17,0x27,0x2c) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 4, 11, 11) # rgb = (0x04,0x0b,0x0b) │ │ ( 13, 26, 26) # rgb = (0x0d,0x1a,0x1a) │ │ ( 18, 35, 35) # rgb = (0x12,0x23,0x23) │ │ - ( 51, 83, 95) # rgb = (0x33,0x53,0x5f) │ │ - ( 51, 84, 95) # rgb = (0x33,0x54,0x5f) │ │ ( 10, 20, 29) # rgb = (0x0a,0x14,0x1d) │ │ ( 23, 37, 42) # rgb = (0x17,0x25,0x2a) │ │ ( 25, 40, 46) # rgb = (0x19,0x28,0x2e) │ │ ( 89,115,124) # rgb = (0x59,0x73,0x7c) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 7, 13, 17) # rgb = (0x07,0x0d,0x11) │ │ @@ -231,61 +178,114 @@ │ │ ( 51, 80, 90) # rgb = (0x33,0x50,0x5a) │ │ ( 23, 38, 42) # rgb = (0x17,0x26,0x2a) │ │ ( 23, 38, 42) # rgb = (0x17,0x26,0x2a) │ │ ( 26, 41, 46) # rgb = (0x1a,0x29,0x2e) │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ ( 0, 0, 0) # rgb = (0x00,0x00,0x00) grey0 │ │ + ( 97,124,133) # rgb = (0x61,0x7c,0x85) │ │ + ( 81,110,121) # rgb = (0x51,0x6e,0x79) │ │ + ( 70,101,112) # rgb = (0x46,0x65,0x70) │ │ + ( 62, 95,106) # rgb = (0x3e,0x5f,0x6a) │ │ + ( 58, 91,103) # rgb = (0x3a,0x5b,0x67) │ │ + ( 69,101,112) # rgb = (0x45,0x65,0x70) │ │ + ( 80,110,120) # rgb = (0x50,0x6e,0x78) │ │ + ( 95,122,132) # rgb = (0x5f,0x7a,0x84) │ │ + ( 90,118,128) # rgb = (0x5a,0x76,0x80) │ │ + ( 65, 97,109) # rgb = (0x41,0x61,0x6d) │ │ + ( 54, 88,100) # rgb = (0x36,0x58,0x64) │ │ + ( 64, 96,107) # rgb = (0x40,0x60,0x6b) │ │ + ( 88,116,126) # rgb = (0x58,0x74,0x7e) │ │ + ( 67, 99,110) # rgb = (0x43,0x63,0x6e) │ │ + ( 53, 87, 99) # rgb = (0x35,0x57,0x63) │ │ + ( 57, 91,103) # rgb = (0x39,0x5b,0x67) │ │ + ( 57, 90,102) # rgb = (0x39,0x5a,0x66) │ │ + ( 50, 82, 93) # rgb = (0x32,0x52,0x5d) │ │ + ( 34, 56, 64) # rgb = (0x22,0x38,0x40) │ │ + ( 25, 41, 47) # rgb = (0x19,0x29,0x2f) │ │ + ( 25, 41, 46) # rgb = (0x19,0x29,0x2e) │ │ + ( 33, 54, 61) # rgb = (0x21,0x36,0x3d) │ │ + ( 49, 80, 91) # rgb = (0x31,0x50,0x5b) │ │ + ( 55, 89,101) # rgb = (0x37,0x59,0x65) │ │ + ( 48, 79, 90) # rgb = (0x30,0x4f,0x5a) │ │ + ( 53, 86, 98) # rgb = (0x35,0x56,0x62) │ │ + ( 60, 93,104) # rgb = (0x3c,0x5d,0x68) │ │ + ( 63, 95,107) # rgb = (0x3f,0x5f,0x6b) │ │ + ( 61, 94,106) # rgb = (0x3d,0x5e,0x6a) │ │ + ( 89,117,127) # rgb = (0x59,0x75,0x7f) │ │ + ( 91,119,129) # rgb = (0x5b,0x77,0x81) │ │ + ( 47, 76, 87) # rgb = (0x2f,0x4c,0x57) │ │ + ( 48, 79, 89) # rgb = (0x30,0x4f,0x59) │ │ + ( 45, 73, 83) # rgb = (0x2d,0x49,0x53) │ │ + ( 50, 82, 94) # rgb = (0x32,0x52,0x5e) │ │ + ( 73,104,115) # rgb = (0x49,0x68,0x73) │ │ + ( 52, 84, 96) # rgb = (0x34,0x54,0x60) │ │ + ( 51, 83, 94) # rgb = (0x33,0x53,0x5e) │ │ + ( 45, 74, 84) # rgb = (0x2d,0x4a,0x54) │ │ + ( 32, 53, 60) # rgb = (0x20,0x35,0x3c) │ │ + ( 47, 78, 88) # rgb = (0x2f,0x4e,0x58) │ │ + ( 41, 67, 76) # rgb = (0x29,0x43,0x4c) │ │ + ( 28, 47, 53) # rgb = (0x1c,0x2f,0x35) │ │ + ( 38, 62, 71) # rgb = (0x26,0x3e,0x47) │ │ + ( 50, 81, 92) # rgb = (0x32,0x51,0x5c) │ │ + ( 52, 85, 96) # rgb = (0x34,0x55,0x60) │ │ + ( 52, 85, 97) # rgb = (0x34,0x55,0x61) │ │ + ( 45, 74, 85) # rgb = (0x2d,0x4a,0x55) │ │ + ( 29, 47, 53) # rgb = (0x1d,0x2f,0x35) │ │ + ( 36, 60, 68) # rgb = (0x24,0x3c,0x44) │ │ + ( 51, 84, 96) # rgb = (0x33,0x54,0x60) │ │ + ( 51, 83, 95) # rgb = (0x33,0x53,0x5f) │ │ + ( 51, 84, 95) # rgb = (0x33,0x54,0x5f) │ │ } │ │ tRNS { │ │ - 0 47 133 187 220 235 221 191 137 53 86 207 255 255 255 255 255 255 255 255 213 96 1 27 255 255 255 255 255 201 34 61 235 255 239 73 63 243 255 255 247 78 33 234 255 255 255 255 255 255 255 255 241 45 3 193 245 168 97 94 159 242 255 206 3 97 243 90 36 23 34 76 237 114 5 207 159 25 8 2 7 138 255 220 6 64 75 40 253 84 148 59 22 252 162 193 119 92 205 10 220 228 26 14 216 231 11 12 234 255 225 93 7 4 79 216 255 246 13 236 255 255 253 252 255 246 14 225 235 205 215 171 183 92 255 255 111 24 227 230 26 141 255 178 15 30 223 255 255 143 80 246 255 142 22 122 250 255 28 124 248 255 92 229 255 255 255 47 155 239 255 255 255 255 255 255 255 240 210 255 32 51 123 193 228 245 252 246 230 194 126 54 183 39 49 56 59 26 16 38 182 255 251 251 35 55 60 71 40 29 255 255 26 249 249 144 47 58 77 237 46 237 37 180 238 247 248 237 53 57 43} │ │ + 0 47 133 187 220 235 221 191 137 53 86 207 213 96 1 27 201 34 61 235 239 73 63 243 247 78 33 234 241 45 3 193 245 168 97 94 159 242 206 3 97 243 90 36 23 34 76 237 114 5 207 159 25 8 2 7 138 220 6 64 75 40 253 84 148 59 22 252 162 193 119 92 205 10 220 228 26 14 216 231 11 12 234 225 93 7 4 79 216 246 13 236 253 252 246 14 225 235 205 215 171 183 92 111 24 227 230 26 141 178 15 30 223 143 80 246 142 22 122 250 28 124 248 92 229 47 155 239 240 210 32 51 123 193 228 245 252 246 230 194 126 54 183 39 49 56 59 26 16 38 182 251 251 35 55 60 71 40 29 26 249 249 144 47 58 77 237 46 237 37 180 238 247 248 237 53 57 43} │ │ IMAGE { │ │ pixels hex │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 │ │ 000000000000000000000001020304050506070809000000000000000000000000000000000000000000000000000000 │ │ -0000000000000000000a0b0c0d0e0f10100f111213141516000000000000000000000000000000000000000000000000 │ │ -00000000000000170718191a1a1a1a1a1a1a1a1a1a1b1c1d1e0000000000000000000000000000000000000000000000 │ │ -0000000000001f20111a1a1a1a1a1a1a1a1a1a1a1a1a1a21222300000000000000000000000000000000000000000000 │ │ -00000000002425101a1a262626261a1a1a1a1a1a1a1a1a1a272829000000000000000000000000000000000000000000 │ │ -000000002a2b2c1a1a2d2e2f3031321a1a1a1a1a1a1a1a1a1a3334350000000000000000000000000000000000000000 │ │ -0000003637101a1a2d38393a3b3c3d3e1a1a1a1a1a1a1a1a1a1a2c3f4000000000000000000000000000000000000000 │ │ -00000041111a1a264243444545464748261a1a1a1a1a1a1a1a1a1a194916000000000000000000000000000000000000 │ │ -00004a4b1a1a1a264c4d4e364f504551521a1a1a1a1a1a1a1a1a1a1a5354000000000000000000000000000000000000 │ │ -000055191a1a1a26564e000000005457581a1a1a1a1a1a1a1a1a1a1a0f59000000000000000000000000000000000000 │ │ -00365a1a1a1a1a265b3600000000165c5d1a1a1a1a1a1a1a1a1a1a1a1a5e360000000000000000000000000000000000 │ │ -00545f1a1a1a1a1a604f0000000016611a1a1a1a1a1a1a1a1a1a1a1a1a62500000000000000000000000000000000000 │ │ -0063641a1a1a1a1a65660000000067681a1a1a1a1a1a1a1a1a1a1a1a1a696a0000000000000000000000000000000000 │ │ -006b6c1a1a1a1a1a6d6e6f70717273741a1a1a1a1a1a1a1a1a1a1a1a1a75760000000000000000000000000000000000 │ │ -0076771a1a1a1a1a1a78797a7b7c1b1a1a1a1a1a1a1a1a1a1a1a1a1a1a7d7e0000000000000000000000000000000000 │ │ -00767f1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a807e0000000000000000000000000000000000 │ │ -006b811a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a82760000000000000000000000000000000000 │ │ -006383261a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a26846a0000000000000000000000000000000000 │ │ -005085861a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a8788500000000000000000000000000000000000 │ │ -0036898a261a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a8b8c360000000000000000000000000000000000 │ │ -0000768d8e1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a8f90000000000000000000000000000000000000 │ │ -00004a9192931a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a9495160000000000000000000000000000000000 │ │ -000016769697981a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a12991600000000000000000000000000000000 │ │ -000000369a9b9c9d1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a129916000000000000000000000000000000 │ │ -00000000549e9fa0a1261a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1299160000000000000000000000000000 │ │ -0000000000509ea2a3a4a5261a1a1a1a1a1a1a1a2687a6261a1a1a1a1a1a1a1a12991600000000000000000000000000 │ │ -0000000000005445a7a8a9aaab8eacadae2dafabb0b1b2b3261a1a1a1a1a1a1a1a129916000000000000000000000000 │ │ -00000000000000367eb4b5b6b7b8b9bababbbcbdbebfb5c0b3261a1a1a1a1a1a1a1a1299160000000000000000000000 │ │ -000000000000000016547e4dc1c2c3c4c4c3c2c1c590c6c7c8b3261a1a1a1a1a1a1a1a12991600000000000000000000 │ │ -000000000000000000000036506a767e7e766a503600166bc7c8b3261a1a1a1a1a1a1a1a129916000000000000000000 │ │ -0000000000000000000000000000000000000000000000166bc7c8b3261a1a1a1a1a1a1a1a1299160000000000000000 │ │ -000000000000000000000000000000000000000000000000166bc7c8b3261a1a1a1a1a1a1a1a12991600000000000000 │ │ -00000000000000000000000000000000000000000000000000166bc7c8b3c99898981a1a1a1a1a129916000000000000 │ │ -0000000000000000000000000000000000000000000000000000166bc7c8cacacacb261a1a1a1a1a1299160000000000 │ │ -000000000000000000000000000000000000000000000000000000166bcccdc4cecf261a1a1a1a1a1a12991600000000 │ │ -000000000000000000000000000000000000000000000000000000001650767e90d0261a1a1a1a1a1a1a129916000000 │ │ -000000000000000000000000000000000000000000000000000000000000000016d19dd2d2d31a1a1a1a1a1299160000 │ │ -000000000000000000000000000000000000000000000000000000000000000000d4d5d5d5d6261a1a1a1a1a12d71600 │ │ -0000000000000000000000000000000000000000000000000000000000000000006bd8d9c4da261a1a1a1a1a1adb5000 │ │ -000000000000000000000000000000000000000000000000000000000000000000366a7e90dc261a1a1a1a1a1add6b00 │ │ -00000000000000000000000000000000000000000000000000000000000000000000000016de261a1a1a1a1a1add7e00 │ │ -00000000000000000000000000000000000000000000000000000000000000000000000016deb3261a1a1a1a1add7e00 │ │ -0000000000000000000000000000000000000000000000000000000000000000000000000090dfb39393939393e07e00 │ │ -000000000000000000000000000000000000000000000000000000000000000000000000004e44c8e1e2e2e2e1e37600 │ │ -00000000000000000000000000000000000000000000000000000000000000000000000000166bcce4e5d9d9c3e66300 │ │ -000000000000000000000000000000000000000000000000000000000000000000000000000016506b7e7e7e76634f00 │ │ +0000000000000000000a0bb2b3b4b5b6b6b5b7b8b90c0d0e000000000000000000000000000000000000000000000000 │ │ +000000000000000f07babbbcbcbcbcbcbcbcbcbcbcbdbe10110000000000000000000000000000000000000000000000 │ │ +0000000000001213b7bcbcbcbcbcbcbcbcbcbcbcbcbcbcbf141500000000000000000000000000000000000000000000 │ │ +00000000001617b6bcbcc0c0c0c0bcbcbcbcbcbcbcbcbcbcc11819000000000000000000000000000000000000000000 │ │ +000000001a1bc2bcbcc3c4c5c6c7c8bcbcbcbcbcbcbcbcbcbcc91c1d0000000000000000000000000000000000000000 │ │ +0000001e1fb6bcbcc3202122232425cabcbcbcbcbcbcbcbcbcbcc2262700000000000000000000000000000000000000 │ │ +00000028b7bcbcc0292a2b2c2c2d2e2fc0bcbcbcbcbcbcbcbcbcbcbb300e000000000000000000000000000000000000 │ │ +00003132bcbcbcc03334351e36372c38cbbcbcbcbcbcbcbcbcbcbcbc393a000000000000000000000000000000000000 │ │ +00003bbbbcbcbcc03c35000000003a3d3ebcbcbcbcbcbcbcbcbcbcbcb53f000000000000000000000000000000000000 │ │ +001e40bcbcbcbcc0411e000000000e4243bcbcbcbcbcbcbcbcbcbcbcbc441e0000000000000000000000000000000000 │ │ +003a45bcbcbcbcbc4636000000000e47bcbcbcbcbcbcbcbcbcbcbcbcbc48370000000000000000000000000000000000 │ │ +00494abcbcbcbcbc4b4c000000004d4ebcbcbcbcbcbcbcbcbcbcbcbcbc4f500000000000000000000000000000000000 │ │ +005152bcbcbcbcbccc535455565758cdbcbcbcbcbcbcbcbcbcbcbcbcbc595a0000000000000000000000000000000000 │ │ +005a5bbcbcbcbcbcbccecf5c5dd0bdbcbcbcbcbcbcbcbcbcbcbcbcbcbc5e5f0000000000000000000000000000000000 │ │ +005a60bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc615f0000000000000000000000000000000000 │ │ +005162bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc635a0000000000000000000000000000000000 │ │ +004964c0bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcc065500000000000000000000000000000000000 │ │ +003766d1bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcd267370000000000000000000000000000000000 │ │ +001e6869c0bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc6a6b1e0000000000000000000000000000000000 │ │ +00005a6cd3bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc6d6e000000000000000000000000000000000000 │ │ +0000316f70d4bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcd5710e0000000000000000000000000000000000 │ │ +00000e5a7273d6bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb8740e00000000000000000000000000000000 │ │ +0000001e757677d7bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb8740e000000000000000000000000000000 │ │ +000000003a78797ad8c0bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb8740e0000000000000000000000000000 │ │ +000000000037787b7cd9dac0bcbcbcbcbcbcbcbcc0d2dbc0bcbcbcbcbcbcbcbcb8740e00000000000000000000000000 │ │ +0000000000003a2c7d7e7fdcddd3dedfe0c3e1dde28081e3c0bcbcbcbcbcbcbcbcb8740e000000000000000000000000 │ │ +000000000000001e5f8283848586878888898a8b8c8d838ee3c0bcbcbcbcbcbcbcbcb8740e0000000000000000000000 │ │ +00000000000000000e3a5f348f9091929291908f936e949596e3c0bcbcbcbcbcbcbcbcb8740e00000000000000000000 │ │ +00000000000000000000001e37505a5f5f5a50371e000e519596e3c0bcbcbcbcbcbcbcbcb8740e000000000000000000 │ │ +00000000000000000000000000000000000000000000000e519596e3c0bcbcbcbcbcbcbcbcb8740e0000000000000000 │ │ +0000000000000000000000000000000000000000000000000e519596e3c0bcbcbcbcbcbcbcbcb8740e00000000000000 │ │ +000000000000000000000000000000000000000000000000000e519596e3e4d6d6d6bcbcbcbcbcb8740e000000000000 │ │ +00000000000000000000000000000000000000000000000000000e51959697979798c0bcbcbcbcbcb8740e0000000000 │ │ +0000000000000000000000000000000000000000000000000000000e51999a929b9cc0bcbcbcbcbcbcb8740e00000000 │ │ +000000000000000000000000000000000000000000000000000000000e375a5f6e9dc0bcbcbcbcbcbcbcb8740e000000 │ │ +00000000000000000000000000000000000000000000000000000000000000000e9ed7e5e5e6bcbcbcbcbcb8740e0000 │ │ +0000000000000000000000000000000000000000000000000000000000000000009fa0a0a0a1c0bcbcbcbcbcb8a20e00 │ │ +00000000000000000000000000000000000000000000000000000000000000000051a3a492a5c0bcbcbcbcbcbca63700 │ │ +0000000000000000000000000000000000000000000000000000000000000000001e505f6ea7c0bcbcbcbcbcbca85100 │ │ +0000000000000000000000000000000000000000000000000000000000000000000000000ea9c0bcbcbcbcbcbca85f00 │ │ +0000000000000000000000000000000000000000000000000000000000000000000000000ea9e3c0bcbcbcbcbca85f00 │ │ +000000000000000000000000000000000000000000000000000000000000000000000000006eaae3d4d4d4d4d4ab5f00 │ │ +00000000000000000000000000000000000000000000000000000000000000000000000000352b96acadadadacae5a00 │ │ +000000000000000000000000000000000000000000000000000000000000000000000000000e5199afb0a4a491b14900 │ │ +00000000000000000000000000000000000000000000000000000000000000000000000000000e37515f5f5f5a493600 │ │ } ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$ChangePasswdTask.smali │ @@ -310,19 +310,21 @@ │ │ const v2, 0x7f040007 │ │ invoke-static {v1, v2, v3}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast; │ │ move-result-object v1 │ │ + .line 274 │ invoke-virtual {v1}, Landroid/widget/Toast;->show()V │ │ .line 275 │ iget-object v1, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$ChangePasswdTask;->newPasswd:Ljava/lang/String; │ │ + .line 276 │ invoke-static {v1}, Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment;->newInstance(Ljava/lang/String;)Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment; │ │ move-result-object v0 │ │ .line 277 │ .local v0, "successDialog":Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment; │ iget-object v1, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$ChangePasswdTask;->activity:Lorg/nick/cryptfs/passwdmanager/MainActivity; ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$1.smali │ @@ -28,14 +28,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity; │ │ │ # direct methods │ .method constructor (Lorg/nick/cryptfs/passwdmanager/MainActivity;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/nick/cryptfs/passwdmanager/MainActivity; │ │ .prologue │ .line 86 │ iput-object p1, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$1;->this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity; │ │ invoke-direct {p0}, Landroid/os/AsyncTask;->()V │ │ @@ -167,14 +168,15 @@ │ │ .line 111 │ :cond_5 │ const-string v7, "default" │ │ iget-object v8, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$1;->this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity; │ │ + .line 112 │ # getter for: Lorg/nick/cryptfs/passwdmanager/MainActivity;->passwordType:Ljava/lang/String; │ invoke-static {v8}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->access$200(Lorg/nick/cryptfs/passwdmanager/MainActivity;)Ljava/lang/String; │ │ move-result-object v8 │ │ invoke-virtual {v7, v8}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ :try_end_0 │ @@ -274,14 +276,15 @@ │ │ const v1, 0x7f04000c │ │ invoke-static {v0, v1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast; │ │ move-result-object v0 │ │ + .line 127 │ invoke-virtual {v0}, Landroid/widget/Toast;->show()V │ │ .line 128 │ iget-object v0, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$1;->this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity; │ │ invoke-virtual {v0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->finish()V ├── smali/org/nick/cryptfs/passwdmanager/CryptfsCommands.smali │ @@ -135,24 +135,26 @@ │ .line 147 │ const-string v6, "su" │ │ const-string v7, "/system/bin/vdc cryptfs changepw \'%s\'" │ │ new-array v8, v4, [Ljava/lang/Object; │ │ + .line 148 │ invoke-static {p0}, Lorg/nick/cryptfs/passwdmanager/CryptfsCommands;->escape(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v9 │ │ aput-object v9, v8, v5 │ │ invoke-static {v7, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v7 │ │ + .line 147 │ invoke-static {v6, v7}, Lorg/nick/cryptfs/passwdmanager/SuShell;->run(Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList; │ │ move-result-object v1 │ │ .line 150 │ .local v1, "response":Ljava/util/List;, "Ljava/util/List;" │ invoke-static {v1}, Lorg/nick/cryptfs/passwdmanager/CryptfsCommands;->checkVdcResponse(Ljava/util/List;)Z │ @@ -317,18 +319,20 @@ │ │ new-array v8, v8, [Ljava/lang/Object; │ │ aput-object v3, v8, v10 │ │ aput-object v2, v8, v9 │ │ + .line 177 │ invoke-static {v1, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v8 │ │ + .line 176 │ :goto_5 │ invoke-static {v11, v8}, Lorg/nick/cryptfs/passwdmanager/SuShell;->run(Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList; │ │ move-result-object v5 │ │ .line 180 │ .local v5, "response":Ljava/util/List;, "Ljava/util/List;" │ @@ -421,20 +425,21 @@ │ .line 173 │ .restart local v1 # "command":Ljava/lang/String; │ :cond_7 │ const-string v1, "/system/bin/vdc cryptfs changepw pin \'%s\'" │ │ goto :goto_4 │ │ - .line 176 │ + .line 177 │ :cond_8 │ new-array v8, v9, [Ljava/lang/Object; │ │ aput-object v2, v8, v10 │ │ + .line 178 │ invoke-static {v1, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v8 │ │ goto :goto_5 │ │ .line 190 │ @@ -471,24 +476,26 @@ │ │ const/4 v3, 0x1 │ │ new-array v3, v3, [Ljava/lang/Object; │ │ const/4 v4, 0x0 │ │ + .line 195 │ invoke-static {p0}, Lorg/nick/cryptfs/passwdmanager/CryptfsCommands;->escape(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v5 │ │ aput-object v5, v3, v4 │ │ invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 194 │ invoke-static {v1, v2}, Lorg/nick/cryptfs/passwdmanager/SuShell;->run(Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList; │ │ move-result-object v0 │ │ .line 197 │ .local v0, "response":Ljava/util/List;, "Ljava/util/List;" │ invoke-static {v0}, Lorg/nick/cryptfs/passwdmanager/CryptfsCommands;->checkVdcResponse(Ljava/util/List;)Z │ @@ -569,18 +576,20 @@ │ │ new-array v7, v7, [Ljava/lang/Object; │ │ aput-object v1, v7, v5 │ │ aput-object v1, v7, v4 │ │ + .line 211 │ invoke-static {v0, v7}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v4 │ │ + .line 210 │ :goto_4 │ invoke-static {v6, v4}, Lorg/nick/cryptfs/passwdmanager/SuShell;->run(Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList; │ │ move-result-object v3 │ │ .line 214 │ .local v3, "response":Ljava/util/List;, "Ljava/util/List;" │ @@ -619,20 +628,21 @@ │ .line 207 │ .restart local v0 # "command":Ljava/lang/String; │ :cond_4 │ const-string v0, "/system/bin/vdc cryptfs changepw pin \'%s\'" │ │ goto :goto_3 │ │ - .line 210 │ + .line 211 │ :cond_5 │ new-array v4, v4, [Ljava/lang/Object; │ │ aput-object v1, v4, v5 │ │ + .line 212 │ invoke-static {v0, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v4 │ │ goto :goto_4 │ .end method │ │ @@ -646,20 +656,22 @@ │ │ const/4 v2, 0x1 │ │ new-array v2, v2, [Ljava/lang/Object; │ │ const/4 v3, 0x0 │ │ + .line 55 │ invoke-static {p0}, Lorg/nick/cryptfs/passwdmanager/CryptfsCommands;->escape(Ljava/lang/String;)Ljava/lang/String; │ │ move-result-object v4 │ │ aput-object v4, v2, v3 │ │ + .line 54 │ invoke-static {v1, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v1 │ │ invoke-static {v1}, Lorg/nick/cryptfs/passwdmanager/SuShell;->runWithSu(Ljava/lang/String;)Ljava/util/ArrayList; │ │ move-result-object v0 │ @@ -922,14 +934,15 @@ │ goto/16 :goto_0 │ │ :cond_5 │ aget-object v3, v0, v4 │ │ const-string v4, "0" │ │ + .line 142 │ invoke-virtual {v3, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z │ │ move-result v3 │ │ goto/16 :goto_0 │ .end method │ │ @@ -1034,26 +1047,28 @@ │ .locals 2 │ .param p0, "propertyName" # Ljava/lang/String; │ │ .prologue │ .line 229 │ const-string v0, "/system/bin/getprop ro.crypto.state" │ │ + .line 230 │ invoke-static {v0}, Lorg/nick/cryptfs/passwdmanager/SuShell;->runWithShell(Ljava/lang/String;)Ljava/util/ArrayList; │ │ move-result-object v0 │ │ const/4 v1, 0x0 │ │ invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v0 │ │ check-cast v0, Ljava/lang/String; │ │ + .line 229 │ return-object v0 │ .end method │ │ .method public static isDeviceEncrypted()Z │ .locals 5 │ │ .prologue │ @@ -1110,74 +1125,69 @@ │ .local v0, "e":Ljava/lang/Exception; │ const/4 v2, 0x0 │ │ goto :goto_0 │ .end method │ │ .method public static toHex([B)Ljava/lang/String; │ - .locals 9 │ + .locals 8 │ .param p0, "bytes" # [B │ │ .prologue │ + const/4 v3, 0x0 │ + │ .line 91 │ - new-instance v2, Ljava/lang/StringBuffer; │ + new-instance v1, Ljava/lang/StringBuffer; │ │ - invoke-direct {v2}, Ljava/lang/StringBuffer;->()V │ + invoke-direct {v1}, Ljava/lang/StringBuffer;->()V │ │ .line 92 │ - .local v2, "buff":Ljava/lang/StringBuffer; │ - move-object v0, p0 │ + .local v1, "buff":Ljava/lang/StringBuffer; │ + array-length v4, p0 │ │ - .local v0, "arr$":[B │ - array-length v4, v0 │ + move v2, v3 │ │ - .local v4, "len$":I │ - const/4 v3, 0x0 │ - │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v4, :cond_0 │ + if-ge v2, v4, :cond_0 │ │ - aget-byte v1, v0, v3 │ + aget-byte v0, p0, v2 │ │ .line 93 │ - .local v1, "b":B │ + .local v0, "b":B │ const-string v5, "%02X" │ │ const/4 v6, 0x1 │ │ new-array v6, v6, [Ljava/lang/Object; │ │ - const/4 v7, 0x0 │ - │ - invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; │ + invoke-static {v0}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; │ │ - move-result-object v8 │ + move-result-object v7 │ │ - aput-object v8, v6, v7 │ + aput-object v7, v6, v3 │ │ invoke-static {v5, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v5 │ │ - invoke-virtual {v2, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; │ + invoke-virtual {v1, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer; │ │ .line 92 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v2, v2, 0x1 │ │ goto :goto_0 │ │ .line 96 │ - .end local v1 # "b":B │ + .end local v0 # "b":B │ :cond_0 │ - invoke-virtual {v2}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v2 │ │ - return-object v5 │ + return-object v2 │ .end method │ │ .method private static toHexAscii(Ljava/lang/String;)Ljava/lang/String; │ .locals 2 │ .param p0, "password" # Ljava/lang/String; │ │ .prologue ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment; │ │ │ # direct methods │ .method constructor (Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment; │ │ .prologue │ .line 360 │ iput-object p1, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$1;->this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ @@ -47,13 +48,14 @@ │ │ invoke-virtual {v0}, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment;->getActivity()Landroid/app/Activity; │ │ move-result-object v0 │ │ check-cast v0, Lorg/nick/cryptfs/passwdmanager/MainActivity; │ │ + .line 364 │ # invokes: Lorg/nick/cryptfs/passwdmanager/MainActivity;->clearPasswords()V │ invoke-static {v0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->access$1000(Lorg/nick/cryptfs/passwdmanager/MainActivity;)V │ │ .line 365 │ return-void │ .end method ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$2.smali │ @@ -24,14 +24,15 @@ │ │ .field final synthetic val$newPasswd:Ljava/lang/String; │ │ │ # direct methods │ .method constructor (Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment;Ljava/lang/String;Ljava/lang/String;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment; │ │ .prologue │ .line 351 │ iput-object p1, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$2;->this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment; │ │ iput-object p2, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$2;->val$currentPasswd:Ljava/lang/String; │ │ @@ -59,13 +60,14 @@ │ │ check-cast v0, Lorg/nick/cryptfs/passwdmanager/MainActivity; │ │ iget-object v1, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$2;->val$currentPasswd:Ljava/lang/String; │ │ iget-object v2, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$2;->val$newPasswd:Ljava/lang/String; │ │ + .line 355 │ # invokes: Lorg/nick/cryptfs/passwdmanager/MainActivity;->changePasswd(Ljava/lang/String;Ljava/lang/String;)V │ invoke-static {v0, v1, v2}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->access$1200(Lorg/nick/cryptfs/passwdmanager/MainActivity;Ljava/lang/String;Ljava/lang/String;)V │ │ .line 357 │ return-void │ .end method ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment.smali │ @@ -98,24 +98,27 @@ │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ const v3, 0x1080027 │ │ + .line 344 │ invoke-virtual {v2, v3}, Landroid/app/AlertDialog$Builder;->setIcon(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ const v3, 0x7f040003 │ │ + .line 345 │ invoke-virtual {v2, v3}, Landroid/app/AlertDialog$Builder;->setTitle(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ + .line 347 │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment;->getResources()Landroid/content/res/Resources; │ │ move-result-object v3 │ │ const v4, 0x7f040004 │ │ const/4 v5, 0x1 │ @@ -126,37 +129,42 @@ │ │ aput-object v1, v5, v6 │ │ invoke-virtual {v3, v4, v5}, Landroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v3 │ │ + .line 346 │ invoke-virtual {v2, v3}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ const v3, 0x1040013 │ │ new-instance v4, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$2; │ │ invoke-direct {v4, p0, v0, v1}, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$2;->(Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment;Ljava/lang/String;Ljava/lang/String;)V │ │ + .line 350 │ invoke-virtual {v2, v3, v4}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ const v3, 0x1040009 │ │ new-instance v4, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$1; │ │ invoke-direct {v4, p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment$1;->(Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment;)V │ │ + .line 359 │ invoke-virtual {v2, v3, v4}, Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ + .line 366 │ invoke-virtual {v2}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ │ move-result-object v2 │ │ + .line 343 │ return-object v2 │ .end method ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment; │ │ │ # direct methods │ .method constructor (Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment; │ │ .prologue │ .line 426 │ iput-object p1, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment$1;->this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment.smali │ @@ -104,35 +104,41 @@ │ │ move-result-object v3 │ │ invoke-direct {v2, v3}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ const v3, 0x1080027 │ │ + .line 422 │ invoke-virtual {v2, v3}, Landroid/app/AlertDialog$Builder;->setIcon(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ + .line 423 │ invoke-virtual {v2, v1}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ + .line 424 │ invoke-virtual {v2, v0}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ const v3, 0x104000a │ │ new-instance v4, Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment$1; │ │ invoke-direct {v4, p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment$1;->(Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment;)V │ │ + .line 425 │ invoke-virtual {v2, v3, v4}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v2 │ │ + .line 431 │ invoke-virtual {v2}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ │ move-result-object v2 │ │ + .line 421 │ return-object v2 │ .end method ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment$1.smali │ @@ -20,14 +20,15 @@ │ # instance fields │ .field final synthetic this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment; │ │ │ # direct methods │ .method constructor (Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment;)V │ .locals 0 │ + .param p1, "this$0" # Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment; │ │ .prologue │ .line 392 │ iput-object p1, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment$1;->this$0:Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment; │ │ invoke-direct {p0}, Ljava/lang/Object;->()V ├── smali/org/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment.smali │ @@ -80,24 +80,27 @@ │ │ move-result-object v2 │ │ invoke-direct {v1, v2}, Landroid/app/AlertDialog$Builder;->(Landroid/content/Context;)V │ │ const v2, 0x108009b │ │ + .line 385 │ invoke-virtual {v1, v2}, Landroid/app/AlertDialog$Builder;->setIcon(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ const v2, 0x7f04000f │ │ + .line 386 │ invoke-virtual {v1, v2}, Landroid/app/AlertDialog$Builder;->setTitle(I)Landroid/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ + .line 388 │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment;->getResources()Landroid/content/res/Resources; │ │ move-result-object v2 │ │ const v3, 0x7f040010 │ │ const/4 v4, 0x1 │ @@ -108,27 +111,31 @@ │ │ aput-object v0, v4, v5 │ │ invoke-virtual {v2, v3, v4}, Landroid/content/res/Resources;->getString(I[Ljava/lang/Object;)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 387 │ invoke-virtual {v1, v2}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ const v2, 0x104000a │ │ new-instance v3, Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment$1; │ │ invoke-direct {v3, p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment$1;->(Lorg/nick/cryptfs/passwdmanager/MainActivity$PasswordChangedDialogFragment;)V │ │ + .line 391 │ invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder; │ │ move-result-object v1 │ │ + .line 397 │ invoke-virtual {v1}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog; │ │ move-result-object v1 │ │ + .line 384 │ return-object v1 │ .end method ├── smali/org/nick/cryptfs/passwdmanager/MainActivity.smali │ @@ -106,15 +106,14 @@ │ invoke-direct {p0}, Landroid/app/Activity;->()V │ │ .line 39 │ const/4 v0, 0x1 │ │ iput-boolean v0, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity;->checkCurrentPassword:Z │ │ - .line 401 │ return-void │ .end method │ │ .method static synthetic access$000(Lorg/nick/cryptfs/passwdmanager/MainActivity;)Landroid/widget/Button; │ .locals 1 │ .param p0, "x0" # Lorg/nick/cryptfs/passwdmanager/MainActivity; │ │ @@ -415,14 +414,15 @@ │ .method private showConfirmationDialog(Ljava/lang/String;Ljava/lang/String;)V │ .locals 3 │ .param p1, "currentPasswd" # Ljava/lang/String; │ .param p2, "newPasswd" # Ljava/lang/String; │ │ .prologue │ .line 179 │ + .line 180 │ invoke-static {p1, p2}, Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment;->newInstance(Ljava/lang/String;Ljava/lang/String;)Lorg/nick/cryptfs/passwdmanager/MainActivity$ConfirmationDialogFragment; │ │ move-result-object v0 │ │ .line 181 │ .local v0, "confirmationDialog":Landroid/app/DialogFragment; │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getFragmentManager()Landroid/app/FragmentManager; │ @@ -450,25 +450,26 @@ │ │ .line 309 │ .local v1, "invalidPasswordmessage":Ljava/lang/String; │ iget-object v2, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity;->currentPasswdText:Landroid/widget/EditText; │ │ invoke-virtual {v2, v1}, Landroid/widget/EditText;->setError(Ljava/lang/CharSequence;)V │ │ - .line 311 │ + .line 313 │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getResources()Landroid/content/res/Resources; │ │ move-result-object v2 │ │ const v3, 0x7f040011 │ │ invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 311 │ invoke-static {v1, v2}, Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment;->newInstance(Ljava/lang/String;Ljava/lang/String;)Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment; │ │ move-result-object v0 │ │ .line 314 │ .local v0, "errorDialog":Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment; │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getFragmentManager()Landroid/app/FragmentManager; │ @@ -484,34 +485,37 @@ │ .end method │ │ .method private showPasswordChangeErrorDialog()V │ .locals 4 │ │ .prologue │ .line 185 │ + .line 186 │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getResources()Landroid/content/res/Resources; │ │ move-result-object v1 │ │ const v2, 0x7f040012 │ │ invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v1 │ │ + .line 187 │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getResources()Landroid/content/res/Resources; │ │ move-result-object v2 │ │ const v3, 0x7f040006 │ │ invoke-virtual {v2, v3}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String; │ │ move-result-object v2 │ │ + .line 185 │ invoke-static {v1, v2}, Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment;->newInstance(Ljava/lang/String;Ljava/lang/String;)Lorg/nick/cryptfs/passwdmanager/MainActivity$ErrorDialogFragment; │ │ move-result-object v0 │ │ .line 188 │ .local v0, "errorDialog":Landroid/app/DialogFragment; │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getFragmentManager()Landroid/app/FragmentManager; │ @@ -590,14 +594,15 @@ │ if-eqz v3, :cond_0 │ │ .line 151 │ iget-object v3, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity;->currentPasswdText:Landroid/widget/EditText; │ │ const v4, 0x7f04000b │ │ + .line 152 │ invoke-virtual {p0, v4}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Landroid/widget/EditText;->setError(Ljava/lang/CharSequence;)V │ │ .line 176 │ @@ -666,14 +671,15 @@ │ if-eqz v3, :cond_2 │ │ .line 164 │ iget-object v3, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity;->confirmNewPasswdText:Landroid/widget/EditText; │ │ const v4, 0x7f040009 │ │ + .line 165 │ invoke-virtual {p0, v4}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Landroid/widget/EditText;->setError(Ljava/lang/CharSequence;)V │ │ goto :goto_0 │ @@ -687,14 +693,15 @@ │ if-nez v3, :cond_3 │ │ .line 170 │ iget-object v3, p0, Lorg/nick/cryptfs/passwdmanager/MainActivity;->confirmNewPasswdText:Landroid/widget/EditText; │ │ const v4, 0x7f040008 │ │ + .line 171 │ invoke-virtual {p0, v4}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->getString(I)Ljava/lang/String; │ │ move-result-object v4 │ │ invoke-virtual {v3, v4}, Landroid/widget/EditText;->setError(Ljava/lang/CharSequence;)V │ │ goto :goto_0 │ @@ -860,14 +867,15 @@ │ │ const/4 v1, 0x1 │ │ invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast; │ │ move-result-object v0 │ │ + .line 75 │ invoke-virtual {v0}, Landroid/widget/Toast;->show()V │ │ .line 76 │ invoke-virtual {p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity;->finish()V │ │ .line 86 │ :cond_0 │ @@ -875,12 +883,13 @@ │ │ invoke-direct {v0, p0}, Lorg/nick/cryptfs/passwdmanager/MainActivity$1;->(Lorg/nick/cryptfs/passwdmanager/MainActivity;)V │ │ const/4 v1, 0x0 │ │ new-array v1, v1, [Ljava/lang/Void; │ │ + .line 134 │ invoke-virtual {v0, v1}, Lorg/nick/cryptfs/passwdmanager/MainActivity$1;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask; │ │ .line 135 │ return-void │ .end method ├── smali/org/nick/cryptfs/passwdmanager/R.smali │ @@ -21,10 +21,9 @@ │ .method public constructor ()V │ .locals 0 │ │ .prologue │ .line 10 │ invoke-direct {p0}, Ljava/lang/Object;->()V │ │ - .line 55 │ return-void │ .end method ├── smali/org/nick/cryptfs/passwdmanager/SuShell.smali │ @@ -108,14 +108,15 @@ │ .local v0, "output":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ invoke-virtual {v0}, Ljava/util/ArrayList;->size()I │ │ move-result v3 │ │ if-ne v3, v4, :cond_0 │ │ + .line 40 │ invoke-virtual {v0, v5}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; │ │ move-result-object v3 │ │ check-cast v3, Ljava/lang/String; │ │ invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String; │ @@ -140,173 +141,151 @@ │ goto :goto_0 │ .end method │ │ .method public static detectValidSuInPath()Z │ .locals 8 │ │ .prologue │ + const/4 v3, 0x0 │ + │ .line 160 │ - const-string v6, "PATH" │ + const-string v4, "PATH" │ │ - invoke-static {v6}, Ljava/lang/System;->getenv(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v4}, Ljava/lang/System;->getenv(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v4 │ │ - const-string v7, ":" │ + const-string v5, ":" │ │ - invoke-virtual {v6, v7}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v4, v5}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v4 │ + move-result-object v1 │ │ .line 162 │ - .local v4, "pathToTest":[Ljava/lang/String; │ - move-object v0, v4 │ - │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v2, v0 │ + .local v1, "pathToTest":[Ljava/lang/String; │ + array-length v5, v1 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ + move v4, v3 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_1 │ + if-ge v4, v5, :cond_0 │ │ - aget-object v3, v0, v1 │ + aget-object v0, v1, v4 │ │ .line 163 │ - .local v3, "path":Ljava/lang/String; │ - new-instance v5, Ljava/io/File; │ + .local v0, "path":Ljava/lang/String; │ + new-instance v2, Ljava/io/File; │ │ new-instance v6, Ljava/lang/StringBuilder; │ │ invoke-direct {v6}, Ljava/lang/StringBuilder;->()V │ │ - invoke-virtual {v6, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ const-string v7, "/su" │ │ invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ move-result-object v6 │ │ invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ move-result-object v6 │ │ - invoke-direct {v5, v6}, Ljava/io/File;->(Ljava/lang/String;)V │ + invoke-direct {v2, v6}, Ljava/io/File;->(Ljava/lang/String;)V │ │ .line 164 │ - .local v5, "su":Ljava/io/File; │ - invoke-virtual {v5}, Ljava/io/File;->exists()Z │ + .local v2, "su":Ljava/io/File; │ + invoke-virtual {v2}, Ljava/io/File;->exists()Z │ │ move-result v6 │ │ - if-eqz v6, :cond_0 │ + if-eqz v6, :cond_1 │ │ .line 170 │ - const/4 v6, 0x1 │ + const/4 v3, 0x1 │ │ .line 174 │ - .end local v3 # "path":Ljava/lang/String; │ - .end local v5 # "su":Ljava/io/File; │ - :goto_1 │ - return v6 │ - │ - .line 162 │ - .restart local v3 # "path":Ljava/lang/String; │ - .restart local v5 # "su":Ljava/io/File; │ + .end local v0 # "path":Ljava/lang/String; │ + .end local v2 # "su":Ljava/io/File; │ :cond_0 │ - add-int/lit8 v1, v1, 0x1 │ - │ - goto :goto_0 │ + return v3 │ │ - .line 174 │ - .end local v3 # "path":Ljava/lang/String; │ - .end local v5 # "su":Ljava/io/File; │ + .line 162 │ + .restart local v0 # "path":Ljava/lang/String; │ + .restart local v2 # "su":Ljava/io/File; │ :cond_1 │ - const/4 v6, 0x0 │ + add-int/lit8 v4, v4, 0x1 │ │ - goto :goto_1 │ + goto :goto_0 │ .end method │ │ .method public static findInPath(Ljava/lang/String;)Z │ - .locals 8 │ + .locals 7 │ .param p0, "cmd" # Ljava/lang/String; │ │ .prologue │ + const/4 v3, 0x0 │ + │ .line 178 │ - const-string v6, "PATH" │ + const-string v4, "PATH" │ │ - invoke-static {v6}, Ljava/lang/System;->getenv(Ljava/lang/String;)Ljava/lang/String; │ + invoke-static {v4}, Ljava/lang/System;->getenv(Ljava/lang/String;)Ljava/lang/String; │ │ - move-result-object v6 │ + move-result-object v4 │ │ - const-string v7, ":" │ + const-string v5, ":" │ │ - invoke-virtual {v6, v7}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ + invoke-virtual {v4, v5}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v2 │ │ .line 180 │ - .local v5, "pathToTest":[Ljava/lang/String; │ - move-object v0, v5 │ + .local v2, "pathToTest":[Ljava/lang/String; │ + array-length v5, v2 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v3, v0 │ + move v4, v3 │ │ - .local v3, "len$":I │ - const/4 v2, 0x0 │ - │ - .local v2, "i$":I │ :goto_0 │ - if-ge v2, v3, :cond_1 │ + if-ge v4, v5, :cond_0 │ │ - aget-object v4, v0, v2 │ + aget-object v1, v2, v4 │ │ .line 181 │ - .local v4, "path":Ljava/lang/String; │ - new-instance v1, Ljava/io/File; │ + .local v1, "path":Ljava/lang/String; │ + new-instance v0, Ljava/io/File; │ │ - invoke-direct {v1, v4, p0}, Ljava/io/File;->(Ljava/lang/String;Ljava/lang/String;)V │ + invoke-direct {v0, v1, p0}, Ljava/io/File;->(Ljava/lang/String;Ljava/lang/String;)V │ │ .line 182 │ - .local v1, "cmdFile":Ljava/io/File; │ - invoke-virtual {v1}, Ljava/io/File;->exists()Z │ + .local v0, "cmdFile":Ljava/io/File; │ + invoke-virtual {v0}, Ljava/io/File;->exists()Z │ │ move-result v6 │ │ - if-eqz v6, :cond_0 │ + if-eqz v6, :cond_1 │ │ .line 187 │ - const/4 v6, 0x1 │ + const/4 v3, 0x1 │ │ .line 191 │ - .end local v1 # "cmdFile":Ljava/io/File; │ - .end local v4 # "path":Ljava/lang/String; │ - :goto_1 │ - return v6 │ - │ - .line 180 │ - .restart local v1 # "cmdFile":Ljava/io/File; │ - .restart local v4 # "path":Ljava/lang/String; │ + .end local v0 # "cmdFile":Ljava/io/File; │ + .end local v1 # "path":Ljava/lang/String; │ :cond_0 │ - add-int/lit8 v2, v2, 0x1 │ - │ - goto :goto_0 │ + return v3 │ │ - .line 191 │ - .end local v1 # "cmdFile":Ljava/io/File; │ - .end local v4 # "path":Ljava/lang/String; │ + .line 180 │ + .restart local v0 # "cmdFile":Ljava/io/File; │ + .restart local v1 # "path":Ljava/lang/String; │ :cond_1 │ - const/4 v6, 0x0 │ + add-int/lit8 v4, v4, 0x1 │ │ - goto :goto_1 │ + goto :goto_0 │ .end method │ │ .method private static findPackage(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/PackageInfo; │ .locals 3 │ .param p0, "ctx" # Landroid/content/Context; │ .param p1, "packageName" # Ljava/lang/String; │ │ @@ -461,138 +440,128 @@ │ .end method │ │ .method public static isSuperUserInstalled(Landroid/content/Context;)Z │ .locals 6 │ .param p0, "ctx" # Landroid/content/Context; │ │ .prologue │ + const/4 v2, 0x0 │ + │ .line 55 │ - sget-object v0, Lorg/nick/cryptfs/passwdmanager/SuShell;->SU_PACKAGES:[Ljava/lang/String; │ + sget-object v4, Lorg/nick/cryptfs/passwdmanager/SuShell;->SU_PACKAGES:[Ljava/lang/String; │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v2, v0 │ + array-length v5, v4 │ │ - .local v2, "len$":I │ - const/4 v1, 0x0 │ + move v3, v2 │ │ - .local v1, "i$":I │ :goto_0 │ - if-ge v1, v2, :cond_1 │ + if-ge v3, v5, :cond_0 │ │ - aget-object v4, v0, v1 │ + aget-object v1, v4, v3 │ │ .line 56 │ - .local v4, "suPackage":Ljava/lang/String; │ - invoke-static {p0, v4}, Lorg/nick/cryptfs/passwdmanager/SuShell;->findPackage(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/PackageInfo; │ + .local v1, "suPackage":Ljava/lang/String; │ + invoke-static {p0, v1}, Lorg/nick/cryptfs/passwdmanager/SuShell;->findPackage(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/PackageInfo; │ │ - move-result-object v3 │ + move-result-object v0 │ │ .line 57 │ - .local v3, "pi":Landroid/content/pm/PackageInfo; │ - if-eqz v3, :cond_0 │ + .local v0, "pi":Landroid/content/pm/PackageInfo; │ + if-eqz v0, :cond_1 │ │ .line 61 │ - const/4 v5, 0x1 │ + const/4 v2, 0x1 │ │ .line 65 │ - .end local v3 # "pi":Landroid/content/pm/PackageInfo; │ - .end local v4 # "suPackage":Ljava/lang/String; │ - :goto_1 │ - return v5 │ - │ - .line 55 │ - .restart local v3 # "pi":Landroid/content/pm/PackageInfo; │ - .restart local v4 # "suPackage":Ljava/lang/String; │ + .end local v0 # "pi":Landroid/content/pm/PackageInfo; │ + .end local v1 # "suPackage":Ljava/lang/String; │ :cond_0 │ - add-int/lit8 v1, v1, 0x1 │ - │ - goto :goto_0 │ + return v2 │ │ - .line 65 │ - .end local v3 # "pi":Landroid/content/pm/PackageInfo; │ - .end local v4 # "suPackage":Ljava/lang/String; │ + .line 55 │ + .restart local v0 # "pi":Landroid/content/pm/PackageInfo; │ + .restart local v1 # "suPackage":Ljava/lang/String; │ :cond_1 │ - const/4 v5, 0x0 │ + add-int/lit8 v3, v3, 0x1 │ │ - goto :goto_1 │ + goto :goto_0 │ .end method │ │ .method public static patchLollipopPolicy()Z │ .locals 6 │ │ .prologue │ - const/4 v4, 0x0 │ + const/4 v3, 0x0 │ │ .line 195 │ - const-string v5, "supolicy" │ + const-string v4, "supolicy" │ │ - invoke-static {v5}, Lorg/nick/cryptfs/passwdmanager/SuShell;->findInPath(Ljava/lang/String;)Z │ + invoke-static {v4}, Lorg/nick/cryptfs/passwdmanager/SuShell;->findInPath(Ljava/lang/String;)Z │ │ - move-result v5 │ + move-result v4 │ │ - if-nez v5, :cond_1 │ + if-nez v4, :cond_1 │ │ .line 211 │ .local v0, "cmd":Ljava/lang/String; │ - .local v3, "output":Ljava/util/List;, "Ljava/util/List;" │ + .local v2, "output":Ljava/util/List;, "Ljava/util/List;" │ :cond_0 │ :goto_0 │ - return v4 │ + return v3 │ │ .line 199 │ .end local v0 # "cmd":Ljava/lang/String; │ - .end local v3 # "output":Ljava/util/List;, "Ljava/util/List;" │ + .end local v2 # "output":Ljava/util/List;, "Ljava/util/List;" │ :cond_1 │ const-string v0, "supolicy --live \'allow vdc init fifo_file {read write getattr}\'" │ │ .line 200 │ .restart local v0 # "cmd":Ljava/lang/String; │ invoke-static {v0}, Lorg/nick/cryptfs/passwdmanager/SuShell;->runWithSu(Ljava/lang/String;)Ljava/util/ArrayList; │ │ - move-result-object v3 │ + move-result-object v2 │ │ .line 201 │ - .restart local v3 # "output":Ljava/util/List;, "Ljava/util/List;" │ - invoke-interface {v3}, Ljava/util/List;->isEmpty()Z │ + .restart local v2 # "output":Ljava/util/List;, "Ljava/util/List;" │ + invoke-interface {v2}, Ljava/util/List;->isEmpty()Z │ │ - move-result v5 │ + move-result v4 │ │ - if-nez v5, :cond_0 │ + if-nez v4, :cond_0 │ │ .line 205 │ - invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ + invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; │ │ - move-result-object v1 │ + move-result-object v4 │ │ - .local v1, "i$":Ljava/util/Iterator; │ :cond_2 │ - invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z │ + invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z │ │ move-result v5 │ │ if-eqz v5, :cond_0 │ │ - invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ + invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - check-cast v2, Ljava/lang/String; │ + check-cast v1, Ljava/lang/String; │ │ .line 206 │ - .local v2, "line":Ljava/lang/String; │ + .local v1, "line":Ljava/lang/String; │ const-string v5, "Success" │ │ - invoke-virtual {v2, v5}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z │ + invoke-virtual {v1, v5}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z │ │ move-result v5 │ │ if-eqz v5, :cond_2 │ │ .line 207 │ - const/4 v4, 0x1 │ + const/4 v3, 0x1 │ │ goto :goto_0 │ .end method │ │ .method public static run(Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList; │ .locals 2 │ .param p0, "shell" # Ljava/lang/String; │ @@ -663,15 +632,15 @@ │ │ move-result-object v1 │ │ return-object v1 │ .end method │ │ .method public static run(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/ArrayList; │ - .locals 13 │ + .locals 11 │ .param p0, "shell" # Ljava/lang/String; │ .param p1, "commands" # [Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ value = { │ "(", │ "Ljava/lang/String;", │ "[", │ @@ -682,241 +651,229 @@ │ "Ljava/lang/String;", │ ">;" │ } │ .end annotation │ │ .prologue │ .line 97 │ - new-instance v6, Ljava/util/ArrayList; │ + new-instance v3, Ljava/util/ArrayList; │ │ - invoke-direct {v6}, Ljava/util/ArrayList;->()V │ + invoke-direct {v3}, Ljava/util/ArrayList;->()V │ │ .line 100 │ - .local v6, "output":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ + .local v3, "output":Ljava/util/ArrayList;, "Ljava/util/ArrayList;" │ :try_start_0 │ invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - invoke-virtual {v10, p0}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process; │ + invoke-virtual {v7, p0}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process; │ │ - move-result-object v7 │ + move-result-object v4 │ │ .line 102 │ - .local v7, "process":Ljava/lang/Process; │ - new-instance v8, Ljava/io/BufferedOutputStream; │ + .local v4, "process":Ljava/lang/Process; │ + new-instance v5, Ljava/io/BufferedOutputStream; │ │ - invoke-virtual {v7}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream; │ + .line 103 │ + invoke-virtual {v4}, Ljava/lang/Process;->getOutputStream()Ljava/io/OutputStream; │ │ - move-result-object v10 │ + move-result-object v7 │ │ - invoke-direct {v8, v10}, Ljava/io/BufferedOutputStream;->(Ljava/io/OutputStream;)V │ + invoke-direct {v5, v7}, Ljava/io/BufferedOutputStream;->(Ljava/io/OutputStream;)V │ │ .line 104 │ - .local v8, "shellInput":Ljava/io/BufferedOutputStream; │ - new-instance v9, Ljava/io/BufferedReader; │ + .local v5, "shellInput":Ljava/io/BufferedOutputStream; │ + new-instance v6, Ljava/io/BufferedReader; │ │ - new-instance v10, Ljava/io/InputStreamReader; │ + new-instance v7, Ljava/io/InputStreamReader; │ │ - invoke-virtual {v7}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream; │ + .line 105 │ + invoke-virtual {v4}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-direct {v10, v11}, Ljava/io/InputStreamReader;->(Ljava/io/InputStream;)V │ + invoke-direct {v7, v8}, Ljava/io/InputStreamReader;->(Ljava/io/InputStream;)V │ │ - invoke-direct {v9, v10}, Ljava/io/BufferedReader;->(Ljava/io/Reader;)V │ + invoke-direct {v6, v7}, Ljava/io/BufferedReader;->(Ljava/io/Reader;)V │ │ .line 107 │ - .local v9, "shellOutput":Ljava/io/BufferedReader; │ - move-object v0, p1 │ + .local v6, "shellOutput":Ljava/io/BufferedReader; │ + array-length v8, p1 │ │ - .local v0, "arr$":[Ljava/lang/String; │ - array-length v4, v0 │ + const/4 v7, 0x0 │ │ - .local v4, "len$":I │ - const/4 v3, 0x0 │ - │ - .local v3, "i$":I │ :goto_0 │ - if-ge v3, v4, :cond_0 │ + if-ge v7, v8, :cond_0 │ │ - aget-object v1, v0, v3 │ + aget-object v0, p1, v7 │ │ .line 111 │ - .local v1, "command":Ljava/lang/String; │ - new-instance v10, Ljava/lang/StringBuilder; │ + .local v0, "command":Ljava/lang/String; │ + new-instance v9, Ljava/lang/StringBuilder; │ │ - invoke-direct {v10}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v9}, Ljava/lang/StringBuilder;->()V │ │ - invoke-virtual {v10, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v9, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - const-string v11, " 2>&1\n" │ + const-string v10, " 2>&1\n" │ │ - invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v10 │ + move-result-object v9 │ │ - invoke-virtual {v10}, Ljava/lang/String;->getBytes()[B │ + invoke-virtual {v9}, Ljava/lang/String;->getBytes()[B │ │ - move-result-object v10 │ + move-result-object v9 │ │ - invoke-virtual {v8, v10}, Ljava/io/BufferedOutputStream;->write([B)V │ + invoke-virtual {v5, v9}, Ljava/io/BufferedOutputStream;->write([B)V │ │ .line 107 │ - add-int/lit8 v3, v3, 0x1 │ + add-int/lit8 v7, v7, 0x1 │ │ goto :goto_0 │ │ .line 114 │ - .end local v1 # "command":Ljava/lang/String; │ + .end local v0 # "command":Ljava/lang/String; │ :cond_0 │ - const-string v10, "exit\n" │ + const-string v7, "exit\n" │ │ - invoke-virtual {v10}, Ljava/lang/String;->getBytes()[B │ + invoke-virtual {v7}, Ljava/lang/String;->getBytes()[B │ │ - move-result-object v10 │ + move-result-object v7 │ │ - invoke-virtual {v8, v10}, Ljava/io/BufferedOutputStream;->write([B)V │ + invoke-virtual {v5, v7}, Ljava/io/BufferedOutputStream;->write([B)V │ │ .line 115 │ - invoke-virtual {v8}, Ljava/io/BufferedOutputStream;->flush()V │ + invoke-virtual {v5}, Ljava/io/BufferedOutputStream;->flush()V │ │ .line 118 │ :goto_1 │ - invoke-virtual {v9}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String; │ + invoke-virtual {v6}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String; │ │ - move-result-object v5 │ + move-result-object v2 │ │ - .local v5, "line":Ljava/lang/String; │ - if-eqz v5, :cond_1 │ + .local v2, "line":Ljava/lang/String; │ + if-eqz v2, :cond_1 │ │ .line 122 │ - invoke-virtual {v6, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ + invoke-virtual {v3, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z │ :try_end_0 │ .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 │ .catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_0} :catch_1 │ │ goto :goto_1 │ │ .line 126 │ - .end local v0 # "arr$":[Ljava/lang/String; │ - .end local v3 # "i$":I │ - .end local v4 # "len$":I │ - .end local v5 # "line":Ljava/lang/String; │ - .end local v7 # "process":Ljava/lang/Process; │ - .end local v8 # "shellInput":Ljava/io/BufferedOutputStream; │ - .end local v9 # "shellOutput":Ljava/io/BufferedReader; │ + .end local v2 # "line":Ljava/lang/String; │ + .end local v4 # "process":Ljava/lang/Process; │ + .end local v5 # "shellInput":Ljava/io/BufferedOutputStream; │ + .end local v6 # "shellOutput":Ljava/io/BufferedReader; │ :catch_0 │ - move-exception v2 │ + move-exception v1 │ │ .line 127 │ - .local v2, "e":Ljava/io/IOException; │ - sget-object v10, Lorg/nick/cryptfs/passwdmanager/SuShell;->TAG:Ljava/lang/String; │ + .local v1, "e":Ljava/io/IOException; │ + sget-object v7, Lorg/nick/cryptfs/passwdmanager/SuShell;->TAG:Ljava/lang/String; │ │ - new-instance v11, Ljava/lang/StringBuilder; │ + new-instance v8, Ljava/lang/StringBuilder; │ │ - invoke-direct {v11}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ │ - const-string v12, "Error: " │ + const-string v9, "Error: " │ │ - invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v2}, Ljava/io/IOException;->getMessage()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/io/IOException;->getMessage()Ljava/lang/String; │ │ - move-result-object v12 │ + move-result-object v9 │ │ - invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-static {v10, v11, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + invoke-static {v7, v8, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ .line 128 │ - new-instance v10, Ljava/lang/RuntimeException; │ + new-instance v7, Ljava/lang/RuntimeException; │ │ - invoke-direct {v10, v2}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ + invoke-direct {v7, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ │ - throw v10 │ + throw v7 │ │ .line 125 │ - .end local v2 # "e":Ljava/io/IOException; │ - .restart local v0 # "arr$":[Ljava/lang/String; │ - .restart local v3 # "i$":I │ - .restart local v4 # "len$":I │ - .restart local v5 # "line":Ljava/lang/String; │ - .restart local v7 # "process":Ljava/lang/Process; │ - .restart local v8 # "shellInput":Ljava/io/BufferedOutputStream; │ - .restart local v9 # "shellOutput":Ljava/io/BufferedReader; │ + .end local v1 # "e":Ljava/io/IOException; │ + .restart local v2 # "line":Ljava/lang/String; │ + .restart local v4 # "process":Ljava/lang/Process; │ + .restart local v5 # "shellInput":Ljava/io/BufferedOutputStream; │ + .restart local v6 # "shellOutput":Ljava/io/BufferedReader; │ :cond_1 │ :try_start_1 │ - invoke-virtual {v7}, Ljava/lang/Process;->waitFor()I │ + invoke-virtual {v4}, Ljava/lang/Process;->waitFor()I │ :try_end_1 │ .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0 │ .catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_1 │ │ .line 134 │ - return-object v6 │ + return-object v3 │ │ .line 129 │ - .end local v0 # "arr$":[Ljava/lang/String; │ - .end local v3 # "i$":I │ - .end local v4 # "len$":I │ - .end local v5 # "line":Ljava/lang/String; │ - .end local v7 # "process":Ljava/lang/Process; │ - .end local v8 # "shellInput":Ljava/io/BufferedOutputStream; │ - .end local v9 # "shellOutput":Ljava/io/BufferedReader; │ + .end local v2 # "line":Ljava/lang/String; │ + .end local v4 # "process":Ljava/lang/Process; │ + .end local v5 # "shellInput":Ljava/io/BufferedOutputStream; │ + .end local v6 # "shellOutput":Ljava/io/BufferedReader; │ :catch_1 │ - move-exception v2 │ + move-exception v1 │ │ .line 130 │ - .local v2, "e":Ljava/lang/InterruptedException; │ - sget-object v10, Lorg/nick/cryptfs/passwdmanager/SuShell;->TAG:Ljava/lang/String; │ + .local v1, "e":Ljava/lang/InterruptedException; │ + sget-object v7, Lorg/nick/cryptfs/passwdmanager/SuShell;->TAG:Ljava/lang/String; │ │ - new-instance v11, Ljava/lang/StringBuilder; │ + new-instance v8, Ljava/lang/StringBuilder; │ │ - invoke-direct {v11}, Ljava/lang/StringBuilder;->()V │ + invoke-direct {v8}, Ljava/lang/StringBuilder;->()V │ │ - const-string v12, "Error: " │ + const-string v9, "Error: " │ │ - invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v2}, Ljava/lang/InterruptedException;->getMessage()Ljava/lang/String; │ + invoke-virtual {v1}, Ljava/lang/InterruptedException;->getMessage()Ljava/lang/String; │ │ - move-result-object v12 │ + move-result-object v9 │ │ - invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ + invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ + invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; │ │ - move-result-object v11 │ + move-result-object v8 │ │ - invoke-static {v10, v11, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ + invoke-static {v7, v8, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I │ │ .line 131 │ - new-instance v10, Ljava/lang/RuntimeException; │ + new-instance v7, Ljava/lang/RuntimeException; │ │ - invoke-direct {v10, v2}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ + invoke-direct {v7, v1}, Ljava/lang/RuntimeException;->(Ljava/lang/Throwable;)V │ │ - throw v10 │ + throw v7 │ .end method │ │ .method public static runWithShell(Ljava/lang/String;)Ljava/util/ArrayList; │ .locals 1 │ .param p0, "command" # Ljava/lang/String; │ .annotation system Ldalvik/annotation/Signature; │ value = { ├── original/AndroidManifest.xml │ @@ -37,16 +37,16 @@ │ 00000240: 6500 0000 0800 6d00 6100 6e00 6900 6600 e.....m.a.n.i.f. │ 00000250: 6500 7300 7400 0000 1e00 6f00 7200 6700 e.s.t.....o.r.g. │ 00000260: 2e00 6e00 6900 6300 6b00 2e00 6300 7200 ..n.i.c.k...c.r. │ 00000270: 7900 7000 7400 6600 7300 2e00 7000 6100 y.p.t.f.s...p.a. │ 00000280: 7300 7300 7700 6400 6d00 6100 6e00 6100 s.s.w.d.m.a.n.a. │ 00000290: 6700 6500 7200 0000 0500 3100 2e00 3200 g.e.r.....1...2. │ 000002a0: 2e00 3600 0000 0200 3200 3300 0000 0b00 ..6.....2.3..... │ -000002b0: 3600 2e00 3000 2d00 3200 3100 3600 3600 6...0.-.2.1.6.6. │ -000002c0: 3700 3600 3700 0000 0800 7500 7300 6500 7.6.7.....u.s.e. │ +000002b0: 3600 2e00 3000 2d00 3200 3700 3000 3400 6...0.-.2.7.0.4. │ +000002c0: 3000 3000 3200 0000 0800 7500 7300 6500 0.0.2.....u.s.e. │ 000002d0: 7300 2d00 7300 6400 6b00 0000 0b00 6100 s.-.s.d.k.....a. │ 000002e0: 7000 7000 6c00 6900 6300 6100 7400 6900 p.p.l.i.c.a.t.i. │ 000002f0: 6f00 6e00 0000 0800 6100 6300 7400 6900 o.n.....a.c.t.i. │ 00000300: 7600 6900 7400 7900 0000 0d00 2e00 4d00 v.i.t.y.......M. │ 00000310: 6100 6900 6e00 4100 6300 7400 6900 7600 a.i.n.A.c.t.i.v. │ 00000320: 6900 7400 7900 0000 0d00 6900 6e00 7400 i.t.y.....i.n.t. │ 00000330: 6500 6e00 7400 2d00 6600 6900 6c00 7400 e.n.t.-.f.i.l.t.