mirror of
				https://github.com/topjohnwu/Magisk
				synced 2025-10-31 10:40:52 +01:00 
			
		
		
		
	Compare commits
	
		
			1959 Commits
		
	
	
		
			manager-v4
			...
			manager-v6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | a54eaf5371 | ||
|   | 8032bd4bb9 | ||
|   | ea1beec2f7 | ||
|   | 05f2f6820e | ||
|   | 0f5f15a5ce | ||
|   | 14ac37e8a5 | ||
|   | 1fae89cbb6 | ||
|   | 8b4008798f | ||
|   | fd4faf59b8 | ||
|   | 109891d668 | ||
|   | bdea796121 | ||
|   | c8813c05c9 | ||
|   | 1cff08ce5d | ||
|   | a868118f6f | ||
|   | e5c62f5750 | ||
|   | 4084e8790b | ||
|   | 8d931dd773 | ||
|   | 25d6366297 | ||
|   | 08cd5b81d1 | ||
|   | 5d3a8a5b1a | ||
|   | 79b84da4b8 | ||
|   | 68b07c5913 | ||
|   | 553db9124d | ||
|   | b495f37299 | ||
|   | 1915547594 | ||
|   | 03de29164a | ||
|   | 86d8b50547 | ||
|   | 7b04386162 | ||
|   | 07bfdf3e4d | ||
|   | d510224e2a | ||
|   | e658f9297d | ||
|   | 2b502e9a0f | ||
|   | 59141f9bbe | ||
|   | 3af66b72f2 | ||
|   | 422c24bd68 | ||
|   | f0f87c8eb9 | ||
|   | 80dad54119 | ||
|   | 56a76df28e | ||
|   | ee2c801fe0 | ||
|   | fc314cc248 | ||
|   | fe231a4c80 | ||
|   | 2e2bbe0a7f | ||
|   | 857e6e8345 | ||
|   | 3402981ada | ||
|   | f401e577e5 | ||
|   | 0241a50c6f | ||
|   | 2a2e1236fc | ||
|   | 9b170f2b4f | ||
|   | 51e9ff59de | ||
|   | 2977dbcded | ||
|   | ac60b51035 | ||
|   | 4c2f33a089 | ||
|   | 3b071116ac | ||
|   | a9f265a591 | ||
|   | 5b62fc8103 | ||
|   | 0598f5f89a | ||
|   | f723427b8b | ||
|   | f69a004c1c | ||
|   | 1134b18a8b | ||
|   | 2e4aa507f7 | ||
|   | 5fb96cdcf4 | ||
|   | e8cba3524e | ||
|   | 7e6b5363f1 | ||
|   | 29457a1d28 | ||
|   | 731455f164 | ||
|   | b01a8cace6 | ||
|   | 72db5b4fac | ||
|   | ddfd42994e | ||
|   | 2a9ff9c5ef | ||
|   | 6d49f05356 | ||
|   | 85a5e62e36 | ||
|   | e67965a381 | ||
|   | ec4723096f | ||
|   | 762b678d24 | ||
|   | 38fcc57bbf | ||
|   | c8c57c74cc | ||
|   | 0784448c69 | ||
|   | de0064af47 | ||
|   | baae1fc84f | ||
|   | 2ab999f4ca | ||
|   | c9f390d6e0 | ||
|   | af05922ecc | ||
|   | 299edbf3ab | ||
|   | c8abed9d48 | ||
|   | 3622c49ce1 | ||
|   | 0462e9a7d9 | ||
|   | c3a6091908 | ||
|   | ab5fedda0b | ||
|   | ba70269398 | ||
|   | 77fd5fa7de | ||
|   | ab74290fe3 | ||
|   | 3aad9d8166 | ||
|   | 572e078d87 | ||
|   | ee4548230b | ||
|   | 96b93bd876 | ||
|   | 927f69fe30 | ||
|   | 7e9ad5927a | ||
|   | 6d6b07865e | ||
|   | 376e7977f0 | ||
|   | 83ae66daea | ||
|   | 89e0be0099 | ||
|   | ef40c1212e | ||
|   | 3a2a2a4ffa | ||
|   | 9592a69986 | ||
|   | 89be07e1f2 | ||
|   | c61c3ae0e9 | ||
|   | 817350c8c5 | ||
|   | 3603b7c82b | ||
|   | 5743c72cca | ||
|   | 4cdd66ceff | ||
|   | d3947d2cfa | ||
|   | 07718b994a | ||
|   | ef9d463bd7 | ||
|   | 8745c7884e | ||
|   | b6965105b7 | ||
|   | 3d269fe8be | ||
|   | be5f00aa1a | ||
|   | 59ba350f34 | ||
|   | 803c5377a6 | ||
|   | 7c12bf7fa1 | ||
|   | ca35a9681f | ||
|   | 9fe5f37337 | ||
|   | 0742901cd2 | ||
|   | 5e4d2dedbe | ||
|   | 411ea56a3e | ||
|   | cda57dd4b4 | ||
|   | 4351de503f | ||
|   | 6339ba6bfb | ||
|   | ef6677f43d | ||
|   | a7824af5a8 | ||
|   | 1eb7d7b7a8 | ||
|   | 11c33d4447 | ||
|   | b8a3cc8b60 | ||
|   | 27c688252d | ||
|   | 3e2afd4b1d | ||
|   | f45b0686d2 | ||
|   | 1f3f881f81 | ||
|   | ceb51bb14f | ||
|   | 3e22573d8d | ||
|   | 79418a3767 | ||
|   | 40d4683de1 | ||
|   | 79e5b54ec7 | ||
|   | bd81923f2f | ||
|   | 69560b8ad7 | ||
|   | dc413e7b73 | ||
|   | 7fc00c446b | ||
|   | 2efc423cf8 | ||
|   | 8ec3086cdd | ||
|   | 5fc7079023 | ||
|   | bfbd254be7 | ||
|   | f8ea43466c | ||
|   | 75ab1fa570 | ||
|   | bf4a46d57c | ||
|   | 1046dd5eda | ||
|   | f9e32a119a | ||
|   | dbb8b8a439 | ||
|   | 2a65c3dc8f | ||
|   | f17ec9e9d7 | ||
|   | 675d6d8328 | ||
|   | 6dc9ccad75 | ||
|   | 6add02702b | ||
|   | 958d6377e3 | ||
|   | 9954154ca2 | ||
|   | 4ecbf8c12c | ||
|   | fc8a3c5fb4 | ||
|   | 01e7dff1a0 | ||
|   | 018c0064cd | ||
|   | c2b016370b | ||
|   | fc791b4371 | ||
|   | f76bb009f4 | ||
|   | 8a1292b295 | ||
|   | d7d80d3fc1 | ||
|   | 41b01003fd | ||
|   | 6557070ae1 | ||
|   | e7e580e177 | ||
|   | dd9ddd2019 | ||
|   | 74aae523ba | ||
|   | 48c40f9516 | ||
|   | e0e7674715 | ||
|   | e1a65276b9 | ||
|   | 469adc85ad | ||
|   | e1b181ca4e | ||
|   | a4f0fbf8b7 | ||
|   | 190cdaddf8 | ||
|   | 5c4ba13839 | ||
|   | e62630cf3e | ||
|   | 36fe7846c0 | ||
|   | 8d150dd67a | ||
|   | 506df00d81 | ||
|   | a9121fa28f | ||
|   | d5a56d9e85 | ||
|   | acf7c0c665 | ||
|   | 619d48c97a | ||
|   | 2cb198c38c | ||
|   | e8e39e0f3c | ||
|   | 37860181d4 | ||
|   | d119dd9a0c | ||
|   | 09ef19f7ec | ||
|   | 6a06c92fa6 | ||
|   | 58ae596b0f | ||
|   | f1ca21678d | ||
|   | d7eeef2c8a | ||
|   | 4f626897f2 | ||
|   | b127e01845 | ||
|   | 2118beeb23 | ||
|   | 5020cd1bbf | ||
|   | cce636224c | ||
|   | 60b3b8ddce | ||
|   | 41446ec9ba | ||
|   | df8b047bca | ||
|   | 12ced52012 | ||
|   | 1d53335ae5 | ||
|   | 971a50d290 | ||
|   | 36dd9106a8 | ||
|   | 0a4ee3ffc7 | ||
|   | cfe32f1a70 | ||
|   | d877f5d5c6 | ||
|   | 0ab6ffefb4 | ||
|   | a292a1d23a | ||
|   | 3f87f6aee3 | ||
|   | 04bcd145d3 | ||
|   | 244e811291 | ||
|   | ac7467fb59 | ||
|   | 2c0436216f | ||
|   | 017fbf267b | ||
|   | e6afbf2ec0 | ||
|   | 906b4aad9e | ||
|   | 4cf8d41f6a | ||
|   | 47c860142e | ||
|   | 2fba3f213b | ||
|   | af7c6f9fce | ||
|   | 78534deab6 | ||
|   | 6710314832 | ||
|   | 0cd4fa6fa0 | ||
|   | 065949496e | ||
|   | 39c82576ae | ||
|   | 37221a508d | ||
|   | 6b43a32a10 | ||
|   | d7cd1ff142 | ||
|   | 659d947863 | ||
|   | 39be7a6288 | ||
|   | 8ac976c579 | ||
|   | 70fd432c57 | ||
|   | 00135f2f49 | ||
|   | 9b944bc29c | ||
|   | d520b3d2a0 | ||
|   | 6f41d9855b | ||
|   | 2d7c1da741 | ||
|   | c0f45b6b1e | ||
|   | 7a0025673c | ||
|   | ad7ec79903 | ||
|   | 0543239cca | ||
|   | ff3dad2457 | ||
|   | 298d5e197b | ||
|   | d73c0a998d | ||
|   | 1b79a3ddbf | ||
|   | a8478ace18 | ||
|   | 72cf5f3f9f | ||
|   | 6f9d493a18 | ||
|   | 08f7d5ebff | ||
|   | 1fe3675403 | ||
|   | a0f956d2c1 | ||
|   | 1560f91b4a | ||
|   | c20f362594 | ||
|   | 7ae8c26e50 | ||
|   | adfffe6121 | ||
|   | 64601baa76 | ||
|   | aa374b51f1 | ||
|   | 5c483745ff | ||
|   | 0c247110a0 | ||
|   | 1643638a78 | ||
|   | 4ace228fc2 | ||
|   | 25aa86a0dc | ||
|   | 70d3b24338 | ||
|   | 8664e9d19b | ||
|   | 50d9877446 | ||
|   | fe06352089 | ||
|   | 7b599419b5 | ||
|   | 491adf072e | ||
|   | f6aae2b048 | ||
|   | d2d5c94633 | ||
|   | 10581f9ef2 | ||
|   | c7e0e1c038 | ||
|   | a914d701eb | ||
|   | 0f9dee6e9c | ||
|   | aa383e2190 | ||
|   | 9bbfcf326c | ||
|   | 3948e67c8f | ||
|   | d56e1b2cc5 | ||
|   | bfac1f1bc2 | ||
|   | d4a956c355 | ||
|   | 6c71fefa58 | ||
|   | ad3003c00a | ||
|   | 0ad5dcb258 | ||
|   | d790309b02 | ||
|   | 1072faf309 | ||
|   | d2c196896d | ||
|   | e42b608444 | ||
|   | 89a501a3af | ||
|   | c19b78180c | ||
|   | c0b750a09a | ||
|   | c967e618a1 | ||
|   | 59f78d7dfc | ||
|   | d8405f0d05 | ||
|   | 0f34f0033c | ||
|   | 190646d50c | ||
|   | a46c6252c6 | ||
|   | 5c1886c8f5 | ||
|   | afcb3d8f34 | ||
|   | 9fbffafdbf | ||
|   | 075f0458f7 | ||
|   | d4568aa0a7 | ||
|   | 97588408a2 | ||
|   | 1def9b301b | ||
|   | 5bac442b18 | ||
|   | 6add682705 | ||
|   | 8b50d84a05 | ||
|   | d3858b81e2 | ||
|   | bdff9769be | ||
|   | c61df75e5e | ||
|   | a74bf2cc27 | ||
|   | ada0f93686 | ||
|   | ff36f2ba17 | ||
|   | 5164cfd399 | ||
|   | 5fa021503e | ||
|   | 7b5d79d313 | ||
|   | 3e3f38500d | ||
|   | 5109b9abfd | ||
|   | 7fb4777c1c | ||
|   | c38533e0f8 | ||
|   | 51ba99d09e | ||
|   | 9159f86a9e | ||
|   | e139f4fc13 | ||
|   | 2fbfeacb87 | ||
|   | ebb7a9fcda | ||
|   | 9e72317302 | ||
|   | d764c20c08 | ||
|   | 9c17b8a098 | ||
|   | 3084873154 | ||
|   | 32809e56d0 | ||
|   | 9f05b182a2 | ||
|   | 525484e834 | ||
|   | 65a4e69cae | ||
|   | e973f8bab9 | ||
|   | 92466671ff | ||
|   | 6d61106070 | ||
|   | ac13749fb8 | ||
|   | 7ec1a9a316 | ||
|   | cf17e21ad3 | ||
|   | 0e0240c4ab | ||
|   | d1b290b91a | ||
|   | a63696836c | ||
|   | 46aad00f16 | ||
|   | 252afe8932 | ||
|   | 9dd467a613 | ||
|   | 4c14df67cc | ||
|   | 20e0fe3ba1 | ||
|   | 6a005135f2 | ||
|   | 82e8375957 | ||
|   | bb25edc09e | ||
|   | 169c0fe4af | ||
|   | cd6918e6eb | ||
|   | 5be035fd44 | ||
|   | f1edc8443c | ||
|   | d9564bd04c | ||
|   | 35f1c396f2 | ||
|   | 6acb950990 | ||
|   | 27e0d1641a | ||
|   | 9ac71ff8af | ||
|   | 075737a4ec | ||
|   | 6d0e4a6a5e | ||
|   | a2544768a0 | ||
|   | 8574a14ed2 | ||
|   | e90c555c18 | ||
|   | 863b9a410f | ||
|   | 23c7bbc7d5 | ||
|   | f900189f90 | ||
|   | 7c74be2790 | ||
|   | 70dd2d4829 | ||
|   | 914b7ee056 | ||
|   | e39f83edbf | ||
|   | 52fe0c6abb | ||
|   | 5cb3e5937f | ||
|   | e0cd224831 | ||
|   | de225ac64a | ||
|   | 5807808a10 | ||
|   | 362877d18f | ||
|   | 88b8dd0149 | ||
|   | 1552f32e09 | ||
|   | 50b73a6720 | ||
|   | 53e51f1735 | ||
|   | 40b63bfebe | ||
|   | 89861eceef | ||
|   | b8eaff66fa | ||
|   | a747fdd27d | ||
|   | 27851bdefa | ||
|   | 3fdeb40ddf | ||
|   | 546c7cebd3 | ||
|   | 473902f5f4 | ||
|   | 41c0721159 | ||
|   | 413d4badfd | ||
|   | c5d67ebf72 | ||
|   | 91818cfa1a | ||
|   | 6263d684d9 | ||
|   | 07140d33a7 | ||
|   | 4ffc388491 | ||
|   | 0ef026c610 | ||
|   | 153c7fdf20 | ||
|   | 90379eeb35 | ||
|   | 3ae959af95 | ||
|   | c8cc652b71 | ||
|   | 4b6285e5c2 | ||
|   | 013de7b3ef | ||
|   | e11e88a9c5 | ||
|   | 7cec8baa55 | ||
|   | e987db9fb5 | ||
|   | c603b9084f | ||
|   | 492d6dfcf0 | ||
|   | a3e0f2dcc3 | ||
|   | cf211e26f4 | ||
|   | c5aaaa7c55 | ||
|   | f86d077e27 | ||
|   | f8076825cb | ||
|   | 201d8a97d4 | ||
|   | d08f326990 | ||
|   | 8dc9d3bc78 | ||
|   | adf95ce3a0 | ||
|   | 3c1aca114f | ||
|   | 18d0fd9d2a | ||
|   | c2e673f978 | ||
|   | 2bde8a1975 | ||
|   | bf9927c7dd | ||
|   | f339a087a2 | ||
|   | 6ccc5f3788 | ||
|   | 1affb91f17 | ||
|   | 7779c3e372 | ||
|   | 49ba7ad22e | ||
|   | 6ad33d60f7 | ||
|   | 0117274061 | ||
|   | e50192a407 | ||
|   | c6fc0e587e | ||
|   | 68c448bc34 | ||
|   | ef62272df7 | ||
|   | 375cd0e42b | ||
|   | b885ccbd63 | ||
|   | da6f1d0f12 | ||
|   | 3934821436 | ||
|   | c3b473e4bc | ||
|   | 4c0d435b6b | ||
|   | 7ed2c077de | ||
|   | 52a6a7bce8 | ||
|   | 1283167595 | ||
|   | 23c2e22910 | ||
|   | f44b2dbd45 | ||
|   | 46ee2c3f4e | ||
|   | 5d5ec08566 | ||
|   | 0e717a2de4 | ||
|   | cada862214 | ||
|   | c3a6179a21 | ||
|   | 682c6d4e7b | ||
|   | d0a253c97e | ||
|   | c0e2b3027b | ||
|   | e7dc14b07d | ||
|   | 0da9146e90 | ||
|   | ad05a33e02 | ||
|   | ef175e3cbe | ||
|   | 4de51d93ef | ||
|   | 8224e038a3 | ||
|   | 03c04c2141 | ||
|   | 2e091b04e5 | ||
|   | 60296493fe | ||
|   | 20c20f8f9b | ||
|   | f1d642a4e5 | ||
|   | e0e5ea17a4 | ||
|   | 91a0ba72dc | ||
|   | c54c5a974a | ||
|   | 532b8c54ab | ||
|   | 5ac87891b5 | ||
|   | 2d905ce3fb | ||
|   | 831112abd2 | ||
|   | 153d0f5505 | ||
|   | c78896a335 | ||
|   | 316ec98e0f | ||
|   | cf58545a45 | ||
|   | e7a2144def | ||
|   | 52a2c6958b | ||
|   | 70243d7a47 | ||
|   | b5b8c4b725 | ||
|   | 6c4d81b1e9 | ||
|   | 513d732934 | ||
|   | c88dc8795b | ||
|   | a8030c39b1 | ||
|   | 7243b9e72f | ||
|   | d149af9628 | ||
|   | c0ac2d540b | ||
|   | 528634d755 | ||
|   | 3283439fd4 | ||
|   | e86015badc | ||
|   | c8f65fc9a1 | ||
|   | c8216f9bc5 | ||
|   | e579f314a6 | ||
|   | 2c4001387e | ||
|   | caa39474cb | ||
|   | 7684602ea8 | ||
|   | d1a7372bd2 | ||
|   | 4601989d4a | ||
|   | 23f697d62b | ||
|   | e837bdc8ad | ||
|   | 7265450e2e | ||
|   | 058dbc9f9e | ||
|   | daf9b019c6 | ||
|   | 14eebd582f | ||
|   | 9a8eeacee8 | ||
|   | 45b0bf5bc5 | ||
|   | 88db822c43 | ||
|   | fbf3588fdf | ||
|   | a82ef6bd35 | ||
|   | 312466aaf8 | ||
|   | c0ca99f4b4 | ||
|   | 196f15d240 | ||
|   | bfddef2671 | ||
|   | 44395e8ff0 | ||
|   | 4ff39f8817 | ||
|   | 1df41003ec | ||
|   | 1f39ee41ad | ||
|   | 42d8b1ecb9 | ||
|   | a4da7b33e6 | ||
|   | e4ee9e9095 | ||
|   | 835ece5469 | ||
|   | 77430a282f | ||
|   | d93fc67a75 | ||
|   | 838f3cc01e | ||
|   | 4d5841332a | ||
|   | 9b41976252 | ||
|   | d08fd0561a | ||
|   | 30e459252c | ||
|   | a6958ac139 | ||
|   | d7d76f54cc | ||
|   | e6c1dd532d | ||
|   | 970a2e87b3 | ||
|   | cabaae8403 | ||
|   | d1f301e059 | ||
|   | 79eb5b2ed2 | ||
|   | f0533fca70 | ||
|   | 08e98eeb15 | ||
|   | f2064a84ed | ||
|   | b2f719989d | ||
|   | 1e812c40ce | ||
|   | a949641342 | ||
|   | 6db27c7758 | ||
|   | c231e88a5d | ||
|   | 3f83919e09 | ||
|   | 72a5b83544 | ||
|   | d2e8ecc646 | ||
|   | 30eb4074cb | ||
|   | 79c71509f6 | ||
|   | 5dab580cfc | ||
|   | 9929e7d8e8 | ||
|   | f6ee252572 | ||
|   | 90d218ebc8 | ||
|   | 499a157946 | ||
|   | c5a7ab2415 | ||
|   | 3dd5a6f378 | ||
|   | 7be26a0677 | ||
|   | c183fdd3ca | ||
|   | baa439457e | ||
|   | 4dbcd54b72 | ||
|   | 11062f2d4f | ||
|   | b0a5dbb4c2 | ||
|   | 0abdfda5a2 | ||
|   | a0466085fe | ||
|   | a7ceb04cb7 | ||
|   | 274efb49e7 | ||
|   | b3cd83bbca | ||
|   | b8bd83ba05 | ||
|   | 34dcf49fbc | ||
|   | f2f7d77847 | ||
|   | b2105f2d88 | ||
|   | 4126f3bdcb | ||
|   | 74ccfe6088 | ||
|   | 48085b5573 | ||
|   | ef2f8d485b | ||
|   | 9fb9212b0a | ||
|   | 7b9ddc9b3b | ||
|   | 15726a759c | ||
|   | 2c7474ea87 | ||
|   | c726aee643 | ||
|   | f31a24b16d | ||
|   | b436bce565 | ||
|   | 886286a819 | ||
|   | c3e94e1480 | ||
|   | 5f1343e5b4 | ||
|   | ffb1303d61 | ||
|   | a0b0d938f0 | ||
|   | 158f5ba7d9 | ||
|   | b8cf40161c | ||
|   | fb96e6a56f | ||
|   | 6668ba2511 | ||
|   | 6d93831488 | ||
|   | 4668ef3020 | ||
|   | bcdadc6581 | ||
|   | 36448191b7 | ||
|   | be5be108c3 | ||
|   | c9ca42aaa9 | ||
|   | 630f2b7d19 | ||
|   | dde0a4a7c8 | ||
|   | c0e2f44092 | ||
|   | 1412fcbb22 | ||
|   | c69dc0f036 | ||
|   | 9b445d89a1 | ||
|   | c3c78428c4 | ||
|   | c6d2bf577f | ||
|   | b06f69573d | ||
|   | 8fd03f7434 | ||
|   | 25703c1750 | ||
|   | 90e4ac2d23 | ||
|   | 956bceae75 | ||
|   | c663be86de | ||
|   | aca78baecf | ||
|   | fbcf6b7954 | ||
|   | 84123222aa | ||
|   | e9dbcf693d | ||
|   | 1cd0a9d48f | ||
|   | 1b48e44914 | ||
|   | 0a398f03fd | ||
|   | 3a9a3ed184 | ||
|   | 88fae36b8a | ||
|   | 15ed3e52f2 | ||
|   | 8990919dab | ||
|   | e5638e4b15 | ||
|   | 404c6fac9a | ||
|   | fc9d4034a9 | ||
|   | cecc0b932d | ||
|   | 0faed7159c | ||
|   | fb491cfdcf | ||
|   | fc706dcb40 | ||
|   | a2c1b024f3 | ||
|   | 267395bfa2 | ||
|   | 920fc5ae99 | ||
|   | 92ed0ae51b | ||
|   | 3d865394d7 | ||
|   | 76ef1d0d86 | ||
|   | c694776162 | ||
|   | 9484ec0c17 | ||
|   | 7e2ba41c64 | ||
|   | 614c552e55 | ||
|   | 7db3d84ba2 | ||
|   | bb2c744ec0 | ||
|   | 87f6018468 | ||
|   | 9194c50590 | ||
|   | 873f14bbe0 | ||
|   | 31110b1927 | ||
|   | 6764a98409 | ||
|   | 7ff45974c6 | ||
|   | fd7b5f393a | ||
|   | 2533a4fc4a | ||
|   | 2ca528f93f | ||
|   | 42284c5efb | ||
|   | ce2e6b7d35 | ||
|   | 684c5d225a | ||
|   | b75018b03b | ||
|   | 41499d4b3c | ||
|   | 383c97c303 | ||
|   | 74b54ef371 | ||
|   | bbf7b4db79 | ||
|   | c61f0acab5 | ||
|   | 398af123b2 | ||
|   | 315fa9d7d3 | ||
|   | fb5e8ef40c | ||
|   | 7d7686da33 | ||
|   | e79d764148 | ||
|   | ebbee0dc43 | ||
|   | 65e455ef0b | ||
|   | ed0c16e201 | ||
|   | 209fdf349a | ||
|   | f49f2afacd | ||
|   | 8c6330a3c4 | ||
|   | 337b777125 | ||
|   | 1b756e8d96 | ||
|   | ac05e2f2e2 | ||
|   | 787f7b3035 | ||
|   | 31bd642b80 | ||
|   | f0bac6b154 | ||
|   | cc7e74ca11 | ||
|   | 52d478df1a | ||
|   | e8a44646b8 | ||
|   | 0c782edf21 | ||
|   | e3948d295e | ||
|   | 5f2c742a5c | ||
|   | ae97d011ae | ||
|   | 1b7657a374 | ||
|   | 5665e04014 | ||
|   | b30c77aab9 | ||
|   | a5916b9c49 | ||
|   | 453180e30b | ||
|   | 8bd432d391 | ||
|   | c9d3e20aef | ||
|   | bb70385a42 | ||
|   | 9855877b03 | ||
|   | d5408d1f09 | ||
|   | f334532aba | ||
|   | be77c09f3d | ||
|   | 7de6a92753 | ||
|   | 36f76f5a14 | ||
|   | b84523d557 | ||
|   | 21a557a184 | ||
|   | 2c78c415e9 | ||
|   | 79ccb30dd2 | ||
|   | 3c566becf6 | ||
|   | 76c9188fae | ||
|   | e4e5269836 | ||
|   | 9e737df534 | ||
|   | 151ca593af | ||
|   | 4132eacba0 | ||
|   | 06e6151816 | ||
|   | 70277d4edd | ||
|   | d21d2f1a9c | ||
|   | 74a7be996f | ||
|   | 0b3192c4d5 | ||
|   | 968e6237bd | ||
|   | d780b5a0e4 | ||
|   | 3e48427eaf | ||
|   | 31360c34ed | ||
|   | e9624e2304 | ||
|   | 3f38579529 | ||
|   | 4d5a9f6e15 | ||
|   | 41f47acd76 | ||
|   | 821dcaa7c7 | ||
|   | 7135d26419 | ||
|   | f7fd354dce | ||
|   | 0c69a65bc4 | ||
|   | 2f2ca5eab4 | ||
|   | 9c6e64f47d | ||
|   | 0afa601551 | ||
|   | df9c40c035 | ||
|   | 25b67017e4 | ||
|   | bc9c3346f3 | ||
|   | 1db7e19fe8 | ||
|   | 102c03ce2b | ||
|   | ec19eb4455 | ||
|   | 6d9924d50e | ||
|   | 16c4d74274 | ||
|   | e4af5fd36a | ||
|   | 702775493a | ||
|   | b2ae826066 | ||
|   | cc3e9990fa | ||
|   | 271cbddd5e | ||
|   | 26dfbb3028 | ||
|   | f16cd987e4 | ||
|   | c1423ca9ad | ||
|   | 74379150a1 | ||
|   | a94fa81195 | ||
|   | 6119c24720 | ||
|   | c840a30c30 | ||
|   | ae5277a898 | ||
|   | bffa837825 | ||
|   | b9e7d0faea | ||
|   | 860b08d9ed | ||
|   | 691dc1d49e | ||
|   | 7da205f4c8 | ||
|   | 9d6886d367 | ||
|   | 9589b68f5a | ||
|   | 28d88af1af | ||
|   | 8b5acd1849 | ||
|   | 33dc63a7fd | ||
|   | 754fafcfe9 | ||
|   | bd7766b17e | ||
|   | 70b7d73453 | ||
|   | 5ad4702a5b | ||
|   | 40b6fe03c2 | ||
|   | 49ecba2476 | ||
|   | ebd509d92d | ||
|   | 7193374a7e | ||
|   | 6728445542 | ||
|   | 10ed299c78 | ||
|   | d0a86385b7 | ||
|   | 32b124913e | ||
|   | 599ae95251 | ||
|   | d1be34c34a | ||
|   | bc2cac90fe | ||
|   | 50a49e2c8c | ||
|   | c60adb113e | ||
|   | aee015e8f6 | ||
|   | bf6af29205 | ||
|   | 329905d472 | ||
|   | 00d450d262 | ||
|   | 2365d1bd20 | ||
|   | 5b385c18e5 | ||
|   | 98c0434ec0 | ||
|   | f318d0a3bc | ||
|   | 27f5b410c0 | ||
|   | 3f55be9676 | ||
|   | 28350e3ad9 | ||
|   | f48e6c93b8 | ||
|   | 7cfc24d68f | ||
|   | a58d3ea04d | ||
|   | dfee9954e0 | ||
|   | eed86c760f | ||
|   | c471bb6f67 | ||
|   | 518c2b0f95 | ||
|   | 328fc44194 | ||
|   | b6f735a8f6 | ||
|   | b05d2d3a2d | ||
|   | deae08fc4b | ||
|   | 19af5f9e0b | ||
|   | c61135ee7b | ||
|   | f37f330670 | ||
|   | 40082d4571 | ||
|   | 97cf15007f | ||
|   | 00d655f346 | ||
|   | 821726e7c0 | ||
|   | e8302dfbe2 | ||
|   | 558f95cf7e | ||
|   | 18f6ead891 | ||
|   | 759e905c3c | ||
|   | 8bf7e42913 | ||
|   | 0dcd073554 | ||
|   | 2fe35d578d | ||
|   | 8d139e156e | ||
|   | 7c2849356a | ||
|   | 0025ffd1c0 | ||
|   | 2ef7146642 | ||
|   | 10bd25be52 | ||
|   | 1b27e69e40 | ||
|   | 65511845d2 | ||
|   | 1c743839ea | ||
|   | bcae9dec41 | ||
|   | 482c9af41f | ||
|   | 8e7b757efd | ||
|   | 1ab543cea1 | ||
|   | a3f86903e4 | ||
|   | c239c305ab | ||
|   | 2bf2e7461f | ||
|   | 7d1082b1cb | ||
|   | 0dbae83aec | ||
|   | f927c1b997 | ||
|   | 89ec7dad2b | ||
|   | 4fd61345af | ||
|   | 2e02af994e | ||
|   | 66cca24453 | ||
|   | 2f4062a923 | ||
|   | e733484fab | ||
|   | e5c3183025 | ||
|   | 836d9afe17 | ||
|   | 007a352742 | ||
|   | e526e5659e | ||
|   | 4a5227c7bf | ||
|   | c2c151ec4c | ||
|   | 452096e7e4 | ||
|   | 50c2a9859e | ||
|   | 677b667307 | ||
|   | 930c82316a | ||
|   | 3dc22db265 | ||
|   | d8c51cb286 | ||
|   | 2f79d0c3b3 | ||
|   | 5c338cd0a7 | ||
|   | d8bb3af06b | ||
|   | e139e8777b | ||
|   | 1adf331268 | ||
|   | 349b3e961b | ||
|   | 96650c06f0 | ||
|   | 26038a0a07 | ||
|   | 6a148b5dd9 | ||
|   | 0e109ef979 | ||
|   | d52d7cfbd9 | ||
|   | 4f74a259e3 | ||
|   | de2285d5e9 | ||
|   | b2483ba437 | ||
|   | a82a5e5a49 | ||
|   | 74da6e1dc0 | ||
|   | 84ffdf0ed5 | ||
|   | 022b18c8ce | ||
|   | b92b1dcddb | ||
|   | d161a02e71 | ||
|   | d2b6a700b1 | ||
|   | af203cef24 | ||
|   | 673e917e76 | ||
|   | a3bd41db54 | ||
|   | 1472dbb291 | ||
|   | d58a8dc868 | ||
|   | 0d9527921a | ||
|   | e94be0b70e | ||
|   | f0e4aec0af | ||
|   | b0d65b5edd | ||
|   | 75532ef591 | ||
|   | 9a6d1bd700 | ||
|   | a7ed6c15d3 | ||
|   | 5ee49ba065 | ||
|   | f6ae7e1bf1 | ||
|   | 190d857949 | ||
|   | f7b4935677 | ||
|   | a3c49de6a5 | ||
|   | d34bd47bea | ||
|   | f17792380b | ||
|   | c11920110e | ||
|   | ec5a993fea | ||
|   | d250c2cc89 | ||
|   | 767e73f40c | ||
|   | 3f699c9d2f | ||
|   | 50dbd9befd | ||
|   | 760e01bf92 | ||
|   | 543f435b1e | ||
|   | e8dd1b292f | ||
|   | 91337218b3 | ||
|   | afff3c0a49 | ||
|   | d21264d01b | ||
|   | b0567eadfd | ||
|   | 5fc2058336 | ||
|   | d0567d29d2 | ||
|   | 2b6c271d37 | ||
|   | b0c1a6f73a | ||
|   | 4db0ad32f0 | ||
|   | a1871e4bc3 | ||
|   | d065040321 | ||
|   | 3aa0294cd4 | ||
|   | 17f0fea3fc | ||
|   | 8ca1e43533 | ||
|   | 310b266251 | ||
|   | 21b1b5098e | ||
|   | a3a4a5d8a5 | ||
|   | 270536f33c | ||
|   | 66bb433cc6 | ||
|   | bd4ef1a03a | ||
|   | aa2d9a3bf1 | ||
|   | bd01c314dc | ||
|   | 257308d5db | ||
|   | d4620e1654 | ||
|   | fd6cbb138c | ||
|   | aa75c8e5e4 | ||
|   | e404476609 | ||
|   | 942c870981 | ||
|   | c461fc6daa | ||
|   | baff9256c5 | ||
|   | b4c0a255fc | ||
|   | 9f6a27c20d | ||
|   | 742dc137ed | ||
|   | 39a6bd33ce | ||
|   | 4672a5fad6 | ||
|   | e649b0a2df | ||
|   | 96eaa833f5 | ||
|   | fd8dbe3eff | ||
|   | bb97cc594d | ||
|   | 70a322263e | ||
|   | c6f144d482 | ||
|   | 3709489b3a | ||
|   | 863b13a694 | ||
|   | e6fea4e6dd | ||
|   | 83bfc13056 | ||
|   | bc4f09209b | ||
|   | 145ef32e28 | ||
|   | 2212800a23 | ||
|   | 2e25431bb6 | ||
|   | 967ca17238 | ||
|   | 595c72147c | ||
|   | f3c3b5a649 | ||
|   | 1cd2c5e653 | ||
|   | b2873dd44b | ||
|   | bb80ab4026 | ||
|   | 32c8e7522f | ||
|   | a5e4f3cc6b | ||
|   | 80cabb338b | ||
|   | 2c69e2c151 | ||
|   | a30777bd9f | ||
|   | e989195a68 | ||
|   | c1dd23f5e0 | ||
|   | f93624a41c | ||
|   | 9f4559a059 | ||
|   | fd05cad303 | ||
|   | d58b06e493 | ||
|   | d7a6127273 | ||
|   | 997d58932e | ||
|   | b4015f877f | ||
|   | 8ee9984e4e | ||
|   | d15fff95b9 | ||
|   | 2f0b549027 | ||
|   | 87dbd7e541 | ||
|   | 96e5da36be | ||
|   | 43745edac0 | ||
|   | 687e3b13ea | ||
|   | 8c6bb383b7 | ||
|   | 18bee21cfc | ||
|   | e5b6121d17 | ||
|   | f5ceee547c | ||
|   | b612bce779 | ||
|   | 2e88e5e9c7 | ||
|   | 9a7aa25c90 | ||
|   | c4420fe932 | ||
|   | a5260f3a95 | ||
|   | bc592c1d13 | ||
|   | 968bd8be67 | ||
|   | 47ccf4b1f5 | ||
|   | a356b21895 | ||
|   | 614a36c888 | ||
|   | d8b8adb88c | ||
|   | f42d820891 | ||
|   | bc21a1fb71 | ||
|   | b7e717ee8c | ||
|   | f520fe36bd | ||
|   | 7273a1c34d | ||
|   | dc45cbce37 | ||
|   | 708d8f75c0 | ||
|   | bd37d90228 | ||
|   | b1ad691464 | ||
|   | f4e7baf31e | ||
|   | c0e60c41f2 | ||
|   | c8dad43e00 | ||
|   | 3bc31374ac | ||
|   | 858e7bae2b | ||
|   | a8f124704d | ||
|   | eed2816491 | ||
|   | a6334b3e35 | ||
|   | 334beebfeb | ||
|   | 13dad848bd | ||
|   | e518f4cef8 | ||
|   | c8fd5da2da | ||
|   | 3a74729ecc | ||
|   | 49c672ac4d | ||
|   | b570cb5b77 | ||
|   | 97bf388471 | ||
|   | 1a32aaea6f | ||
|   | 4635883dec | ||
|   | 8c02d120a2 | ||
|   | 3ba6db4a50 | ||
|   | 2f1de25747 | ||
|   | f60fd42ac0 | ||
|   | ecc8f9c792 | ||
|   | e295dfdcf7 | ||
|   | fc42c25390 | ||
|   | 27d5858e06 | ||
|   | 07e353f4ff | ||
|   | bb33d9e600 | ||
|   | 68eb0bdec9 | ||
|   | 32ee8e462c | ||
|   | e1ef732b60 | ||
|   | 9840b95c21 | ||
|   | a6f8446d81 | ||
|   | c1c844c830 | ||
|   | 389299afd1 | ||
|   | 826543a291 | ||
|   | 4ac83cfded | ||
|   | e79aa54b70 | ||
|   | 9a95652034 | ||
|   | 912c188b53 | ||
|   | e9d0f615ba | ||
|   | 9136573596 | ||
|   | 2487ec94e6 | ||
|   | 811489f157 | ||
|   | b438cc9335 | ||
|   | 1d3d30fa45 | ||
|   | 72b5985398 | ||
|   | 64c363ce53 | ||
|   | cca4347bf9 | ||
|   | 3ae3d4926a | ||
|   | 36025d6d9f | ||
|   | e171362e3e | ||
|   | 3e0bf2ae15 | ||
|   | 07aa9f4b8b | ||
|   | b2d9f3fc64 | ||
|   | 5fb3e9167e | ||
|   | 2db60e0a6b | ||
|   | e710848345 | ||
|   | 99c74b31be | ||
|   | ce5b13824e | ||
|   | c39170c42e | ||
|   | 9e96824161 | ||
|   | fd19fbf300 | ||
|   | 166469827f | ||
|   | a34ed538b6 | ||
|   | 8d6f3c2450 | ||
|   | f863d127e7 | ||
|   | 5f22d3e055 | ||
|   | a831110816 | ||
|   | fdd700f3e5 | ||
|   | adf930f126 | ||
|   | e97bdb53f4 | ||
|   | 05f41928cd | ||
|   | 2ee0829871 | ||
|   | 743560825d | ||
|   | e3d84ac349 | ||
|   | 266c832b30 | ||
|   | f5374a024e | ||
|   | fe1439fbac | ||
|   | 4956d826fb | ||
|   | f5cc2af5d0 | ||
|   | 2bc30e5c22 | ||
|   | 7244c02a0d | ||
|   | 84ca8e1f3e | ||
|   | 5880d4a6ec | ||
|   | ae05dce958 | ||
|   | 9ebe372a9a | ||
|   | 6c229ffa68 | ||
|   | e6e04cc5b3 | ||
|   | 12352510fd | ||
|   | 2b3d927937 | ||
|   | a8890740f5 | ||
|   | f60d7ee54b | ||
|   | 896ca2ef6b | ||
|   | c036f6d529 | ||
|   | 6f457c0c59 | ||
|   | cdc5d983f3 | ||
|   | 13bf1b27b4 | ||
|   | f742bb1c47 | ||
|   | 96688e4dac | ||
|   | 28a945fee9 | ||
|   | c7e777255a | ||
|   | 2dd4cf040e | ||
|   | aa0b9e2db2 | ||
|   | c10076f7ed | ||
|   | bcd92499f2 | ||
|   | b2bb0d4f72 | ||
|   | d1b9eca5eb | ||
|   | 594a67fe28 | ||
|   | cddeaffada | ||
|   | e140481f14 | ||
|   | 6b7b71b1f8 | ||
|   | 186bd11463 | ||
|   | a0490d6687 | ||
|   | beef740ade | ||
|   | 2ac7786a90 | ||
|   | a3fb5e910f | ||
|   | 319afe86b5 | ||
|   | 762ab66b86 | ||
|   | 0c239a42de | ||
|   | 2a8898e7c3 | ||
|   | ce3f3b09b4 | ||
|   | fe4b3df7e9 | ||
|   | 25bdbcf526 | ||
|   | df7eaa5598 | ||
|   | bb7099376b | ||
|   | 0327fd9710 | ||
|   | e645c6e465 | ||
|   | 78a3d36ccc | ||
|   | 3942858ccd | ||
|   | 03c8d716cc | ||
|   | e9322fba26 | ||
|   | 60181c4fcb | ||
|   | c215447405 | ||
|   | 39b6df27b3 | ||
|   | b1ee284e7f | ||
|   | e986332bf2 | ||
|   | 48f9b27381 | ||
|   | 42a6e0dd10 | ||
|   | d4798b02ac | ||
|   | 963edfe8ab | ||
|   | 53237f3ae0 | ||
|   | 64da9281a4 | ||
|   | ab7fd9799d | ||
|   | f6bcc84251 | ||
|   | 35dc3d9df9 | ||
|   | 566714a75d | ||
|   | c92f30b122 | ||
|   | 294ad094c4 | ||
|   | c1a0f520f9 | ||
|   | 89330b89d8 | ||
|   | a8f3718ed0 | ||
|   | a78ba44709 | ||
|   | ff110e3513 | ||
|   | 773c24b7fc | ||
|   | 8f926c7ca9 | ||
|   | cfae6c63b5 | ||
|   | dbfe49c56f | ||
|   | 98e21f9f5b | ||
|   | 83af0497e4 | ||
|   | 6ce37b44db | ||
|   | c562cbc2bb | ||
|   | 9cb1cf756f | ||
|   | 3fbbb0865a | ||
|   | 7d5f612a48 | ||
|   | 4a5a36440b | ||
|   | 43dd5cfea1 | ||
|   | 7b5fec1842 | ||
|   | ffa005e4ab | ||
|   | 5762ded601 | ||
|   | af102e47f1 | ||
|   | 73064a816d | ||
|   | a3abb86daa | ||
|   | 4f5c656b05 | ||
|   | 9b4ae8fcc5 | ||
|   | a31cddbe7b | ||
|   | a1a2c52409 | ||
|   | 9a0b26e0b0 | ||
|   | b805b96e16 | ||
|   | b4ecd93f1c | ||
|   | 590e7f7724 | ||
|   | 1a702b08b9 | ||
|   | 8c52dfb804 | ||
|   | 0acc23e058 | ||
|   | cdd5f9b628 | ||
|   | 4c9f5f4655 | ||
|   | b80ba13cb4 | ||
|   | 4d61e5e319 | ||
|   | 8c8a63ebfb | ||
|   | e5e34797a8 | ||
|   | 8516ebe6f5 | ||
|   | 9f6205f47f | ||
|   | 8b2ec23a89 | ||
|   | 1816ca6b02 | ||
|   | 7394ff9346 | ||
|   | bb5a6a1c28 | ||
|   | b614b06736 | ||
|   | 7a376c9efc | ||
|   | 8260bdc09c | ||
|   | 24f856e02b | ||
|   | 3aa619b928 | ||
|   | 4cb5e98d94 | ||
|   | 272910575e | ||
|   | a15a62f4bc | ||
|   | 53cf11db8c | ||
|   | 518f3d229f | ||
|   | 46c91f923d | ||
|   | 3a2262dfb3 | ||
|   | ff7c38f8e9 | ||
|   | 4229ba364f | ||
|   | ba8e7a211a | ||
|   | 6b41653a32 | ||
|   | 59c1125e72 | ||
|   | b536046720 | ||
|   | 619b805894 | ||
|   | 8662537883 | ||
|   | 717890395b | ||
|   | b7b4164f4f | ||
|   | 7e65296470 | ||
|   | cd5f5d702f | ||
|   | 01052fbe47 | ||
|   | a5e1e075c7 | ||
|   | 6be32ac688 | ||
|   | 44b93e7cc4 | ||
|   | 0eb79e5acd | ||
|   | b362c0ef38 | ||
|   | bba9969e31 | ||
|   | 007ba24809 | ||
|   | df21539311 | ||
|   | 2592cb6019 | ||
|   | f7df17a7ed | ||
|   | 62f42b72f8 | ||
|   | a1ba4fda6f | ||
|   | 1c06b04c45 | ||
|   | eceba26894 | ||
|   | 0bf404f75e | ||
|   | cd8dd65a65 | ||
|   | 50c56f8b50 | ||
|   | 2ee22fd374 | ||
|   | 4c230d9e61 | ||
|   | 727294fbbe | ||
|   | 478c43969b | ||
|   | 79b5303350 | ||
|   | ce4b742b25 | ||
|   | a9dc15bda5 | ||
|   | ba6387ff5c | ||
|   | 8fa98508b7 | ||
|   | decdbaecf9 | ||
|   | 6d87cf9be0 | ||
|   | 94f434c4a6 | ||
|   | 7ba867c30b | ||
|   | 3424395e10 | ||
|   | 926c7359a2 | ||
|   | ec0af99a2e | ||
|   | b4d948886c | ||
|   | 4d8d79372a | ||
|   | 04a589722c | ||
|   | d4a10e2873 | ||
|   | 4998ad6c7e | ||
|   | a07ca5ff50 | ||
|   | f07e7571ab | ||
|   | 834c16485c | ||
|   | 04a4265ef3 | ||
|   | 0ec473195d | ||
|   | 9e9f8ca8f3 | ||
|   | 0bf09256b0 | ||
|   | f63af0601c | ||
|   | db8fd2c913 | ||
|   | 189c671ce2 | ||
|   | dbe6e5b3d7 | ||
|   | cc81cd446b | ||
|   | 439c7118f1 | ||
|   | d8154a5815 | ||
|   | 4e3787bc0d | ||
|   | 02e0955924 | ||
|   | bb39a01361 | ||
|   | 3c6a170138 | ||
|   | a78950e822 | ||
|   | 764999704a | ||
|   | 1ce1a94a35 | ||
|   | 977b6d9f67 | ||
|   | b5e6dbd797 | ||
|   | 833e6688f1 | ||
|   | bc22c9f84f | ||
|   | 2149a7d116 | ||
|   | 29175d2c17 | ||
|   | 803454d5c8 | ||
|   | 36cf32dc42 | ||
|   | ecfa4aafc1 | ||
|   | a1e33c4d2f | ||
|   | 7f8ba74dac | ||
|   | 657f4ab303 | ||
|   | e3df62d812 | ||
|   | 1913125881 | ||
|   | e8e58f3fed | ||
|   | 1ca9ec384b | ||
|   | 9522255e3a | ||
|   | 2a22fa694e | ||
|   | 1591f5a0ca | ||
|   | c0c38022ea | ||
|   | 3bc4e9a724 | ||
|   | f7a6bb0723 | ||
|   | e9c17a3ef7 | ||
|   | 29bb5840b5 | ||
|   | c9d8d860f6 | ||
|   | cc18096882 | ||
|   | 15f2a664d1 | ||
|   | 93b66d26ff | ||
|   | 70b4f62ddc | ||
|   | e1023fdfaf | ||
|   | 5e9648387a | ||
|   | 2ba8b4df67 | ||
|   | 3a084c5d7b | ||
|   | f7200e39c3 | ||
|   | ea6552615d | ||
|   | 4bf3287fce | ||
|   | 832c2034c2 | ||
|   | b0aa26e1f1 | ||
|   | e52baeb967 | ||
|   | 8268eb9a83 | ||
|   | a7dfc20967 | ||
|   | 6eb7c0b5d6 | ||
|   | 0b3c078aeb | ||
|   | 3cc458abd9 | ||
|   | 750872cc37 | ||
|   | 337b4c4268 | ||
|   | 001f8657f6 | ||
|   | ea884e7fa1 | ||
|   | 29895ff474 | ||
|   | 9be2844c82 | ||
|   | 44adccc147 | ||
|   | 2a7e2c70b5 | ||
|   | 8d431b6762 | ||
|   | 273849c0c8 | ||
|   | 5cc14405c7 | ||
|   | 1b1394cf5d | ||
|   | 1eef930dbb | ||
|   | f0cfd60e62 | ||
|   | 875c687e3f | ||
|   | 1e175e74ed | ||
|   | d6547f0701 | ||
|   | 75a46c365e | ||
|   | 8e7b8825f5 | ||
|   | 2ecbca303b | ||
|   | 3b68905037 | ||
|   | eae611c54d | ||
|   | b37bad35c2 | ||
|   | 8195a4d616 | ||
|   | 7ba40f925f | ||
|   | 345cd1795f | ||
|   | 5fab15fee5 | ||
|   | 10c8ea17aa | ||
|   | 7058c8ff5a | ||
|   | 64e85da59f | ||
|   | f79fad64aa | ||
|   | cb70eebb08 | ||
|   | 959aaee045 | ||
|   | edaf8787d1 | ||
|   | 53477f0f59 | ||
|   | 5716218f41 | ||
|   | 9df6b9d5c0 | ||
|   | 24164c8580 | ||
|   | 9fca7011aa | ||
|   | a0be47ab8b | ||
|   | ec46031d36 | ||
|   | 55b84d166a | ||
|   | 34ae8bacec | ||
|   | cb4e5ca0f7 | ||
|   | 0ba45468c4 | ||
|   | 710502784e | ||
|   | b13eb3fd40 | ||
|   | b7986a351c | ||
|   | ce87591c62 | ||
|   | 0275a8558d | ||
|   | 58acc75cf6 | ||
|   | 874ababb9f | ||
|   | 3771e6b0cd | ||
|   | 33eaefa966 | ||
|   | cd7e236d57 | ||
|   | 54c0b7c7d5 | ||
|   | a2177daec2 | ||
|   | 628386b453 | ||
|   | b222bfb3e0 | ||
|   | ab199d883d | ||
|   | 356065d1ee | ||
|   | 76e7c5623d | ||
|   | 085fba050a | ||
|   | 295334d3ac | ||
|   | 36124ddca4 | ||
|   | bd6585765e | ||
|   | c325deb4ed | ||
|   | 73bb0b10ee | ||
|   | 72820b162c | ||
|   | 89e5b8d057 | ||
|   | da4f53ebbb | ||
|   | 8458553b74 | ||
|   | 55ecc41d06 | ||
|   | 28fcdf2cbb | ||
|   | 24087679a8 | ||
|   | 5ac6a8cb4a | ||
|   | 668d85d14e | ||
|   | c11a3dc95c | ||
|   | 56f57c20a2 | ||
|   | 240d14779a | ||
|   | 25c289ad3e | ||
|   | 8c5f11b7dd | ||
|   | 7f7dda9ec2 | ||
|   | 9c1005ff0c | ||
|   | 5b36b4472c | ||
|   | 3550d1e61c | ||
|   | 6513ad249c | ||
|   | 50297b1880 | ||
|   | f189b78b9e | ||
|   | 5c0250f495 | ||
|   | 2093f726e9 | ||
|   | 10efe3859d | ||
|   | 6933bcf7bb | ||
|   | 2ea046cd80 | ||
|   | a3fcc64aaa | ||
|   | f4097a372b | ||
|   | f3078bc903 | ||
|   | 6072744f7e | ||
|   | 40b6de599c | ||
|   | 87ea2a2bef | ||
|   | cc14a1c361 | ||
|   | bcdface60d | ||
|   | 4dc9419d2e | ||
|   | d2bcac813e | ||
|   | 080c37a7f6 | ||
|   | a87ad35a50 | ||
|   | cf56d7e4ed | ||
|   | e33a5eb307 | ||
|   | c1c6f55f8f | ||
|   | e5b704eb32 | ||
|   | f9a3838db6 | ||
|   | 1e61db104b | ||
|   | 30a9c7718d | ||
|   | 34b052b5d3 | ||
|   | aaa12853ad | ||
|   | b0ab55b0bf | ||
|   | d2f8496f4e | ||
|   | 56457bd325 | ||
|   | bdbb3c6657 | ||
|   | 4c7e081e15 | ||
|   | c4d7001489 | ||
|   | c07bac9a63 | ||
|   | d27d04783f | ||
|   | 58de5a7ec7 | ||
|   | 1a69b16d36 | ||
|   | b5e8673e62 | ||
|   | 264c6a50b6 | ||
|   | 493642eb38 | ||
|   | 504a9b4746 | ||
|   | cccb5a3e08 | ||
|   | d75fa62cab | ||
|   | 3d43c3c5bc | ||
|   | 28d42b9164 | ||
|   | 42f29062ca | ||
|   | b570b363d9 | ||
|   | 09392be069 | ||
|   | 5529dab84e | ||
|   | b9968aa1e6 | ||
|   | 60ca704a9e | ||
|   | c0d77808f6 | ||
|   | 9679492c28 | ||
|   | f3b68e6543 | ||
|   | 0dcfaaf5ff | ||
|   | ba513dcb9a | ||
|   | ebabc60477 | ||
|   | cf565d0145 | ||
|   | 52a23e7904 | ||
|   | 9e22b80714 | ||
|   | 7eed9c4a6d | ||
|   | bf42fce17e | ||
|   | 9d421226a7 | ||
|   | c4377ed6c2 | ||
|   | 7c4d5cee95 | ||
|   | 7d283ed65f | ||
|   | bf1f941e50 | ||
|   | 789fef34ba | ||
|   | 1daf5a611c | ||
|   | 6aed1db67e | ||
|   | 7b9be8369e | ||
|   | 7cf4b819ae | ||
|   | 9e1aea33c3 | ||
|   | 8767a88854 | ||
|   | 47c0084641 | ||
|   | 54e6a790cf | ||
|   | 2a86bc8695 | ||
|   | 04538372c6 | ||
|   | cf68854770 | ||
|   | 711392c73b | ||
|   | 9573c32481 | ||
|   | a15f80f79d | ||
|   | 23e7475f06 | ||
|   | 1eb571b787 | ||
|   | dd3b716d85 | ||
|   | 28649c07e3 | ||
|   | 961e02be0d | ||
|   | 9430ed66cd | ||
|   | 96f8efc27a | ||
|   | a161491bfd | ||
|   | a90e8b6112 | ||
|   | 561c1fb798 | ||
|   | e0b4d1c1e4 | ||
|   | fd4aaab137 | ||
|   | 42d14d5ca2 | ||
|   | 806fec7017 | ||
|   | b3da28eade | ||
|   | 166f6412c2 | ||
|   | 1e877808bc | ||
|   | 1777d9f751 | ||
|   | 309b99eac0 | ||
|   | a5aa1b3917 | ||
|   | aced0632ec | ||
|   | 4e801788d7 | ||
|   | 0b4baad78b | ||
|   | d3ff482c9b | ||
|   | c9286624d4 | ||
|   | f682368eeb | ||
|   | 4a5d033efb | ||
|   | 343161b195 | ||
|   | 201e32d4c4 | ||
|   | 0980cb6eb5 | ||
|   | f75d23363b | ||
|   | bc576a9659 | ||
|   | 19e407fcc4 | ||
|   | bc7327d004 | ||
|   | 666fa1c797 | ||
|   | 0eda4a7821 | ||
|   | 6c0ba66f17 | ||
|   | 862058fd2b | ||
|   | f32ce7392e | ||
|   | 193d160bed | ||
|   | 8bf382adad | ||
|   | 541ba357bb | ||
|   | 69e5bcd57d | ||
|   | efeddda328 | ||
|   | b6578b52e3 | ||
|   | fb01c43ece | ||
|   | b9a012c6e3 | ||
|   | 17684ed8a8 | ||
|   | 1b6b3b2cd5 | ||
|   | acd8567586 | ||
|   | e780c76c93 | ||
|   | 532c6caddf | ||
|   | ef8d9be633 | ||
|   | 2cdbcc5666 | ||
|   | c282a8f328 | ||
|   | b9eab39541 | ||
|   | 20903784a4 | ||
|   | 3ec9ff7467 | ||
|   | 1ddd746862 | ||
|   | ff6938280e | ||
|   | 1e4425b30f | ||
|   | b5d1d8cdad | ||
|   | 029be5ccca | ||
|   | 29c2d785b5 | ||
|   | abda8cfa32 | ||
|   | 44e7d79d4c | ||
|   | 9a1dc8ee0e | ||
|   | 27879c3f01 | ||
|   | 29096eb5d7 | ||
|   | 17d3a87b1f | ||
|   | a573baea03 | ||
|   | 14c5c60863 | ||
|   | 48ace3de57 | ||
|   | 5af07c4531 | ||
|   | 70a80090c4 | ||
|   | 44e36feb09 | ||
|   | 3395c84560 | ||
|   | b6cb5d09cb | ||
|   | 2a7d996881 | ||
|   | 94c2fc80d2 | ||
|   | 69cfde4516 | ||
|   | bdc83da098 | ||
|   | f872a122a9 | ||
|   | 738f943a68 | ||
|   | 47e62a5681 | ||
|   | 1ecbfd7590 | ||
|   | 67c139a04b | ||
|   | 31cc008249 | ||
|   | 9cb026439d | ||
|   | e6f10176c6 | ||
|   | 0917c79470 | ||
|   | 597baa986d | ||
|   | 75cc4b4843 | ||
|   | aac088d496 | ||
|   | a822e5bbc5 | ||
|   | c527249c21 | ||
|   | 9ef798f534 | ||
|   | e69b99f089 | ||
|   | 55b8079e86 | ||
|   | aa92e4cbd0 | ||
|   | e272dbe9af | ||
|   | 962f8354ac | ||
|   | 20e4a960f7 | ||
|   | e603877a17 | ||
|   | bb96477779 | ||
|   | 543ee79720 | ||
|   | 371db886b4 | ||
|   | ea8cd98361 | ||
|   | 3904ca38c0 | ||
|   | 58849f28a8 | ||
|   | 16527ceaf6 | ||
|   | d66c284bed | ||
|   | 693848280b | ||
|   | 396afaa181 | ||
|   | 05ed29133b | ||
|   | a31c1e8084 | ||
|   | 21891230f2 | ||
|   | 47da76c5a5 | ||
|   | 6017ff2318 | ||
|   | e16d604d0d | ||
|   | feec3e8255 | ||
|   | 82249cb50a | ||
|   | d3d5703f3f | ||
|   | fad417e553 | ||
|   | 5ba692f50c | ||
|   | 62fe92d922 | ||
|   | 512e7be74f | ||
|   | f799db67eb | ||
|   | 3e106a9dc5 | ||
|   | 727abbea8f | ||
|   | 76f81ece62 | ||
|   | 495654f9ff | ||
|   | a0de3fc643 | ||
|   | 95fec2100e | ||
|   | 623a879797 | ||
|   | 4c96d23f48 | ||
|   | 9bc8f6e9d7 | ||
|   | e00e6509ee | ||
|   | be5739508b | ||
|   | 38c867ea94 | ||
|   | 2a985ce6c0 | ||
|   | e4f3fb36f3 | ||
|   | b2f8792873 | ||
|   | 2065133e2d | ||
|   | 86da87f254 | ||
|   | 102a7f8723 | ||
|   | e9afc15719 | ||
|   | 08527dde9b | ||
|   | d9c3a3c9a9 | ||
|   | fe89f9e55e | ||
|   | 73802aabac | ||
|   | bc66733289 | ||
|   | f4c93b2251 | ||
|   | c079c598f2 | ||
|   | 8a2f0063d4 | ||
|   | dfe4b33f2f | ||
|   | 2f7cfa7ab2 | ||
|   | bdcb813ee6 | ||
|   | f0751007f3 | ||
|   | 6ad993704c | ||
|   | 796c3009c7 | ||
|   | 144ff5e716 | ||
|   | 054a1e5ea4 | ||
|   | a223f6056e | ||
|   | a1fd7704e0 | ||
|   | b94227efc9 | ||
|   | 3a7e782c07 | ||
|   | 8f6b33d790 | ||
|   | f476daa041 | ||
|   | acfde9458d | ||
|   | 82e969627a | ||
|   | 9de3c582c0 | ||
|   | 45cff2b51b | ||
|   | 670397a73e | ||
|   | 272eb37e9a | ||
|   | ca79e58ab9 | ||
|   | 977c049875 | ||
|   | aefbc1c9bf | ||
|   | c37a2e61ed | ||
|   | 7f6cd5e469 | ||
|   | f6d1f1985c | ||
|   | 222c31b306 | ||
|   | e99185f011 | ||
|   | 5c662f1230 | ||
|   | a65c7ee2fc | ||
|   | 743c4f554d | ||
|   | 838b2757eb | ||
|   | a92c9fc226 | ||
|   | ed052e0b0b | ||
|   | 7bb8b9039c | ||
|   | 3800b4b45c | ||
|   | cd498711bc | ||
|   | 40766b3375 | ||
|   | d274e45587 | ||
|   | 0a0eb3f710 | ||
|   | 81d054a525 | ||
|   | dc9670c439 | ||
|   | 2e185f4ec9 | ||
|   | 67f347f880 | ||
|   | 03c8079858 | ||
|   | 0cfc527328 | ||
|   | 81542fc6a8 | ||
|   | 5aced279d6 | ||
|   | 3f016f785f | ||
|   | a6427d081e | ||
|   | 8c7fbe20f9 | ||
|   | f66a820e14 | ||
|   | 469aba8ed0 | ||
|   | 6e8e4ad5da | ||
|   | 2f33d654e4 | ||
|   | 760b6385f1 | ||
|   | 91527500f9 | ||
|   | e87d989ca3 | ||
|   | 64d61bae08 | ||
|   | 9862265465 | ||
|   | 624b7616d0 | ||
|   | d53f33bed8 | ||
|   | 02e039d792 | ||
|   | 9f9333315e | ||
|   | 0d10b812fe | ||
|   | 2e6bea23ac | ||
|   | b4fe4f3d10 | ||
|   | ba93fcbda0 | ||
|   | 88d19a4ca4 | ||
|   | ca75dd0728 | ||
|   | af7b9ea898 | ||
|   | e103676b65 | ||
|   | 09cd0468cf | ||
|   | 529aa754f5 | ||
|   | 17e395c2a8 | ||
|   | d50c1f39ab | ||
|   | ef6b25b3bb | ||
|   | 3c7e865555 | ||
|   | 7877ac0c3b | ||
|   | 1442e29d0e | ||
|   | 9a7e9b736e | ||
|   | c421e45fa0 | ||
|   | 8833d21ac3 | ||
|   | 1a3c522c94 | ||
|   | c55aa92d4f | ||
|   | 212a303347 | ||
|   | 3f3568d8af | ||
|   | 1e3bcfc8cd | ||
|   | a4ce9f6f05 | ||
|   | 65dc99744e | ||
|   | c6d4740b0c | ||
|   | 9f91c8b59d | ||
|   | 2b3b087c29 | ||
|   | e08d46aa76 | ||
|   | 9f35fa0fa3 | ||
|   | ff48996bbe | ||
|   | feccc97a14 | ||
|   | 77eec3d21d | ||
|   | ecaafd1b70 | ||
|   | 0d51997e46 | ||
|   | 463cbceb07 | ||
|   | 2fe4d97061 | ||
|   | eb38393cad | ||
|   | 1437c5c63f | ||
|   | 52f1d50902 | ||
|   | a839cb787e | ||
|   | f621fb2060 | ||
|   | 2ccd8b8838 | ||
|   | 7ef0746c52 | ||
|   | 6f609f0dd7 | ||
|   | ee2a30470a | ||
|   | e11fb2c09e | ||
|   | c6e9270590 | ||
|   | 3e2e171407 | ||
|   | e205969b11 | ||
|   | 332f531a10 | ||
|   | 6bf19ecc34 | ||
|   | bae2c9bc63 | ||
|   | 5ac68f8df8 | ||
|   | 6ff45a754d | ||
|   | 06d3b94804 | ||
|   | 32d2df0f08 | ||
|   | e7c314fefc | ||
|   | faab79b41a | ||
|   | 14204c9bfc | ||
|   | 45dbd4464b | ||
|   | 472255924a | ||
|   | 6d3ac2aa55 | ||
|   | 9ad03994d1 | ||
|   | 35228f80b8 | ||
|   | 69ded881c6 | ||
|   | d9bce45db4 | ||
|   | 5e92b4faa9 | ||
|   | db501822ef | ||
|   | f269695d4a | ||
|   | 443af5f760 | ||
|   | 0e35350160 | ||
|   | 10bf497cda | ||
|   | 76eb629fc2 | ||
|   | 91de738563 | ||
|   | ef9948a967 | ||
|   | 0cf13f6393 | ||
|   | 4a8acfd123 | ||
|   | abaffc1908 | ||
|   | ea61d5c1a5 | ||
|   | 298f09402f | ||
|   | d4149d4b7a | ||
|   | 9a14931175 | ||
|   | 165eee102a | ||
|   | 6900c197cd | ||
|   | fe3c66a7c8 | ||
|   | 1d728475e3 | ||
|   | 827057b9f1 | ||
|   | 1716452203 | ||
|   | 54827cacb9 | ||
|   | e3a4a16507 | ||
|   | 3315228a90 | ||
|   | f72205c401 | ||
|   | 11862bbaee | ||
|   | ef1d1303f4 | ||
|   | 8d846993ee | ||
|   | 1f84626278 | ||
|   | b4cfe6e9c0 | ||
|   | 94a861e318 | ||
|   | 1421e775d2 | ||
|   | f8eab72c7a | ||
|   | 2afd2f0d3b | ||
|   | 2b72f40cec | ||
|   | ff5c0d6361 | ||
|   | edd4b477f8 | ||
|   | 198b14e5fc | ||
|   | f9fea265cf | ||
|   | 668601ca23 | ||
|   | 04fcb33d7e | ||
|   | 99406f2099 | ||
|   | 632b3cb9ae | ||
|   | f31d2486c9 | ||
|   | 7dea682713 | ||
|   | 7955ddceb2 | ||
|   | 0bf04c04f9 | ||
|   | dc29018ec0 | ||
|   | b6412afe96 | ||
|   | 4e88186903 | ||
|   | f387378b69 | ||
|   | f894e6b4ea | ||
|   | e33f5996f3 | ||
|   | 8f7f1ff7dd | ||
|   | 54a0e52e05 | ||
|   | b2431b982f | ||
|   | 8d6d619eed | ||
|   | 70e332b9e8 | ||
|   | 0a53c42a8a | ||
|   | 42a66ad49e | ||
|   | 2d1d70b3b6 | ||
|   | 0ccc92dc1e | ||
|   | c9157cc13b | ||
|   | 2b1270381d | ||
|   | cdb8ee3946 | ||
|   | 1e3586621b | ||
|   | c07e9ac29d | ||
|   | 6e3bb48574 | ||
|   | a180395832 | ||
|   | 3dfcc6b0be | ||
|   | 16d7ae62bd | ||
|   | eea3cb32a5 | ||
|   | 670fe8590c | ||
|   | 30c048723c | ||
|   | 85dc669ddf | ||
|   | 397c1a1c2b | ||
|   | f1d3e35aac | ||
|   | 0e69201f05 | ||
|   | f8fdaf5c1f | ||
|   | 1f3b81338c | ||
|   | 5921d3a42a | ||
|   | dbbc85719e | ||
|   | 0ddb6c3f10 | ||
|   | f760a9d0c2 | ||
|   | e13281726c | ||
|   | 0ddf4355a1 | ||
|   | 7c8a3ca1a8 | ||
|   | 3068738a70 | ||
|   | cfa0d8b7c0 | ||
|   | 7ac41652f7 | ||
|   | 24a510bc2e | ||
|   | 0498540439 | ||
|   | da94c2e1e5 | ||
|   | bcdd74514f | ||
|   | 1d0c36a0ab | ||
|   | be1dcb7264 | ||
|   | a34ea8f131 | ||
|   | 7fbfa6a52b | ||
|   | 799ef3380d | ||
|   | d5087858ca | ||
|   | d9fc5650b8 | ||
|   | 9ea028f5ab | ||
|   | aa309087fd | ||
|   | 57bdd9d3bf | ||
|   | dc9871fe5b | ||
|   | 3255ca3ea4 | ||
|   | a06ef6fe25 | ||
|   | 696d256fa0 | ||
|   | 70e8ad7104 | ||
|   | f785dcac3d | ||
|   | aa54ef10ae | ||
|   | 14946da163 | ||
|   | 5f9bcfbefe | ||
|   | aa2eed2c38 | ||
|   | 6bff6e9cff | ||
|   | 023d369b74 | ||
|   | c9d4241afe | ||
|   | e1279c29c2 | ||
|   | 2d6fb1c45e | ||
|   | cd9643fb15 | ||
|   | f64f95d8ff | ||
|   | 88c25a9390 | ||
|   | e4ace49536 | ||
|   | 3a0df56605 | ||
|   | 98cdee7f03 | ||
|   | f140f5f14b | ||
|   | 88a97319cc | ||
|   | c69db035ee | ||
|   | 60a7eaf2bb | ||
|   | 3f43567c8f | ||
|   | 0f12a9de3b | ||
|   | 937b9009e0 | ||
|   | 66b6098d32 | ||
|   | 348bc1d0fc | ||
|   | b56a757f2e | ||
|   | f7c0499158 | ||
|   | 9ebcefee00 | ||
|   | 957e319649 | ||
|   | a8978a0d4d | ||
|   | 10712c5ec0 | ||
|   | 83c39f57f0 | ||
|   | 173757cfa2 | ||
|   | c6be73dba2 | ||
|   | ccf293906a | ||
|   | 0f4c0b95e2 | ||
|   | 82973e7608 | ||
|   | c011bccc45 | ||
|   | 8473caf5a6 | ||
|   | 85b038525b | ||
|   | 51a5c3c664 | ||
|   | d6cda9df0a | ||
|   | ca7d09d1cb | ||
|   | 4ab478c49c | ||
|   | 1a1c1fd0da | ||
|   | 370951ab67 | ||
|   | a0632a572a | ||
|   | 10601e7760 | ||
|   | 088ce9c2ad | ||
|   | e1a69b97db | ||
|   | a2fd45bb95 | ||
|   | 01ddd8eaa8 | ||
|   | 22fa57b82c | ||
|   | 92a51ca546 | ||
|   | 6a9234e634 | ||
|   | e8d062a95a | ||
|   | 3394d64f6c | ||
|   | 0fd5a277ed | ||
|   | 8eef2818fa | ||
|   | a15703d5af | ||
|   | 34d8165edd | ||
|   | 1759add2b6 | ||
|   | dd80f1b997 | ||
|   | 90ff602ecd | ||
|   | 0099ff1321 | 
							
								
								
									
										18
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| # Set the default behavior, in case people don't have core.autocrlf set. | ||||
| * text eol=lf | ||||
|  | ||||
| # Explicitly declare text files you want to always be normalized and converted | ||||
| # to native line endings on checkout. | ||||
| # *.c text | ||||
| # *.h text | ||||
|  | ||||
| # Declare files that will always have CRLF line endings on checkout. | ||||
| *.cmd text eol=crlf | ||||
| *.bat text eol=crlf | ||||
|  | ||||
| # Denote all files that are truly binary and should not be modified. | ||||
| chromeos/** binary | ||||
| *.jar binary | ||||
| *.exe binary | ||||
| *.apk binary | ||||
| *.png binary | ||||
							
								
								
									
										18
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,8 +1,18 @@ | ||||
| out | ||||
| *.zip | ||||
| *.jks | ||||
| *.apk | ||||
| config.prop | ||||
| update.sh | ||||
|  | ||||
| # Built binaries | ||||
| native/out | ||||
|  | ||||
| # Android Studio / Gradle | ||||
| *.iml | ||||
| .gradle | ||||
| /local.properties | ||||
| .idea/ | ||||
| /.idea | ||||
| /build | ||||
| app/app-release.apk | ||||
| *.hprof | ||||
| app/.externalNativeBuild/ | ||||
| /captures | ||||
| .externalNativeBuild | ||||
|   | ||||
							
								
								
									
										21
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| [submodule "selinux"] | ||||
| 	path = native/jni/external/selinux | ||||
| 	url = https://github.com/topjohnwu/selinux.git | ||||
| [submodule "busybox"] | ||||
| 	path = native/jni/external/busybox | ||||
| 	url = https://github.com/topjohnwu/ndk-busybox.git | ||||
| [submodule "dtc"] | ||||
| 	path = native/jni/external/dtc | ||||
| 	url = https://github.com/dgibson/dtc | ||||
| [submodule "lz4"] | ||||
| 	path = native/jni/external/lz4 | ||||
| 	url = https://github.com/lz4/lz4.git | ||||
| [submodule "bzip2"] | ||||
| 	path = native/jni/external/bzip2 | ||||
| 	url = https://github.com/nemequ/bzip2.git | ||||
| [submodule "xz"] | ||||
| 	path = native/jni/external/xz | ||||
| 	url = https://github.com/xz-mirror/xz.git | ||||
| [submodule "nanopb"] | ||||
| 	path = native/jni/external/nanopb | ||||
| 	url = https://github.com/nanopb/nanopb.git | ||||
							
								
								
									
										41
									
								
								README.MD
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								README.MD
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | ||||
| # Magisk | ||||
| [Downloads](https://github.com/topjohnwu/Magisk/releases) | [Documentation](https://topjohnwu.github.io/Magisk/) | [XDA Thread](https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445) | ||||
|  | ||||
| ## Introduction | ||||
| Magisk is a suite of open source tools for customizing Android, supporting devices higher than Android 5.0 (API 21). It covers the fundamental parts for Android customization: root, boot scripts, SELinux patches, AVB2.0 / dm-verity / forceencrypt removals etc. | ||||
|  | ||||
| Furthermore, Magisk provides a **Systemless Interface** to alter the system (or vendor) arbitrarily while the actual partitions stay completely intact. With its systemless nature along with several other hacks, Magisk can hide modifications from nearly any system integrity verifications used in banking apps, corporation monitoring apps, game cheat detections, and most importantly [Google's SafetyNet API](https://developer.android.com/training/safetynet/index.html). | ||||
|  | ||||
| ## Bug Reports | ||||
| **Make sure to install the latest [Canary Build](https://forum.xda-developers.com/apps/magisk/dev-magisk-canary-channel-bleeding-edge-t3839337) before reporting any bugs!** **DO NOT** report bugs that is already fixed upstream. Follow the instructions in the [Canary Channel XDA Thread](https://forum.xda-developers.com/apps/magisk/dev-magisk-canary-channel-bleeding-edge-t3839337), and report a bug either by opening an issue on GitHub or directly in the thread. | ||||
|  | ||||
| ## Building Environment Requirements | ||||
| 1. Python 3.5+: run `build.py` script | ||||
| 2. Java Development Kit (JDK) 8: Compile Magisk Manager and sign zips | ||||
| 3. Latest Android SDK: set `ANDROID_HOME` environment variable to the path to Android SDK | ||||
| 4. Android NDK: Install NDK along with SDK (`$ANDROID_HOME/ndk-bundle`), or optionally specify a custom path `ANDROID_NDK_HOME` | ||||
| 5. (Windows Only) Python package Colorama: Install with `pip install colorama`, used for ANSI color codes | ||||
|  | ||||
| ## Building Notes and Instructions | ||||
| 1. Clone sources with submodules: `git clone --recurse-submodules https://github.com/topjohnwu/Magisk.git` | ||||
| 2. Building is supported on macOS, Linux, and Windows. Official releases are built and tested with [FrankeNDK](https://github.com/topjohnwu/FrankeNDK); point `ANDROID_NDK_HOME` to FrankeNDK if you want to use it for compiling. | ||||
| 3. Set configurations in `config.prop`. A sample file `config.prop.sample` is provided as an example. | ||||
| 4. Run `build.py` with argument `-h` to see the built-in help message. The `-h` option also works for each supported actions, e.g. `./build.py binary -h` | ||||
| 5. By default, `build.py` build binaries and Magisk Manager in debug mode. If you want to build Magisk Manager in release mode (via the `-r, --release` flag), you need a Java Keystore file `release-key.jks` (only `JKS` format is supported) to sign APKs and zips. For more information, check out [Google's Official Documentation](https://developer.android.com/studio/publish/app-signing.html#signing-manually). | ||||
|  | ||||
| ## License | ||||
|  | ||||
| ``` | ||||
| Magisk, including all git submodules are free software: | ||||
| you can redistribute it and/or modify it under the terms of the | ||||
| GNU General Public License as published by the Free Software Foundation, | ||||
| either version 3 of the License, or (at your option) any later version. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| GNU General Public License for more details. | ||||
|  | ||||
| You should have received a copy of the GNU General Public License | ||||
| along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| ``` | ||||
| @@ -1,4 +0,0 @@ | ||||
| # Magisk Manager | ||||
| I used Java 8 features in the app, and official supported is added in Android Studio 2.4   | ||||
| Aware that Android Studio 2.4 is currently in the Preview Channel   | ||||
| You need to install CMake and NDK to build the zipadjust library for zip preprocessing | ||||
							
								
								
									
										11
									
								
								app/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								app/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1 +1,12 @@ | ||||
| *.iml | ||||
| .gradle | ||||
| /local.properties | ||||
| .idea/ | ||||
| /build | ||||
| app/release | ||||
| *.hprof | ||||
| .externalNativeBuild/ | ||||
| src/full/res/raw/util_functions.sh | ||||
| public.certificate.x509.pem | ||||
| private.key.pk8 | ||||
| *.apk | ||||
|   | ||||
							
								
								
									
										7
									
								
								app/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| # Magisk Manager | ||||
| This repo is no longer an independent component. It is merged into the [Magisk Project](https://github.com/topjohnwu/Magisk). | ||||
|  | ||||
| # Translations | ||||
| The default (English) strings are mainly in `src/full/res/values/strings.xml`; some are scattered in `src/main/res/values/strings.xml` and `src/stub/res/values/strings.xml`.   | ||||
| Translations are highly appreciated via pull requests here on Github.   | ||||
| Place translated XMLs in the corresponding locale folder. | ||||
							
								
								
									
										102
									
								
								app/build.gradle
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								app/build.gradle
									
									
									
									
									
								
							| @@ -1,68 +1,92 @@ | ||||
| apply plugin: 'com.android.application' | ||||
| apply plugin: 'me.tatarka.retrolambda' | ||||
|  | ||||
| def configProps = new Properties() | ||||
| def configPath = project.hasProperty('configPath') ? project.configPath : rootProject.file('config.prop') | ||||
| configProps.load(new FileInputStream(configPath)) | ||||
|  | ||||
| android { | ||||
|     compileSdkVersion 25 | ||||
|     buildToolsVersion "25.0.3" | ||||
|     compileSdkVersion rootProject.ext.compileSdkVersion | ||||
|     buildToolsVersion rootProject.ext.buildToolsVersion | ||||
|  | ||||
|     defaultConfig { | ||||
|         applicationId "com.topjohnwu.magisk" | ||||
|         minSdkVersion 21 | ||||
|         targetSdkVersion 25 | ||||
|         versionCode 31 | ||||
|         versionName "4.3.3" | ||||
|         ndk { | ||||
|             moduleName 'zipadjust' | ||||
|             abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' | ||||
|         targetSdkVersion rootProject.ext.compileSdkVersion | ||||
|     } | ||||
|  | ||||
|     signingConfigs { | ||||
|         config { | ||||
|             storeFile rootProject.file('release-key.jks') | ||||
|             storePassword configProps['keyStorePass'] | ||||
|             keyAlias configProps['keyAlias'] | ||||
|             keyPassword configProps['keyPass'] | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     buildTypes { | ||||
|         debug { | ||||
|             // If keystore exists, sign the APK with custom signature | ||||
|             if (signingConfigs.config.storeFile.exists()) | ||||
|                 signingConfig signingConfigs.config | ||||
|         } | ||||
|         release { | ||||
|             minifyEnabled true | ||||
|             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||||
|             shrinkResources true | ||||
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||
|             signingConfig signingConfigs.config | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     flavorDimensions "mode" | ||||
|  | ||||
|     productFlavors { | ||||
|         full { | ||||
|             versionName configProps['appVersion'] | ||||
|             versionCode configProps['appVersionCode'] as Integer | ||||
|             javaCompileOptions { | ||||
|                 annotationProcessorOptions { | ||||
|                     argument('butterknife.debuggable', 'false') | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         stub { | ||||
|             versionCode 1 | ||||
|             versionName "stub" | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     compileOptions { | ||||
|         sourceCompatibility JavaVersion.VERSION_1_8 | ||||
|         targetCompatibility JavaVersion.VERSION_1_8 | ||||
|     } | ||||
|     dexOptions { | ||||
|         preDexLibraries = true | ||||
|     } | ||||
|     externalNativeBuild { | ||||
|         cmake { | ||||
|             path 'src/main/jni/CMakeLists.txt' | ||||
|         } | ||||
|         preDexLibraries true | ||||
|         javaMaxHeapSize "2g" | ||||
|     } | ||||
|     lintOptions { | ||||
|         disable 'MissingTranslation' | ||||
|     } | ||||
|     retrolambda { | ||||
|         javaVersion JavaVersion.VERSION_1_7 | ||||
|         defaultMethods false | ||||
|         incremental true | ||||
|     } | ||||
| } | ||||
| repositories { | ||||
|     jcenter() | ||||
|     maven { url "https://jitpack.io" } | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
|     compile fileTree(include: ['*.jar'], dir: 'libs') | ||||
|     implementation fileTree(include: ['*.jar'], dir: 'libs') | ||||
|     implementation 'androidx.core:core:1.0.1' | ||||
|     fullImplementation project(':utils') | ||||
|     fullImplementation 'com.amitshekhar.android:android-networking:1.0.2' | ||||
|     fullImplementation 'androidx.appcompat:appcompat:1.0.2' | ||||
|     fullImplementation "androidx.preference:preference:${rootProject.ext.androidXVersion}" | ||||
|     fullImplementation "androidx.recyclerview:recyclerview:${rootProject.ext.androidXVersion}" | ||||
|     fullImplementation "androidx.cardview:cardview:${rootProject.ext.androidXVersion}" | ||||
|     fullImplementation "com.google.android.material:material:${rootProject.ext.androidXVersion}" | ||||
|     fullImplementation 'com.github.topjohnwu:libsu:2.1.2' | ||||
|     fullImplementation 'com.atlassian.commonmark:commonmark:0.11.0' | ||||
|     fullImplementation 'org.kamranzafar:jtar:2.3' | ||||
|  | ||||
|     compile 'com.android.support:recyclerview-v7:25.3.1' | ||||
|     compile 'com.android.support:cardview-v7:25.3.1' | ||||
|     compile 'com.android.support:design:25.3.1' | ||||
|     compile 'com.android.support:support-v4:25.3.1' | ||||
|     compile 'com.jakewharton:butterknife:8.5.1' | ||||
|     compile 'com.thoughtbot:expandablerecyclerview:1.4' | ||||
|     compile 'us.feras.mdv:markdownview:1.1.0' | ||||
|     compile 'com.madgag.spongycastle:core:1.54.0.0' | ||||
|     compile 'com.madgag.spongycastle:prov:1.54.0.0' | ||||
|     compile 'com.madgag.spongycastle:pkix:1.54.0.0' | ||||
|     compile 'com.madgag.spongycastle:pg:1.54.0.0' | ||||
|     compile 'com.google.android.gms:play-services-safetynet:9.0.1' | ||||
|     annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' | ||||
|     def butterKnifeVersion = '9.0.0-rc2' | ||||
|     if (properties.containsKey('android.injected.invoked.from.ide')) { | ||||
|         fullImplementation "com.jakewharton:butterknife-reflect:${butterKnifeVersion}" | ||||
|     } else { | ||||
|         fullImplementation "com.jakewharton:butterknife-runtime:${butterKnifeVersion}" | ||||
|         fullAnnotationProcessor "com.jakewharton:butterknife-compiler:${butterKnifeVersion}" | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										27
									
								
								app/proguard-rules.pro
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								app/proguard-rules.pro
									
									
									
									
										vendored
									
									
								
							| @@ -16,15 +16,24 @@ | ||||
| #   public *; | ||||
| #} | ||||
|  | ||||
| -keep class android.support.v7.internal.** { *; } | ||||
| -keep interface android.support.v7.internal.** { *; } | ||||
| -keep class android.support.v7.** { *; } | ||||
| -keep interface android.support.v7.** { *; } | ||||
|  | ||||
| # SpongyCastle | ||||
| -keep class org.spongycastle.** { *; } | ||||
| # BouncyCastle | ||||
| -keep,allowoptimization class org.bouncycastle.jcajce.provider.asymmetric.rsa.**SHA1** { *; } | ||||
| -keep,allowoptimization class org.bouncycastle.jcajce.provider.asymmetric.RSA** { *; } | ||||
| -keep,allowoptimization class org.bouncycastle.jcajce.provider.digest.SHA1** { *; } | ||||
| -dontwarn javax.naming.** | ||||
|  | ||||
| # retrolambda | ||||
| -dontwarn java.lang.invoke.* | ||||
| # Snet extention | ||||
| -keepclassmembers class com.topjohnwu.magisk.utils.ISafetyNetHelper { *; } | ||||
|  | ||||
| # Fast Android Networking Library | ||||
| -dontwarn okhttp3.** | ||||
|  | ||||
| # Strip logging | ||||
| -assumenosideeffects class com.topjohnwu.magisk.utils.Logger { | ||||
|   public *** debug(...); | ||||
| } | ||||
|  | ||||
| # Excessive obfuscation | ||||
| -repackageclasses 'a' | ||||
| -allowaccessmodification | ||||
| -optimizationpasses 6 | ||||
|   | ||||
							
								
								
									
										101
									
								
								app/src/full/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								app/src/full/AndroidManifest.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,101 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:tools="http://schemas.android.com/tools" | ||||
|     package="com.topjohnwu.magisk"> | ||||
|  | ||||
|     <uses-permission android:name="android.permission.VIBRATE" /> | ||||
|     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> | ||||
|     <uses-permission android:name="android.permission.USE_FINGERPRINT" /> | ||||
|     <uses-permission android:name="android.permission.WAKE_LOCK" /> | ||||
|  | ||||
|     <application | ||||
|         android:name="a.q" | ||||
|         android:theme="@style/AppTheme" | ||||
|         tools:ignore="GoogleAppIndexingWarning"> | ||||
|  | ||||
|         <!-- Activities --> | ||||
|  | ||||
|         <activity | ||||
|             android:name="a.b" | ||||
|             android:configChanges="orientation|screenSize" | ||||
|             android:exported="true" /> | ||||
|         <activity | ||||
|             android:name="a.c" | ||||
|             android:configChanges="orientation|screenSize" | ||||
|             android:exported="true" | ||||
|             android:theme="@style/SplashTheme"> | ||||
|             <intent-filter> | ||||
|                 <action android:name="android.intent.action.MAIN" /> | ||||
|                 <category android:name="android.intent.category.LAUNCHER" /> | ||||
|             </intent-filter> | ||||
|         </activity> | ||||
|         <activity | ||||
|             android:name="a.d" | ||||
|             android:theme="@style/AppTheme.StatusBar" /> | ||||
|         <activity | ||||
|             android:name="a.e" | ||||
|             android:theme="@style/AppTheme.StatusBar"/> | ||||
|         <activity | ||||
|             android:name="a.f" | ||||
|             android:configChanges="keyboardHidden|orientation|screenSize" | ||||
|             android:screenOrientation="nosensor" | ||||
|             android:theme="@style/AppTheme.StatusBar" /> | ||||
|         <activity | ||||
|             android:name="a.g" | ||||
|             android:theme="@style/AppTheme.Translucent" /> | ||||
|  | ||||
|         <!-- Superuser --> | ||||
|  | ||||
|         <activity | ||||
|             android:name="a.m" | ||||
|             android:excludeFromRecents="true" | ||||
|             android:launchMode="singleTask" | ||||
|             android:taskAffinity="internal.superuser" | ||||
|             android:theme="@style/SuRequest" /> | ||||
|  | ||||
|         <activity | ||||
|             android:name=".superuser.RequestActivity" | ||||
|             android:excludeFromRecents="true" | ||||
|             android:launchMode="singleTask" | ||||
|             android:taskAffinity="internal.superuser" | ||||
|             android:theme="@style/AppTheme.Translucent" /> | ||||
|  | ||||
|         <receiver android:name=".superuser.SuReceiver" /> | ||||
|  | ||||
|         <!-- Receiver --> | ||||
|  | ||||
|         <receiver android:name="a.h"> | ||||
|             <intent-filter> | ||||
|                 <action android:name="android.intent.action.BOOT_COMPLETED" /> | ||||
|             </intent-filter> | ||||
|             <intent-filter> | ||||
|                 <action android:name="android.intent.action.PACKAGE_REPLACED" /> | ||||
|                 <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" /> | ||||
|                 <data android:scheme="package" /> | ||||
|             </intent-filter> | ||||
|         </receiver> | ||||
|         <receiver android:name="a.i"> | ||||
|             <intent-filter> | ||||
|                 <action android:name="android.intent.action.LOCALE_CHANGED" /> | ||||
|             </intent-filter> | ||||
|         </receiver> | ||||
|  | ||||
|         <!-- Service --> | ||||
|  | ||||
|         <service | ||||
|             android:name="a.j" | ||||
|             android:exported="true" | ||||
|             android:permission="android.permission.BIND_JOB_SERVICE" /> | ||||
|         <service | ||||
|             android:name="a.k" | ||||
|             android:exported="true" | ||||
|             android:permission="android.permission.BIND_JOB_SERVICE" /> | ||||
|  | ||||
|         <!-- Hardcode GMS version --> | ||||
|         <meta-data | ||||
|             android:name="com.google.android.gms.version" | ||||
|             android:value="12451000" /> | ||||
|  | ||||
|     </application> | ||||
|  | ||||
| </manifest> | ||||
							
								
								
									
										10
									
								
								app/src/full/java/a/a.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								app/src/full/java/a/a.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.utils.BootSigner; | ||||
|  | ||||
| import androidx.annotation.Keep; | ||||
|  | ||||
| @Keep | ||||
| public class a extends BootSigner { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/b.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/b.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.MainActivity; | ||||
|  | ||||
| public class b extends MainActivity { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/c.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/c.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.SplashActivity; | ||||
|  | ||||
| public class c extends SplashActivity { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/d.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/d.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.AboutActivity; | ||||
|  | ||||
| public class d extends AboutActivity { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/e.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/e.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.DonationActivity; | ||||
|  | ||||
| public class e extends DonationActivity { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/f.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/f.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.FlashActivity; | ||||
|  | ||||
| public class f extends FlashActivity { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/g.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/g.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.NoUIActivity; | ||||
|  | ||||
| public class g extends NoUIActivity { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/h.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/h.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.receivers.GeneralReceiver; | ||||
|  | ||||
| public class h extends GeneralReceiver { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/i.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/i.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.receivers.ShortcutReceiver; | ||||
|  | ||||
| public class i extends ShortcutReceiver { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/j.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/j.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.services.OnBootService; | ||||
|  | ||||
| public class j extends OnBootService { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/k.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/k.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.services.UpdateCheckService; | ||||
|  | ||||
| public class k extends UpdateCheckService { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										22
									
								
								app/src/full/java/a/l.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								app/src/full/java/a/l.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| package a; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.util.AttributeSet; | ||||
|  | ||||
| import com.topjohnwu.magisk.components.AboutCardRow; | ||||
|  | ||||
| public class l extends AboutCardRow { | ||||
|     /* stub */ | ||||
|  | ||||
|     public l(Context context) { | ||||
|         super(context); | ||||
|     } | ||||
|  | ||||
|     public l(Context context, AttributeSet attrs) { | ||||
|         super(context, attrs); | ||||
|     } | ||||
|  | ||||
|     public l(Context context, AttributeSet attrs, int defStyleAttr) { | ||||
|         super(context, attrs, defStyleAttr); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/m.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/m.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.SuRequestActivity; | ||||
|  | ||||
| public class m extends SuRequestActivity { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										7
									
								
								app/src/full/java/a/q.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/src/full/java/a/q.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| package a; | ||||
|  | ||||
| import com.topjohnwu.magisk.MagiskManager; | ||||
|  | ||||
| public class q extends MagiskManager { | ||||
|     /* stub */ | ||||
| } | ||||
							
								
								
									
										72
									
								
								app/src/full/java/com/topjohnwu/magisk/AboutActivity.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								app/src/full/java/com/topjohnwu/magisk/AboutActivity.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,72 @@ | ||||
| package com.topjohnwu.magisk; | ||||
|  | ||||
| import android.net.Uri; | ||||
| import android.os.Bundle; | ||||
| import android.text.TextUtils; | ||||
| import android.view.View; | ||||
|  | ||||
| import com.topjohnwu.magisk.asyncs.MarkDownWindow; | ||||
| import com.topjohnwu.magisk.components.AboutCardRow; | ||||
| import com.topjohnwu.magisk.components.BaseActivity; | ||||
| import com.topjohnwu.magisk.utils.Utils; | ||||
|  | ||||
| import java.util.Locale; | ||||
|  | ||||
| import androidx.annotation.Nullable; | ||||
| import androidx.appcompat.app.ActionBar; | ||||
| import androidx.appcompat.widget.Toolbar; | ||||
| import butterknife.BindView; | ||||
|  | ||||
| public class AboutActivity extends BaseActivity { | ||||
|  | ||||
|     @BindView(R.id.toolbar) Toolbar toolbar; | ||||
|     @BindView(R.id.app_version_info) AboutCardRow appVersionInfo; | ||||
|     @BindView(R.id.app_changelog) AboutCardRow appChangelog; | ||||
|     @BindView(R.id.app_translators) AboutCardRow appTranslators; | ||||
|     @BindView(R.id.app_source_code) AboutCardRow appSourceCode; | ||||
|     @BindView(R.id.support_thread) AboutCardRow supportThread; | ||||
|     @BindView(R.id.follow_twitter) AboutCardRow twitter; | ||||
|  | ||||
|     @Override | ||||
|     public int getDarkTheme() { | ||||
|         return R.style.AppTheme_StatusBar_Dark; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onCreate(@Nullable Bundle savedInstanceState) { | ||||
|         super.onCreate(savedInstanceState); | ||||
|         setContentView(R.layout.activity_about); | ||||
|         new AboutActivity_ViewBinding(this); | ||||
|  | ||||
|         setSupportActionBar(toolbar); | ||||
|         toolbar.setNavigationOnClickListener(view -> finish()); | ||||
|  | ||||
|         ActionBar ab = getSupportActionBar(); | ||||
|         if (ab != null) { | ||||
|             ab.setTitle(R.string.about); | ||||
|             ab.setDisplayHomeAsUpEnabled(true); | ||||
|         } | ||||
|  | ||||
|         appVersionInfo.setSummary(String.format(Locale.US, "%s (%d) (%s)", | ||||
|                 BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE, getPackageName())); | ||||
|  | ||||
|         appChangelog.setOnClickListener(v -> { | ||||
|             new MarkDownWindow(this, getString(R.string.app_changelog), | ||||
|                     getResources().openRawResource(R.raw.changelog)).exec(); | ||||
|         }); | ||||
|  | ||||
|         String translators = getString(R.string.translators); | ||||
|         if (TextUtils.isEmpty(translators)) { | ||||
|             appTranslators.setVisibility(View.GONE); | ||||
|         } else { | ||||
|             appTranslators.setSummary(translators); | ||||
|         } | ||||
|  | ||||
|         appSourceCode.setOnClickListener(v -> Utils.openLink(this, Uri.parse(Const.Url.SOURCE_CODE_URL))); | ||||
|         supportThread.setOnClickListener(v -> Utils.openLink(this, Uri.parse(Const.Url.XDA_THREAD))); | ||||
|         twitter.setOnClickListener(v -> Utils.openLink(this, Uri.parse(Const.Url.TWITTER_URL))); | ||||
|  | ||||
|         setFloating(); | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										155
									
								
								app/src/full/java/com/topjohnwu/magisk/Const.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								app/src/full/java/com/topjohnwu/magisk/Const.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,155 @@ | ||||
| package com.topjohnwu.magisk; | ||||
|  | ||||
| import android.os.Environment; | ||||
| import android.os.Process; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
|  | ||||
| public class Const { | ||||
|  | ||||
|     public static final String DEBUG_TAG = "MagiskManager"; | ||||
|     public static final String MAGISKHIDE_PROP = "persist.magisk.hide"; | ||||
|  | ||||
|     // APK content | ||||
|     public static final String ANDROID_MANIFEST = "AndroidManifest.xml"; | ||||
|  | ||||
|     public static final String SU_KEYSTORE_KEY = "su_key"; | ||||
|  | ||||
|     // Paths | ||||
|     public static final String MAGISK_PATH = "/sbin/.magisk/img"; | ||||
|     public static final File EXTERNAL_PATH; | ||||
|     public static File MAGISK_DISABLE_FILE; | ||||
|  | ||||
|     static { | ||||
|         MAGISK_DISABLE_FILE = new File("xxx"); | ||||
|         EXTERNAL_PATH = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); | ||||
|         EXTERNAL_PATH.mkdirs(); | ||||
|     } | ||||
|  | ||||
|     public static final String BUSYBOX_PATH = "/sbin/.magisk/busybox"; | ||||
|     public static final String TMP_FOLDER_PATH = "/dev/tmp"; | ||||
|     public static final String MAGISK_LOG = "/cache/magisk.log"; | ||||
|     public static final String MANAGER_CONFIGS = ".tmp.magisk.config"; | ||||
|  | ||||
|     // Versions | ||||
|     public static final int UPDATE_SERVICE_VER = 1; | ||||
|     public static final int MIN_MODULE_VER = 1500; | ||||
|     public static final int SNET_EXT_VER = 12; | ||||
|  | ||||
|     /* A list of apps that should not be shown as hide-able */ | ||||
|     public static final List<String> HIDE_BLACKLIST =  Arrays.asList( | ||||
|             Data.MM().getPackageName(), | ||||
|             "com.google.android.gms" | ||||
|     ); | ||||
|  | ||||
|     public static final int USER_ID = Process.myUid() / 100000; | ||||
|  | ||||
|     public static final class MAGISK_VER { | ||||
|         public static final int SEPOL_REFACTOR = 1640; | ||||
|         public static final int FIX_ENV = 1650; | ||||
|         public static final int DBVER_SIX = 17000; | ||||
|         public static final int CMDLINE_DB = 17305; | ||||
|         public static final int HIDE_STATUS = 17315; | ||||
|     } | ||||
|  | ||||
|     public static class ID { | ||||
|         public static final int UPDATE_SERVICE_ID = 1; | ||||
|         public static final int FETCH_ZIP = 2; | ||||
|         public static final int SELECT_BOOT = 3; | ||||
|         public static final int ONBOOT_SERVICE_ID = 6; | ||||
|  | ||||
|         // notifications | ||||
|         public static final int MAGISK_UPDATE_NOTIFICATION_ID = 4; | ||||
|         public static final int APK_UPDATE_NOTIFICATION_ID = 5; | ||||
|         public static final int DTBO_NOTIFICATION_ID = 7; | ||||
|         public static final int HIDE_MANAGER_NOTIFICATION_ID = 8; | ||||
|         public static final String UPDATE_NOTIFICATION_CHANNEL = "update"; | ||||
|         public static final String PROGRESS_NOTIFICATION_CHANNEL = "progress"; | ||||
|     } | ||||
|  | ||||
|     public static class Url { | ||||
|         public static final String STABLE_URL = "https://raw.githubusercontent.com/topjohnwu/magisk_files/master/stable.json"; | ||||
|         public static final String BETA_URL = "https://raw.githubusercontent.com/topjohnwu/magisk_files/master/beta.json"; | ||||
|         public static final String REPO_URL = "https://api.github.com/users/Magisk-Modules-Repo/repos?per_page=100&sort=pushed"; | ||||
|         public static final String FILE_URL = "https://raw.githubusercontent.com/Magisk-Modules-Repo/%s/master/%s"; | ||||
|         public static final String ZIP_URL = "https://github.com/Magisk-Modules-Repo/%s/archive/master.zip"; | ||||
|         public static final String PAYPAL_URL = "https://www.paypal.me/topjohnwu"; | ||||
|         public static final String PATREON_URL = "https://www.patreon.com/topjohnwu"; | ||||
|         public static final String TWITTER_URL = "https://twitter.com/topjohnwu"; | ||||
|         public static final String XDA_THREAD = "http://forum.xda-developers.com/showthread.php?t=3432382"; | ||||
|         public static final String SOURCE_CODE_URL = "https://github.com/topjohnwu/Magisk"; | ||||
|         public static final String SNET_URL = "https://raw.githubusercontent.com/topjohnwu/magisk_files/b66b1a914978e5f4c4bbfd74a59f4ad371bac107/snet.apk"; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public static class Key { | ||||
|         // su | ||||
|         public static final String ROOT_ACCESS = "root_access"; | ||||
|         public static final String SU_MULTIUSER_MODE = "multiuser_mode"; | ||||
|         public static final String SU_MNT_NS = "mnt_ns"; | ||||
|         public static final String SU_MANAGER = "requester"; | ||||
|         public static final String SU_REQUEST_TIMEOUT = "su_request_timeout"; | ||||
|         public static final String SU_AUTO_RESPONSE = "su_auto_response"; | ||||
|         public static final String SU_NOTIFICATION = "su_notification"; | ||||
|         public static final String SU_REAUTH = "su_reauth"; | ||||
|         public static final String SU_FINGERPRINT = "su_fingerprint"; | ||||
|  | ||||
|         // intents | ||||
|         public static final String OPEN_SECTION = "section"; | ||||
|         public static final String INTENT_SET_NAME = "filename"; | ||||
|         public static final String INTENT_SET_LINK = "link"; | ||||
|         public static final String FLASH_ACTION = "action"; | ||||
|         public static final String FLASH_SET_BOOT = "boot"; | ||||
|         public static final String BROADCAST_MANAGER_UPDATE = "manager_update"; | ||||
|         public static final String BROADCAST_REBOOT = "reboot"; | ||||
|  | ||||
|         // others | ||||
|         public static final String CHECK_UPDATES = "check_update"; | ||||
|         public static final String UPDATE_CHANNEL = "update_channel"; | ||||
|         public static final String CUSTOM_CHANNEL = "custom_channel"; | ||||
|         public static final String BOOT_FORMAT = "boot_format"; | ||||
|         public static final String UPDATE_SERVICE_VER = "update_service_version"; | ||||
|         public static final String APP_VER = "app_version"; | ||||
|         public static final String MAGISKHIDE = "magiskhide"; | ||||
|         public static final String HOSTS = "hosts"; | ||||
|         public static final String COREONLY = "disable"; | ||||
|         public static final String LOCALE = "locale"; | ||||
|         public static final String DARK_THEME = "dark_theme"; | ||||
|         public static final String ETAG_KEY = "ETag"; | ||||
|         public static final String LINK_KEY = "Link"; | ||||
|         public static final String IF_NONE_MATCH = "If-None-Match"; | ||||
|         public static final String REPO_ORDER = "repo_order"; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public static class Value { | ||||
|         public static final int STABLE_CHANNEL = 0; | ||||
|         public static final int BETA_CHANNEL = 1; | ||||
|         public static final int CUSTOM_CHANNEL = 2; | ||||
|         public static final int ROOT_ACCESS_DISABLED = 0; | ||||
|         public static final int ROOT_ACCESS_APPS_ONLY = 1; | ||||
|         public static final int ROOT_ACCESS_ADB_ONLY = 2; | ||||
|         public static final int ROOT_ACCESS_APPS_AND_ADB = 3; | ||||
|         public static final int MULTIUSER_MODE_OWNER_ONLY = 0; | ||||
|         public static final int MULTIUSER_MODE_OWNER_MANAGED = 1; | ||||
|         public static final int MULTIUSER_MODE_USER = 2; | ||||
|         public static final int NAMESPACE_MODE_GLOBAL = 0; | ||||
|         public static final int NAMESPACE_MODE_REQUESTER = 1; | ||||
|         public static final int NAMESPACE_MODE_ISOLATE = 2; | ||||
|         public static final int NO_NOTIFICATION = 0; | ||||
|         public static final int NOTIFICATION_TOAST = 1; | ||||
|         public static final int SU_PROMPT = 0; | ||||
|         public static final int SU_AUTO_DENY = 1; | ||||
|         public static final int SU_AUTO_ALLOW = 2; | ||||
|         public static final String FLASH_ZIP = "flash"; | ||||
|         public static final String PATCH_BOOT = "patch"; | ||||
|         public static final String FLASH_MAGISK = "magisk"; | ||||
|         public static final String FLASH_INACTIVE_SLOT = "slot"; | ||||
|         public static final String UNINSTALL = "uninstall"; | ||||
|         public static final int[] timeoutList = {0, -1, 10, 20, 30, 60}; | ||||
|         public static final int ORDER_NAME = 0; | ||||
|         public static final int ORDER_DATE = 1; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										195
									
								
								app/src/full/java/com/topjohnwu/magisk/Data.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										195
									
								
								app/src/full/java/com/topjohnwu/magisk/Data.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,195 @@ | ||||
| package com.topjohnwu.magisk; | ||||
|  | ||||
| import android.content.SharedPreferences; | ||||
| import android.os.Handler; | ||||
| import android.os.Looper; | ||||
| import android.util.Xml; | ||||
|  | ||||
| import com.topjohnwu.magisk.components.AboutCardRow; | ||||
| import com.topjohnwu.magisk.receivers.GeneralReceiver; | ||||
| import com.topjohnwu.magisk.receivers.ShortcutReceiver; | ||||
| import com.topjohnwu.magisk.services.OnBootService; | ||||
| import com.topjohnwu.magisk.services.UpdateCheckService; | ||||
| import com.topjohnwu.magisk.utils.Utils; | ||||
| import com.topjohnwu.superuser.Shell; | ||||
| import com.topjohnwu.superuser.ShellUtils; | ||||
| import com.topjohnwu.superuser.io.SuFile; | ||||
| import com.topjohnwu.superuser.io.SuFileInputStream; | ||||
|  | ||||
| import org.xmlpull.v1.XmlPullParser; | ||||
| import org.xmlpull.v1.XmlPullParserException; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.io.IOException; | ||||
| import java.lang.ref.WeakReference; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
|  | ||||
| public class Data { | ||||
|     // Global app instance | ||||
|     public static WeakReference<MagiskManager> weakApp; | ||||
|     public static Handler mainHandler = new Handler(Looper.getMainLooper()); | ||||
|     public static Map<Class, Class> classMap = new HashMap<>(); | ||||
|  | ||||
|     // Current status | ||||
|     public static String magiskVersionString; | ||||
|     public static int magiskVersionCode = -1; | ||||
|     public static boolean magiskHide; | ||||
|  | ||||
|     // Update Info | ||||
|     public static String remoteMagiskVersionString; | ||||
|     public static int remoteMagiskVersionCode = -1; | ||||
|     public static String magiskLink; | ||||
|     public static String magiskNoteLink; | ||||
|     public static String magiskMD5; | ||||
|     public static String remoteManagerVersionString; | ||||
|     public static int remoteManagerVersionCode = -1; | ||||
|     public static String managerLink; | ||||
|     public static String managerNoteLink; | ||||
|     public static String uninstallerLink; | ||||
|  | ||||
|     // Install flags | ||||
|     public static boolean keepVerity = false; | ||||
|     public static boolean keepEnc = false; | ||||
|  | ||||
|     // Configs | ||||
|     public static boolean isDarkTheme; | ||||
|     public static int suRequestTimeout; | ||||
|     public static int suLogTimeout = 14; | ||||
|     public static int multiuserState = -1; | ||||
|     public static int suResponseType; | ||||
|     public static int suNotificationType; | ||||
|     public static int updateChannel; | ||||
|     public static int repoOrder; | ||||
|  | ||||
|     static { | ||||
|         classMap.put(MagiskManager.class, a.q.class); | ||||
|         classMap.put(MainActivity.class, a.b.class); | ||||
|         classMap.put(SplashActivity.class, a.c.class); | ||||
|         classMap.put(AboutActivity.class, a.d.class); | ||||
|         classMap.put(DonationActivity.class, a.e.class); | ||||
|         classMap.put(FlashActivity.class, a.f.class); | ||||
|         classMap.put(NoUIActivity.class, a.g.class); | ||||
|         classMap.put(GeneralReceiver.class, a.h.class); | ||||
|         classMap.put(ShortcutReceiver.class, a.i.class); | ||||
|         classMap.put(OnBootService.class, a.j.class); | ||||
|         classMap.put(UpdateCheckService.class, a.k.class); | ||||
|         classMap.put(AboutCardRow.class, a.l.class); | ||||
|         classMap.put(SuRequestActivity.class, a.m.class); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public static void loadMagiskInfo() { | ||||
|         try { | ||||
|             magiskVersionString = ShellUtils.fastCmd("magisk -v").split(":")[0]; | ||||
|             magiskVersionCode = Integer.parseInt(ShellUtils.fastCmd("magisk -V")); | ||||
|             if (magiskVersionCode >= Const.MAGISK_VER.HIDE_STATUS) { | ||||
|                 magiskHide = Shell.su("magiskhide --status").exec().isSuccess(); | ||||
|             } else { | ||||
|                 String s = ShellUtils.fastCmd(("resetprop -p ") + Const.MAGISKHIDE_PROP); | ||||
|                 magiskHide = s.isEmpty() || Integer.parseInt(s) != 0; | ||||
|             } | ||||
|         } catch (NumberFormatException ignored) {} | ||||
|     } | ||||
|  | ||||
|     public static MagiskManager MM() { | ||||
|         return weakApp.get(); | ||||
|     } | ||||
|  | ||||
|     public static void exportPrefs() { | ||||
|         // Flush prefs to disk | ||||
|         MagiskManager mm = MM(); | ||||
|         mm.prefs.edit().commit(); | ||||
|         File xml = new File(mm.getFilesDir().getParent() + "/shared_prefs", | ||||
|                 mm.getPackageName() + "_preferences.xml"); | ||||
|         Shell.su(Utils.fmt("cat %s > /data/user/0/%s", xml, Const.MANAGER_CONFIGS)).exec(); | ||||
|     } | ||||
|  | ||||
|     public static void importPrefs() { | ||||
|         MagiskManager mm = MM(); | ||||
|         SuFile config = new SuFile("/data/user/0/" + Const.MANAGER_CONFIGS); | ||||
|         if (config.exists()) { | ||||
|             SharedPreferences.Editor editor = mm.prefs.edit(); | ||||
|             try { | ||||
|                 SuFileInputStream is = new SuFileInputStream(config); | ||||
|                 XmlPullParser parser = Xml.newPullParser(); | ||||
|                 parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); | ||||
|                 parser.setInput(is, "UTF-8"); | ||||
|                 parser.nextTag(); | ||||
|                 parser.require(XmlPullParser.START_TAG, null, "map"); | ||||
|                 while (parser.next() != XmlPullParser.END_TAG) { | ||||
|                     if (parser.getEventType() != XmlPullParser.START_TAG) | ||||
|                         continue; | ||||
|                     String key = parser.getAttributeValue(null, "name"); | ||||
|                     String value = parser.getAttributeValue(null, "value"); | ||||
|                     switch (parser.getName()) { | ||||
|                         case "string": | ||||
|                             parser.require(XmlPullParser.START_TAG, null, "string"); | ||||
|                             editor.putString(key, parser.nextText()); | ||||
|                             parser.require(XmlPullParser.END_TAG, null, "string"); | ||||
|                             break; | ||||
|                         case "boolean": | ||||
|                             parser.require(XmlPullParser.START_TAG, null, "boolean"); | ||||
|                             editor.putBoolean(key, Boolean.parseBoolean(value)); | ||||
|                             parser.nextTag(); | ||||
|                             parser.require(XmlPullParser.END_TAG, null, "boolean"); | ||||
|                             break; | ||||
|                         case "int": | ||||
|                             parser.require(XmlPullParser.START_TAG, null, "int"); | ||||
|                             editor.putInt(key, Integer.parseInt(value)); | ||||
|                             parser.nextTag(); | ||||
|                             parser.require(XmlPullParser.END_TAG, null, "int"); | ||||
|                             break; | ||||
|                         case "long": | ||||
|                             parser.require(XmlPullParser.START_TAG, null, "long"); | ||||
|                             editor.putLong(key, Long.parseLong(value)); | ||||
|                             parser.nextTag(); | ||||
|                             parser.require(XmlPullParser.END_TAG, null, "long"); | ||||
|                             break; | ||||
|                         case "float": | ||||
|                             parser.require(XmlPullParser.START_TAG, null, "int"); | ||||
|                             editor.putFloat(key, Float.parseFloat(value)); | ||||
|                             parser.nextTag(); | ||||
|                             parser.require(XmlPullParser.END_TAG, null, "int"); | ||||
|                             break; | ||||
|                         default: | ||||
|                             parser.next(); | ||||
|                     } | ||||
|                 } | ||||
|             } catch (IOException | XmlPullParserException e) { | ||||
|                 e.printStackTrace(); | ||||
|             } | ||||
|             editor.remove(Const.Key.ETAG_KEY); | ||||
|             editor.apply(); | ||||
|             loadConfig(); | ||||
|             config.delete(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static void loadConfig() { | ||||
|         MagiskManager mm = MM(); | ||||
|         // su | ||||
|         suRequestTimeout = Utils.getPrefsInt(mm.prefs, Const.Key.SU_REQUEST_TIMEOUT, Const.Value.timeoutList[2]); | ||||
|         suResponseType = Utils.getPrefsInt(mm.prefs, Const.Key.SU_AUTO_RESPONSE, Const.Value.SU_PROMPT); | ||||
|         suNotificationType = Utils.getPrefsInt(mm.prefs, Const.Key.SU_NOTIFICATION, Const.Value.NOTIFICATION_TOAST); | ||||
|  | ||||
|         // config | ||||
|         isDarkTheme = mm.prefs.getBoolean(Const.Key.DARK_THEME, false); | ||||
|         updateChannel = Utils.getPrefsInt(mm.prefs, Const.Key.UPDATE_CHANNEL, Const.Value.STABLE_CHANNEL); | ||||
|         repoOrder = mm.prefs.getInt(Const.Key.REPO_ORDER, Const.Value.ORDER_DATE); | ||||
|     } | ||||
|  | ||||
|     public static void writeConfig() { | ||||
|         MM().prefs.edit() | ||||
|                 .putBoolean(Const.Key.DARK_THEME, isDarkTheme) | ||||
|                 .putBoolean(Const.Key.MAGISKHIDE, magiskHide) | ||||
|                 .putBoolean(Const.Key.COREONLY, Const.MAGISK_DISABLE_FILE.exists()) | ||||
|                 .putString(Const.Key.SU_REQUEST_TIMEOUT, String.valueOf(suRequestTimeout)) | ||||
|                 .putString(Const.Key.SU_AUTO_RESPONSE, String.valueOf(suResponseType)) | ||||
|                 .putString(Const.Key.SU_NOTIFICATION, String.valueOf(suNotificationType)) | ||||
|                 .putString(Const.Key.UPDATE_CHANNEL, String.valueOf(updateChannel)) | ||||
|                 .putInt(Const.Key.UPDATE_SERVICE_VER, Const.UPDATE_SERVICE_VER) | ||||
|                 .putInt(Const.Key.REPO_ORDER, repoOrder) | ||||
|                 .apply(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										44
									
								
								app/src/full/java/com/topjohnwu/magisk/DonationActivity.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								app/src/full/java/com/topjohnwu/magisk/DonationActivity.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| package com.topjohnwu.magisk; | ||||
|  | ||||
| import android.net.Uri; | ||||
| import android.os.Bundle; | ||||
|  | ||||
| import com.topjohnwu.magisk.components.AboutCardRow; | ||||
| import com.topjohnwu.magisk.components.BaseActivity; | ||||
| import com.topjohnwu.magisk.utils.Utils; | ||||
|  | ||||
| import androidx.annotation.Nullable; | ||||
| import androidx.appcompat.app.ActionBar; | ||||
| import androidx.appcompat.widget.Toolbar; | ||||
| import butterknife.BindView; | ||||
|  | ||||
| public class DonationActivity extends BaseActivity { | ||||
|  | ||||
|     @BindView(R.id.toolbar) Toolbar toolbar; | ||||
|     @BindView(R.id.paypal) AboutCardRow paypal; | ||||
|     @BindView(R.id.patreon) AboutCardRow patreon; | ||||
|  | ||||
|     @Override | ||||
|     public int getDarkTheme() { | ||||
|         return R.style.AppTheme_StatusBar_Dark; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onCreate(@Nullable Bundle savedInstanceState) { | ||||
|         super.onCreate(savedInstanceState); | ||||
|         setContentView(R.layout.activity_donation); | ||||
|         new DonationActivity_ViewBinding(this); | ||||
|  | ||||
|         setSupportActionBar(toolbar); | ||||
|         toolbar.setNavigationOnClickListener(view -> finish()); | ||||
|  | ||||
|         ActionBar ab = getSupportActionBar(); | ||||
|         if (ab != null) { | ||||
|             ab.setTitle(R.string.donation); | ||||
|             ab.setDisplayHomeAsUpEnabled(true); | ||||
|         } | ||||
|  | ||||
|         paypal.setOnClickListener(v -> Utils.openLink(this, Uri.parse(Const.Url.PAYPAL_URL))); | ||||
|         patreon.setOnClickListener(v -> Utils.openLink(this, Uri.parse(Const.Url.PATREON_URL))); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										169
									
								
								app/src/full/java/com/topjohnwu/magisk/FlashActivity.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								app/src/full/java/com/topjohnwu/magisk/FlashActivity.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,169 @@ | ||||
| package com.topjohnwu.magisk; | ||||
|  | ||||
| import android.Manifest; | ||||
| import android.content.Intent; | ||||
| import android.net.Uri; | ||||
| import android.os.Bundle; | ||||
| import android.text.TextUtils; | ||||
| import android.view.View; | ||||
| import android.widget.Button; | ||||
| import android.widget.LinearLayout; | ||||
| import android.widget.ScrollView; | ||||
| import android.widget.TextView; | ||||
| import android.widget.Toast; | ||||
|  | ||||
| import com.topjohnwu.magisk.asyncs.FlashZip; | ||||
| import com.topjohnwu.magisk.asyncs.InstallMagisk; | ||||
| import com.topjohnwu.magisk.components.BaseActivity; | ||||
| import com.topjohnwu.magisk.utils.RootUtils; | ||||
| import com.topjohnwu.magisk.utils.Utils; | ||||
| import com.topjohnwu.superuser.CallbackList; | ||||
| import com.topjohnwu.superuser.Shell; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.io.FileWriter; | ||||
| import java.io.IOException; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Calendar; | ||||
| import java.util.List; | ||||
| import java.util.Locale; | ||||
|  | ||||
| import androidx.appcompat.app.ActionBar; | ||||
| import androidx.appcompat.widget.Toolbar; | ||||
| import butterknife.BindView; | ||||
| import butterknife.OnClick; | ||||
|  | ||||
| public class FlashActivity extends BaseActivity { | ||||
|  | ||||
|     @BindView(R.id.toolbar) Toolbar toolbar; | ||||
|     @BindView(R.id.txtLog) TextView flashLogs; | ||||
|     @BindView(R.id.button_panel) public LinearLayout buttonPanel; | ||||
|     @BindView(R.id.reboot) public Button reboot; | ||||
|     @BindView(R.id.scrollView) ScrollView sv; | ||||
|  | ||||
|     private List<String> logs; | ||||
|  | ||||
|     @OnClick(R.id.reboot) | ||||
|     void reboot() { | ||||
|         Shell.su("/system/bin/reboot").submit(); | ||||
|     } | ||||
|  | ||||
|     @OnClick(R.id.save_logs) | ||||
|     void saveLogs() { | ||||
|         runWithPermission(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, () -> { | ||||
|             Calendar now = Calendar.getInstance(); | ||||
|             String filename = String.format(Locale.US, | ||||
|                     "magisk_install_log_%04d%02d%02d_%02d%02d%02d.log", | ||||
|                     now.get(Calendar.YEAR), now.get(Calendar.MONTH) + 1, | ||||
|                     now.get(Calendar.DAY_OF_MONTH), now.get(Calendar.HOUR_OF_DAY), | ||||
|                     now.get(Calendar.MINUTE), now.get(Calendar.SECOND)); | ||||
|  | ||||
|             File logFile = new File(Const.EXTERNAL_PATH, filename); | ||||
|             try (FileWriter writer = new FileWriter(logFile)) { | ||||
|                 for (String s : logs) { | ||||
|                     writer.write(s); | ||||
|                     writer.write('\n'); | ||||
|                 } | ||||
|             } catch (IOException e) { | ||||
|                 e.printStackTrace(); | ||||
|                 return; | ||||
|             } | ||||
|             Utils.toast(logFile.getPath(), Toast.LENGTH_LONG); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public int getDarkTheme() { | ||||
|         return R.style.AppTheme_StatusBar_Dark; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onCreate(Bundle savedInstanceState) { | ||||
|         super.onCreate(savedInstanceState); | ||||
|         setContentView(R.layout.activity_flash); | ||||
|         new FlashActivity_ViewBinding(this); | ||||
|  | ||||
|         setSupportActionBar(toolbar); | ||||
|         ActionBar ab = getSupportActionBar(); | ||||
|         if (ab != null) { | ||||
|             ab.setTitle(R.string.flashing); | ||||
|         } | ||||
|         setFloating(); | ||||
|         setFinishOnTouchOutside(false); | ||||
|         if (!Shell.rootAccess()) | ||||
|             reboot.setVisibility(View.GONE); | ||||
|  | ||||
|         logs = new ArrayList<>(); | ||||
|         CallbackList<String> console = new CallbackList<String>(new ArrayList<>()) { | ||||
|  | ||||
|             private void updateUI() { | ||||
|                 flashLogs.setText(TextUtils.join("\n", this)); | ||||
|                 sv.postDelayed(() -> sv.fullScroll(ScrollView.FOCUS_DOWN), 10); | ||||
|             } | ||||
|  | ||||
|             @Override | ||||
|             public void onAddElement(String s) { | ||||
|                 logs.add(s); | ||||
|                 updateUI(); | ||||
|             } | ||||
|  | ||||
|             @Override | ||||
|             public String set(int i, String s) { | ||||
|                 String ret = super.set(i, s); | ||||
|                 Data.mainHandler.post(this::updateUI); | ||||
|                 return ret; | ||||
|             } | ||||
|         }; | ||||
|  | ||||
|         // We must receive a Uri of the target zip | ||||
|         Intent intent = getIntent(); | ||||
|         Uri uri = intent.getData(); | ||||
|  | ||||
|         switch (intent.getStringExtra(Const.Key.FLASH_ACTION)) { | ||||
|             case Const.Value.FLASH_ZIP: | ||||
|                 new FlashZip(this, uri, console, logs).exec(); | ||||
|                 break; | ||||
|             case Const.Value.UNINSTALL: | ||||
|                 new UninstallMagisk(this, uri, console, logs).exec(); | ||||
|                 break; | ||||
|             case Const.Value.FLASH_MAGISK: | ||||
|                 new InstallMagisk(this, console, logs, InstallMagisk.DIRECT_MODE).exec(); | ||||
|                 break; | ||||
|             case Const.Value.FLASH_INACTIVE_SLOT: | ||||
|                 new InstallMagisk(this, console, logs, InstallMagisk.SECOND_SLOT_MODE).exec(); | ||||
|                 break; | ||||
|             case Const.Value.PATCH_BOOT: | ||||
|                 new InstallMagisk(this, console, logs, | ||||
|                         intent.getParcelableExtra(Const.Key.FLASH_SET_BOOT)).exec(); | ||||
|                 break; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @OnClick(R.id.close) | ||||
|     @Override | ||||
|     public void finish() { | ||||
|         super.finish(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onBackPressed() { | ||||
|         // Prevent user accidentally press back button | ||||
|     } | ||||
|  | ||||
|     private static class UninstallMagisk extends FlashZip { | ||||
|  | ||||
|         private UninstallMagisk(BaseActivity context, Uri uri, List<String> console, List<String> logs) { | ||||
|             super(context, uri, console, logs); | ||||
|         } | ||||
|  | ||||
|         @Override | ||||
|         protected void onPostExecute(Integer result) { | ||||
|             if (result == 1) { | ||||
|                 Data.mainHandler.postDelayed(() -> | ||||
|                         RootUtils.uninstallPkg(getActivity().getPackageName()), 3000); | ||||
|             } else { | ||||
|                 super.onPostExecute(result); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										52
									
								
								app/src/full/java/com/topjohnwu/magisk/MagiskManager.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								app/src/full/java/com/topjohnwu/magisk/MagiskManager.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| package com.topjohnwu.magisk; | ||||
|  | ||||
| import android.content.SharedPreferences; | ||||
| import android.content.res.Configuration; | ||||
| import android.preference.PreferenceManager; | ||||
|  | ||||
| import com.topjohnwu.magisk.database.MagiskDB; | ||||
| import com.topjohnwu.magisk.database.RepoDatabaseHelper; | ||||
| import com.topjohnwu.magisk.utils.LocaleManager; | ||||
| import com.topjohnwu.magisk.utils.RootUtils; | ||||
| import com.topjohnwu.superuser.ContainerApp; | ||||
| import com.topjohnwu.superuser.Shell; | ||||
|  | ||||
| import java.lang.ref.WeakReference; | ||||
|  | ||||
| public class MagiskManager extends ContainerApp { | ||||
|  | ||||
|     // Info | ||||
|     public boolean hasInit = false; | ||||
|  | ||||
|     // Global resources | ||||
|     public SharedPreferences prefs; | ||||
|     public MagiskDB mDB; | ||||
|     public RepoDatabaseHelper repoDB; | ||||
|  | ||||
|     public MagiskManager() { | ||||
|         Data.weakApp = new WeakReference<>(this); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onCreate() { | ||||
|         super.onCreate(); | ||||
|  | ||||
|         Shell.Config.setFlags(Shell.FLAG_MOUNT_MASTER); | ||||
|         Shell.Config.verboseLogging(BuildConfig.DEBUG); | ||||
|         Shell.Config.setInitializer(RootUtils.class); | ||||
|         Shell.Config.setTimeout(2); | ||||
|  | ||||
|         prefs = PreferenceManager.getDefaultSharedPreferences(this); | ||||
|         mDB = MagiskDB.getInstance(); | ||||
|         repoDB = new RepoDatabaseHelper(this); | ||||
|  | ||||
|         LocaleManager.setLocale(this); | ||||
|         Data.loadConfig(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onConfigurationChanged(Configuration newConfig) { | ||||
|         super.onConfigurationChanged(newConfig); | ||||
|         LocaleManager.setLocale(this); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										211
									
								
								app/src/full/java/com/topjohnwu/magisk/MainActivity.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										211
									
								
								app/src/full/java/com/topjohnwu/magisk/MainActivity.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,211 @@ | ||||
| package com.topjohnwu.magisk; | ||||
|  | ||||
| import android.content.Intent; | ||||
| import android.os.Bundle; | ||||
| import android.os.Handler; | ||||
| import android.view.Menu; | ||||
| import android.view.MenuItem; | ||||
| import android.view.View; | ||||
|  | ||||
| import com.google.android.material.navigation.NavigationView; | ||||
| import com.topjohnwu.magisk.components.BaseActivity; | ||||
| import com.topjohnwu.magisk.fragments.LogFragment; | ||||
| import com.topjohnwu.magisk.fragments.MagiskFragment; | ||||
| import com.topjohnwu.magisk.fragments.MagiskHideFragment; | ||||
| import com.topjohnwu.magisk.fragments.ModulesFragment; | ||||
| import com.topjohnwu.magisk.fragments.ReposFragment; | ||||
| import com.topjohnwu.magisk.fragments.SettingsFragment; | ||||
| import com.topjohnwu.magisk.fragments.SuperuserFragment; | ||||
| import com.topjohnwu.magisk.utils.Download; | ||||
| import com.topjohnwu.magisk.utils.Topic; | ||||
| import com.topjohnwu.magisk.utils.Utils; | ||||
| import com.topjohnwu.superuser.Shell; | ||||
|  | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.appcompat.app.ActionBarDrawerToggle; | ||||
| import androidx.appcompat.widget.Toolbar; | ||||
| import androidx.drawerlayout.widget.DrawerLayout; | ||||
| import androidx.fragment.app.Fragment; | ||||
| import androidx.fragment.app.FragmentTransaction; | ||||
| import butterknife.BindView; | ||||
|  | ||||
| public class MainActivity extends BaseActivity | ||||
|         implements NavigationView.OnNavigationItemSelectedListener, Topic.Subscriber { | ||||
|  | ||||
|     private final Handler mDrawerHandler = new Handler(); | ||||
|     private int mDrawerItem; | ||||
|     private static boolean fromShortcut = false; | ||||
|  | ||||
|     @BindView(R.id.toolbar) public Toolbar toolbar; | ||||
|     @BindView(R.id.drawer_layout) DrawerLayout drawer; | ||||
|     @BindView(R.id.nav_view) NavigationView navigationView; | ||||
|  | ||||
|     private float toolbarElevation; | ||||
|  | ||||
|     @Override | ||||
|     public int getDarkTheme() { | ||||
|         return R.style.AppTheme_Dark; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onCreate(final Bundle savedInstanceState) { | ||||
|         if (!mm.hasInit) { | ||||
|             startActivity(new Intent(this, Data.classMap.get(SplashActivity.class))); | ||||
|             finish(); | ||||
|         } | ||||
|  | ||||
|         super.onCreate(savedInstanceState); | ||||
|         setContentView(R.layout.activity_main); | ||||
|         new MainActivity_ViewBinding(this); | ||||
|  | ||||
|         setSupportActionBar(toolbar); | ||||
|  | ||||
|         ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.magisk, R.string.magisk) { | ||||
|             @Override | ||||
|             public void onDrawerOpened(View drawerView) { | ||||
|                 super.onDrawerOpened(drawerView); | ||||
|                 super.onDrawerSlide(drawerView, 0); // this disables the arrow @ completed tate | ||||
|             } | ||||
|  | ||||
|             @Override | ||||
|             public void onDrawerSlide(View drawerView, float slideOffset) { | ||||
|                 super.onDrawerSlide(drawerView, 0); // this disables the animation | ||||
|             } | ||||
|         }; | ||||
|  | ||||
|         toolbarElevation = toolbar.getElevation(); | ||||
|  | ||||
|         drawer.addDrawerListener(toggle); | ||||
|         toggle.syncState(); | ||||
|  | ||||
|         if (savedInstanceState == null) { | ||||
|             String section = getIntent().getStringExtra(Const.Key.OPEN_SECTION); | ||||
|             fromShortcut = section != null; | ||||
|             navigate(section); | ||||
|         } | ||||
|  | ||||
|         navigationView.setNavigationItemSelectedListener(this); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onResume() { | ||||
|         super.onResume(); | ||||
|         checkHideSection(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onBackPressed() { | ||||
|         if (drawer.isDrawerOpen(navigationView)) { | ||||
|             drawer.closeDrawer(navigationView); | ||||
|         } else if (mDrawerItem != R.id.magisk && !fromShortcut) { | ||||
|             navigate(R.id.magisk); | ||||
|         } else { | ||||
|             finish(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean onNavigationItemSelected(@NonNull final MenuItem menuItem) { | ||||
|         mDrawerHandler.removeCallbacksAndMessages(null); | ||||
|         mDrawerHandler.postDelayed(() -> navigate(menuItem.getItemId()), 250); | ||||
|         drawer.closeDrawer(navigationView); | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onPublish(int topic, Object[] result) { | ||||
|         recreate(); | ||||
|     } | ||||
|  | ||||
|     public void checkHideSection() { | ||||
|         Menu menu = navigationView.getMenu(); | ||||
|         menu.findItem(R.id.magiskhide).setVisible(Shell.rootAccess() && | ||||
|                 mm.prefs.getBoolean(Const.Key.MAGISKHIDE, false)); | ||||
|         menu.findItem(R.id.modules).setVisible(Shell.rootAccess() && Data.magiskVersionCode >= 0); | ||||
|         menu.findItem(R.id.downloads).setVisible(Download.checkNetworkStatus(this) | ||||
|                 && Shell.rootAccess() && Data.magiskVersionCode >= 0); | ||||
|         menu.findItem(R.id.log).setVisible(Shell.rootAccess()); | ||||
|         menu.findItem(R.id.superuser).setVisible(Utils.showSuperUser()); | ||||
|     } | ||||
|  | ||||
|     public void navigate(String item) { | ||||
|         int itemId = R.id.magisk; | ||||
|         if (item != null) { | ||||
|             switch (item) { | ||||
|                 case "superuser": | ||||
|                     itemId = R.id.superuser; | ||||
|                     break; | ||||
|                 case "modules": | ||||
|                     itemId = R.id.modules; | ||||
|                     break; | ||||
|                 case "downloads": | ||||
|                     itemId = R.id.downloads; | ||||
|                     break; | ||||
|                 case "magiskhide": | ||||
|                     itemId = R.id.magiskhide; | ||||
|                     break; | ||||
|                 case "log": | ||||
|                     itemId = R.id.log; | ||||
|                     break; | ||||
|                 case "settings": | ||||
|                     itemId = R.id.settings; | ||||
|                     break; | ||||
|                 case "about": | ||||
|                     itemId = R.id.app_about; | ||||
|                     break; | ||||
|                 case "donation": | ||||
|                     itemId = R.id.donation; | ||||
|                     break; | ||||
|             } | ||||
|         } | ||||
|         navigate(itemId); | ||||
|     } | ||||
|  | ||||
|     public void navigate(int itemId) { | ||||
|         int bak = mDrawerItem; | ||||
|         mDrawerItem = itemId; | ||||
|         navigationView.setCheckedItem(itemId); | ||||
|         switch (itemId) { | ||||
|             case R.id.magisk: | ||||
|                 fromShortcut = false; | ||||
|                 displayFragment(new MagiskFragment(), true); | ||||
|                 break; | ||||
|             case R.id.superuser: | ||||
|                 displayFragment(new SuperuserFragment(), true); | ||||
|                 break; | ||||
|             case R.id.modules: | ||||
|                 displayFragment(new ModulesFragment(), true); | ||||
|                 break; | ||||
|             case R.id.downloads: | ||||
|                 displayFragment(new ReposFragment(), true); | ||||
|                 break; | ||||
|             case R.id.magiskhide: | ||||
|                 displayFragment(new MagiskHideFragment(), true); | ||||
|                 break; | ||||
|             case R.id.log: | ||||
|                 displayFragment(new LogFragment(), false); | ||||
|                 break; | ||||
|             case R.id.settings: | ||||
|                 displayFragment(new SettingsFragment(), true); | ||||
|                 break; | ||||
|             case R.id.app_about: | ||||
|                 startActivity(new Intent(this, Data.classMap.get(AboutActivity.class))); | ||||
|                 mDrawerItem = bak; | ||||
|                 break; | ||||
|             case R.id.donation: | ||||
|                 startActivity(new Intent(this, Data.classMap.get(DonationActivity.class))); | ||||
|                 mDrawerItem = bak; | ||||
|                 break; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void displayFragment(@NonNull Fragment navFragment, boolean setElevation) { | ||||
|         supportInvalidateOptionsMenu(); | ||||
|         getSupportFragmentManager() | ||||
|                 .beginTransaction() | ||||
|                 .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) | ||||
|                 .replace(R.id.content_frame, navFragment) | ||||
|                 .commitNow(); | ||||
|         toolbar.setElevation(setElevation ? toolbarElevation : 0); | ||||
|     } | ||||
| } | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user