You've already forked revanced-patcher
							
							
				mirror of
				https://github.com/revanced/revanced-patcher
				synced 2025-10-29 18:30:51 +01:00 
			
		
		
		
	Compare commits
	
		
			518 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c2e0f57579 | ||
|   | 242e244b18 | ||
|   | f338ebff6c | ||
|   | 00e5950cf2 | ||
|   | 5a0e3841ff | ||
|   | cfb459b832 | ||
|   | 2096306107 | ||
|   | 92eaba8081 | ||
|   | 7be0cd8548 | ||
|   | ab624f04f6 | ||
|   | 21b5c079fb | ||
|   | 5024204046 | ||
|   | a44802ef4e | ||
|   | 4c1c34ad01 | ||
|   | b2aecb726d | ||
|   | 851f9c7885 | ||
|   | ea6fc70caa | ||
|   | a2875d1d64 | ||
|   | 2be6e97817 | ||
|   | 348d0070e7 | ||
|   | d53aacdad4 | ||
|   | f1615b7ab5 | ||
|   | ffb1d880d7 | ||
|   | e95f13ae3e | ||
|   | e1b984d601 | ||
|   | c2dc29e061 | ||
|   | 69f2f20fd9 | ||
|   | 525beda18e | ||
|   | 73d3cbf4ff | ||
|   | 70278dd79d | ||
|   | 5e98e9e30a | ||
|   | ac1aff5a1a | ||
|   | 5481d0c54c | ||
|   | 4604742d0f | ||
|   | 4beb907a61 | ||
|   | 7f44174d91 | ||
|   | d310246852 | ||
|   | dcc989243c | ||
|   | 5227e98abf | ||
|   | 8c4dd5b3a3 | ||
|   | 736b3eebbf | ||
|   | b41a542952 | ||
|   | d21128fe2e | ||
|   | cf4374b8cf | ||
|   | 8a30b0fa10 | ||
|   | 11a911dc67 | ||
|   | 6e3ba7419b | ||
|   | 50a66ccfed | ||
|   | 0be79840b1 | ||
|   | d8b4c60321 | ||
|   | f77e99e817 | ||
|   | ea26c486c0 | ||
|   | bebb734608 | ||
|   | d842f82d07 | ||
|   | 82bab58ac2 | ||
|   | 90b7631d9e | ||
|   | 26d449e6d9 | ||
|   | 49466060e3 | ||
|   | 620ea5b852 | ||
|   | 3e2168a2b2 | ||
|   | 13c77967b1 | ||
|   | f57e571a14 | ||
|   | fe616beb22 | ||
|   | 41257ee87e | ||
|   | 33ed5f0aa3 | ||
|   | d0a57ac00d | ||
|   | b0b2c10665 | ||
|   | cc183062ab | ||
|   | fe8ea9130d | ||
|   | f1c60093cf | ||
|   | 687b884dc4 | ||
|   | ceb6fd51c1 | ||
|   | 0b223bfe65 | ||
|   | 308e95cf62 | ||
|   | db8866212a | ||
|   | 608a05d9aa | ||
|   | 55746ed705 | ||
|   | e33026c538 | ||
|   | ff215620bb | ||
|   | fec31f45da | ||
|   | 7684b70324 | ||
|   | 55a5d3bd4e | ||
|   | 17a4675a8e | ||
|   | 98085d1d45 | ||
|   | bc5c16f112 | ||
|   | f1d7217495 | ||
|   | 64dd1526cd | ||
|   | c9a82608f7 | ||
|   | 9fc42e132c | ||
|   | efa98ece45 | ||
|   | 68e2acebba | ||
|   | 7a7a8fc353 | ||
|   | f8306ac43d | ||
|   | d03591b735 | ||
|   | 4a9184597b | ||
|   | 0a482f8c9a | ||
|   | e7dacfba8c | ||
|   | 2d7fffd4ec | ||
|   | f8baabbcec | ||
|   | 716825f232 | ||
|   | 58bd46750b | ||
|   | 288240f163 | ||
|   | ff02452cb8 | ||
|   | 462fbe2cad | ||
|   | 7aeae93f3d | ||
|   | f1de9b39ef | ||
|   | db5b0ed7be | ||
|   | 9f28a01c03 | ||
|   | 80407b6102 | ||
|   | 287841d806 | ||
|   | 10c3be1195 | ||
|   | 0c0e22013b | ||
|   | f35c8d4446 | ||
|   | 17418d4b9c | ||
|   | ec1fbdf2ae | ||
|   | 56e5a46fd5 | ||
|   | 32e86d44a3 | ||
|   | 7100606dfc | ||
|   | d7eb111460 | ||
|   | 27ea46653e | ||
|   | 12c43072cb | ||
|   | 671aa6d507 | ||
|   | b697bbad2b | ||
|   | f05a404e48 | ||
|   | a46e948b5a | ||
|   | dc09ea639f | ||
|   | 49ed096e85 | ||
|   | 167bd83f4e | ||
|   | aed1eac315 | ||
|   | 54a2f8f16f | ||
|   | 2ca543ffb9 | ||
|   | 58e7f815a5 | ||
|   | 15b38fc841 | ||
|   | e2ca50729d | ||
|   | 6192089b71 | ||
|   | a4212f6bf9 | ||
|   | 124a2e9d3e | ||
|   | f77624b3b9 | ||
|   | a76ac04214 | ||
|   | 0447fa9c28 | ||
|   | 54ac1394a9 | ||
|   | 0b04c73ac5 | ||
|   | 079de45238 | ||
|   | 56ce9ec2f9 | ||
|   | 1b52e4b0f9 | ||
|   | 098c2c1efa | ||
|   | 64343e5a7c | ||
|   | 0caf6caeb9 | ||
|   | 55f6c2a9fc | ||
|   | c6095bc38a | ||
|   | 09cd6aa568 | ||
|   | ebbaafb78e | ||
|   | e6de90d300 | ||
|   | c7922e90d0 | ||
|   | c1f4c0445a | ||
|   | caa634fac6 | ||
|   | f28bfe0dbd | ||
|   | 155e787ff4 | ||
|   | c38f0ef42a | ||
|   | 4456031459 | ||
|   | 5fb59a227f | ||
|   | d9fb241d57 | ||
|   | 642c4ea97e | ||
|   | 8c8a251626 | ||
|   | 5953d6cfb5 | ||
|   | a1962fe600 | ||
|   | 77dbee3d6a | ||
|   | cb5e39d73e | ||
|   | 38ef2f470a | ||
|   | 129d84e108 | ||
|   | affeba76b8 | ||
|   | 6059d3ca26 | ||
|   | 444dee5a16 | ||
|   | d314466ce2 | ||
|   | fdaf9c21c8 | ||
|   | 06c2b76f11 | ||
|   | 3896b30738 | ||
|   | 2c4b88e1a0 | ||
|   | dfc7e1596b | ||
|   | f590436399 | ||
|   | cbfb9ba02f | ||
|   | b4cfe80ad5 | ||
|   | b37906fa35 | ||
|   | 356f1f1553 | ||
|   | e882af74ee | ||
|   | 46875fb28e | ||
|   | 417c3e4234 | ||
|   | 6d2c28807b | ||
|   | 4d6e08a650 | ||
|   | 5cebc1fd30 | ||
|   | ac61731dc6 | ||
|   | 9e4ffabd5c | ||
|   | 3f410bd39f | ||
|   | d51bc32e37 | ||
|   | b7f6aa94cc | ||
|   | ff965e6953 | ||
|   | 468d5d7421 | ||
|   | fc95b28c49 | ||
|   | 69184187d9 | ||
|   | a802d0df46 | ||
|   | 8de30633ae | ||
|   | a1fbb7990f | ||
|   | aa71146b1b | ||
|   | 9fdb8f087f | ||
|   | 670f0153de | ||
|   | 1d7aeca696 | ||
|   | 4e7811ea07 | ||
|   | e11283744a | ||
|   | 91cdfd53ef | ||
|   | bc7d6b9941 | ||
|   | 6b1e0a1656 | ||
|   | 72c9eb2129 | ||
|   | 4bc4b0dc01 | ||
|   | 637d48746f | ||
|   | 9a109c129b | ||
|   | d49e4ee5ea | ||
|   | 30f0ea29a3 | ||
|   | 49930f6565 | ||
|   | 909d89fa8d | ||
|   | 81d1d7f544 | ||
|   | 67b7dff67a | ||
|   | 4b76d19596 | ||
|   | 080fbe9feb | ||
|   | d3721229bf | ||
|   | 86c1c9c772 | ||
|   | c299817193 | ||
|   | fcc1de45ed | ||
|   | a29931f2ec | ||
|   | 3fc6a139ee | ||
|   | 4dd04975d9 | ||
|   | 3b4db3ddb7 | ||
|   | c4a7117ee8 | ||
|   | b4e900fde8 | ||
|   | 9818d730e4 | ||
|   | 11a3378659 | ||
|   | 1bb05f22d3 | ||
|   | 26b70554c4 | ||
|   | 93b29d2e83 | ||
|   | 072986374a | ||
|   | 2c590d212a | ||
|   | 6cc863efb3 | ||
|   | b832812767 | ||
|   | c44558cacd | ||
|   | 6d83a720cd | ||
|   | 8d0dd9c448 | ||
|   | 64020eec49 | ||
|   | 4dedfb85cb | ||
|   | 55d694579a | ||
|   | 86db64edff | ||
|   | 983563efb6 | ||
|   | 37abb2db99 | ||
|   | 5ba0b47e60 | ||
|   | e8f2087a6f | ||
|   | 6ce99f5cdf | ||
|   | 13c0c9cdd3 | ||
|   | 58ffdb60d7 | ||
|   | ba56a6a2ee | ||
|   | ccccf5b1d2 | ||
|   | b507ac0a54 | ||
|   | e985676c2d | ||
|   | f7f4ba6c55 | ||
|   | 4292f43814 | ||
|   | 30bd4fd9fe | ||
|   | 76de39369d | ||
|   | 88a703ce36 | ||
|   | 5938f6b7ea | ||
|   | 5c0c0d6c37 | ||
|   | 0f15077225 | ||
|   | 273dd8d388 | ||
|   | 1795f376ef | ||
|   | e7360a7692 | ||
|   | e1fc86934f | ||
|   | 6b8977f178 | ||
|   | 12c6c73de0 | ||
|   | db62a1607b | ||
|   | 58bb879ef5 | ||
|   | 254912438a | ||
|   | 0e48918bcc | ||
|   | 783ccf8529 | ||
|   | 8fb2f2dc1d | ||
|   | 2a8cc283c7 | ||
|   | 433fe3af9f | ||
|   | c2d89c622e | ||
|   | 02d6ff15fe | ||
|   | f2cb7ee7df | ||
|   | a2ac44dcc1 | ||
|   | 3cf9d74efa | ||
|   | d5f89a903f | ||
|   | 496c2242bc | ||
|   | 98fbff87df | ||
|   | ddb51a1c45 | ||
|   | 8df1155215 | ||
|   | 53f2a61409 | ||
|   | 746544f9d5 | ||
|   | c65c3df11c | ||
|   | b29b8f12b3 | ||
|   | d6945677c4 | ||
|   | aedf4aea08 | ||
|   | dc28d414dc | ||
|   | 9755bab298 | ||
|   | fae4029cfc | ||
|   | 1790f0d706 | ||
|   | 0ba2c51676 | ||
|   | 03cd97b49c | ||
|   | 16a162c1dd | ||
|   | c9bbcf2bf2 | ||
|   | 86e1bf6078 | ||
|   | 1bca84ef0b | ||
|   | e0f8e1b71a | ||
|   | 416d69142f | ||
|   | 426807aeaa | ||
|   | 90cb075a97 | ||
|   | ac2ca8fbd3 | ||
|   | 69e4a49065 | ||
|   | a4a030f2b2 | ||
|   | dcc4ecd237 | ||
|   | 57f3036a96 | ||
|   | 753e55dfc3 | ||
|   | 9d81baf4b4 | ||
|   | 7cb4d4c596 | ||
|   | 2c8565508e | ||
|   | c7f156e4c9 | ||
|   | fcef4342e8 | ||
|   | 72783a5e74 | ||
|   | a379b69eeb | ||
|   | 0a8ccba33e | ||
|   | 519359a9eb | ||
|   | b615ed6aab | ||
|   | d718134ab2 | ||
|   | 5e681ed381 | ||
|   | 6e1b6479b6 | ||
|   | f3c9e28a62 | ||
|   | d5d6f85084 | ||
|   | b8151ebccb | ||
|   | 5650e34432 | ||
|   | c893d16d52 | ||
|   | 34f08bf206 | ||
|   | f02a42610b | ||
|   | c95e6fa92f | ||
|   | fd738e723b | ||
|   | b1d1956323 | ||
|   | 725a8012ac | ||
|   | bb9a73e53b | ||
|   | ef2de35a74 | ||
|   | 2a453d51a8 | ||
|   | 43d6868d1f | ||
|   | cea9379b32 | ||
|   | a12fe7dd9e | ||
|   | efdd01a988 | ||
|   | eafe1c631f | ||
|   | aacf900764 | ||
|   | f82494e9bb | ||
|   | 1e0ffa176e | ||
|   | b7eb2d2249 | ||
|   | b6d6a7591b | ||
|   | 8f1c835299 | ||
|   | a188c16a99 | ||
|   | 3e6804f06c | ||
|   | 526a3d7c35 | ||
|   | 28fc6a2ddd | ||
|   | d4f08d7bff | ||
|   | ca9fe322eb | ||
|   | 239ea0bcaa | ||
|   | 7f02b8df48 | ||
|   | a2052202b2 | ||
|   | 223cea7021 | ||
|   | ac9337f694 | ||
|   | 549651d04a | ||
|   | 966bbd902e | ||
|   | 81e6f8784e | ||
|   | 9c53877888 | ||
|   | 98f8eedecd | ||
|   | 4ed429d25c | ||
|   | 119d05f469 | ||
|   | 2432fde6bf | ||
|   | 49c173dc14 | ||
|   | d83e9372bb | ||
|   | 7e8cd3bede | ||
|   | d67436271d | ||
|   | aa07f35f06 | ||
|   | 77e0536838 | ||
|   | a49e78234b | ||
|   | a3ae825e48 | ||
|   | 146c8504ed | ||
|   | 2eb125ad69 | ||
|   | 6e24a85eab | ||
|   | e4c3e9ffc5 | ||
|   | 4c1778a62f | ||
|   | d99261cdbb | ||
|   | ac1c0f2773 | ||
|   | eddd4ec7ac | ||
|   | 07a2829c65 | ||
|   | 3d77e299d9 | ||
|   | f1336f89e4 | ||
|   | 0502f84c20 | ||
|   | 058d292ad5 | ||
|   | 1029d56a52 | ||
|   | 709b5a0fec | ||
|   | e1accc5041 | ||
|   | 6dbbf2e03e | ||
|   | 16557eeab0 | ||
|   | 6bca3e2bb5 | ||
|   | a263fdfd41 | ||
|   | e4b4bacae8 | ||
|   | cbc97af155 | ||
|   | d5533788e2 | ||
|   | 5a4ea5cd7d | ||
|   | 70f3c8b38c | ||
|   | 6b410a0eea | ||
|   | 73a013d75b | ||
|   | 7159f3db4c | ||
|   | 7d5ecf095c | ||
|   | fa015a424d | ||
|   | dd7dd38357 | ||
|   | 22356f2d26 | ||
|   | 66701f6076 | ||
|   | 6a6ded084e | ||
|   | 5887c69bde | ||
|   | 4102f43b8a | ||
|   | 5c09ef7837 | ||
|   | 3e0bf8c863 | ||
|   | 8f3ecc318c | ||
|   | 365da96e2b | ||
|   | cd68ec4803 | ||
|   | 35265e029c | ||
|   | 9f0a09a756 | ||
|   | e802141df5 | ||
|   | abebc0862c | ||
|   | 96ef150e89 | ||
|   | c5de9e2988 | ||
|   | c391ca648b | ||
|   | 7cf79e68e0 | ||
|   | f07db3c214 | ||
|   | 88bb3a8845 | ||
|   | b9e6bd6775 | ||
|   | cd1b72e078 | ||
|   | 6b889557ab | ||
|   | 4b1be8c647 | ||
|   | 73c893c6e7 | ||
|   | 75b36823b8 | ||
|   | d2d93cd075 | ||
|   | 26b8621ac8 | ||
|   | f365a41741 | ||
|   | 9ec720e983 | ||
|   | 0f432b3fdd | ||
|   | 96cd5618dd | ||
|   | c2a5a55e67 | ||
|   | 6c5de8b414 | ||
|   | ea773cfa56 | ||
|   | a306561b55 | ||
|   | b6dcd88495 | ||
|   | a925650044 | ||
|   | 77bbf6be1f | ||
|   | bd053b7e99 | ||
|   | fd742eba63 | ||
|   | ba9d998681 | ||
|   | 75df245ec3 | ||
|   | 4164cb0dea | ||
|   | 18fe35ae73 | ||
|   | f9bc95f220 | ||
|   | d2f91a8545 | ||
|   | 4016bdc37f | ||
|   | 538b2a8599 | ||
|   | 4aa14bbb85 | ||
|   | d37452997b | ||
|   | db21d5e953 | ||
|   | 4d581811db | ||
|   | 8c502448be | ||
|   | fec16d9442 | ||
|   | 5583904994 | ||
|   | 797286b758 | ||
|   | 4ae9ad09d6 | ||
|   | 447e1ad30e | ||
|   | 843e62ad29 | ||
|   | 9c07ffcc7a | ||
|   | 438321330e | ||
|   | 3ba4be240b | ||
|   | 98ce0abfa9 | ||
|   | db4348c4fa | ||
|   | 4839f87519 | ||
|   | 809862c997 | ||
|   | fd5c878cee | ||
|   | 124332f0e9 | ||
|   | d4cf0cea52 | ||
|   | 76676fb567 | ||
|   | d802ef844e | ||
|   | 90fc547673 | ||
|   | 3813e28ac2 | ||
|   | a2bb4004c7 | ||
|   | a0cb449c60 | ||
|   | e0271790b8 | ||
|   | 4bfd7ebff8 | ||
|   | 2f7e62ef65 | ||
|   | 4485af8036 | ||
|   | 085a3a479d | ||
|   | f75c9a78b8 | ||
|   | 172655bde0 | ||
|   | 456db7289a | ||
|   | e722e3f4f9 | ||
|   | c348c1f0a0 | ||
|   | ed1851013e | ||
|   | e31ac1f132 | ||
|   | 8f78f85e4a | ||
|   | 0be2677519 | ||
|   | b873228ef0 | ||
|   | 639ff1c0ba | ||
|   | f30671ddd1 | ||
|   | 76c45dd7c1 | ||
|   | 1bafb77355 | ||
|   | 25f74dc5e9 | ||
|   | 6e73631d4d | ||
|   | 7761d5b85e | ||
|   | 62aa295e73 | ||
|   | 596ede1b12 | ||
|   | 7debe62738 | ||
|   | 002f84da1a | ||
|   | aff4968e6f | ||
|   | 1d989abd55 | 
							
								
								
									
										3
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| [*.{kt,kts}] | ||||
| ktlint_code_style = intellij_idea | ||||
| ktlint_standard_no-wildcard-imports = disabled | ||||
							
								
								
									
										9
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| # | ||||
| # https://help.github.com/articles/dealing-with-line-endings/ | ||||
| # | ||||
| # Linux start script should use lf | ||||
| /gradlew        text eol=lf | ||||
|  | ||||
| # These are Windows script files and should use crlf | ||||
| *.bat           text eol=crlf | ||||
|  | ||||
							
								
								
									
										60
									
								
								.github/ISSUE_TEMPLATE/bug-issue.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										60
									
								
								.github/ISSUE_TEMPLATE/bug-issue.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,60 +0,0 @@ | ||||
| name: 🐞 Bug report | ||||
| description: Report a very clearly broken issue. | ||||
| title: 'bug: <title>' | ||||
| labels: [bug] | ||||
| body: | ||||
|   - type: markdown | ||||
|     attributes: | ||||
|       value: | | ||||
|         # ReVanced bug report | ||||
|  | ||||
|         Important to note that your issue may have already been reported before. Please check for existing issues [here](https://github.com/revanced/revanced-patcher/labels/bug). | ||||
|  | ||||
|   - type: dropdown | ||||
|     attributes: | ||||
|       label: Type | ||||
|       options: | ||||
|         - Crash | ||||
|         - Cosmetic | ||||
|         - Other | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Bug description | ||||
|       description: How did you find the bug? Any additional details that might help? | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Steps to reproduce | ||||
|       description: Add the steps to reproduce this bug including your environment. | ||||
|       placeholder: Step 1. Download some files. Step 2. ... | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Relevant log output | ||||
|       description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. | ||||
|       render: shell | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Screenshots or videos | ||||
|       description: Add screenshots or videos that show the bug here. | ||||
|       placeholder: Drag and drop the screenshots/videos into this box. | ||||
|     validations: | ||||
|       required: false | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Solution | ||||
|       description: If applicable, add a possible solution. | ||||
|     validations: | ||||
|       required: false | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Additional context | ||||
|       description: Add additional context here. | ||||
|     validations: | ||||
|       required: false | ||||
							
								
								
									
										109
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| name: 🐞 Bug report | ||||
| description: Report a bug or an issue. | ||||
| title: "bug: " | ||||
| labels: ["Bug report"] | ||||
| body: | ||||
|   - type: markdown | ||||
|     attributes: | ||||
|       value: | | ||||
|         <p align="center"> | ||||
|           <picture> | ||||
|             <source | ||||
|               width="256px" | ||||
|               media="(prefers-color-scheme: dark)" | ||||
|               srcset="https://raw.githubusercontent.com/revanced/revanced-patcher/main/assets/revanced-headline/revanced-headline-vertical-dark.svg" | ||||
|             > | ||||
|             <img  | ||||
|               width="256px" | ||||
|               src="https://raw.githubusercontent.com/revanced/revanced-patcher/main/assets/revanced-headline/revanced-headline-vertical-light.svg" | ||||
|             > | ||||
|           </picture> | ||||
|           <br> | ||||
|           <a href="https://revanced.app/"> | ||||
|              <picture> | ||||
|                  <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/revanced/revanced-patcher/main/assets/revanced-logo/revanced-logo.svg" /> | ||||
|                  <img height="24px" src="https://raw.githubusercontent.com/revanced/revanced-patcher/main/assets/revanced-logo/revanced-logo.svg" /> | ||||
|              </picture> | ||||
|            </a>    | ||||
|            <a href="https://github.com/ReVanced"> | ||||
|                <picture> | ||||
|                    <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" /> | ||||
|                    <img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" /> | ||||
|                </picture> | ||||
|            </a>    | ||||
|            <a href="http://revanced.app/discord"> | ||||
|                <picture> | ||||
|                    <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|                    <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|                </picture> | ||||
|            </a>    | ||||
|            <a href="https://reddit.com/r/revancedapp"> | ||||
|                <picture> | ||||
|                    <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|                    <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|                </picture> | ||||
|            </a>    | ||||
|            <a href="https://t.me/app_revanced"> | ||||
|               <picture> | ||||
|                  <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|                  <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|               </picture> | ||||
|            </a>    | ||||
|            <a href="https://x.com/revancedapp"> | ||||
|               <picture> | ||||
|                  <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png"> | ||||
|                  <img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" /> | ||||
|               </picture> | ||||
|            </a>    | ||||
|            <a href="https://www.youtube.com/@ReVanced"> | ||||
|               <picture> | ||||
|                  <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|                  <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|              </picture> | ||||
|            </a> | ||||
|            <br> | ||||
|            <br> | ||||
|            Continuing the legacy of Vanced | ||||
|         </p> | ||||
|  | ||||
|         # ReVanced Patcher bug report | ||||
|  | ||||
|         Before creating a new bug report, please keep the following in mind: | ||||
|  | ||||
|         - **Do not submit a duplicate bug report**: Search for existing bug reports [here](https://github.com/ReVanced/revanced-patcher/issues?q=label%3A%22Bug+report%22). | ||||
|         - **Review the contribution guidelines**: Make sure your bug report adheres to it. You can find the guidelines [here](https://github.com/ReVanced/revanced-patcher/blob/main/CONTRIBUTING.md). | ||||
|         - **Do not use the issue page for support**: If you need help or have questions, check out other platforms on [revanced.app](https://revanced.app). | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Bug description | ||||
|       description: | | ||||
|         - Describe your bug in detail | ||||
|         - Add steps to reproduce the bug if possible (Step 1. ... Step 2. ...) | ||||
|         - Add images and videos if possible | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Error logs | ||||
|       description: Exceptions can be captured by running `logcat | grep AndroidRuntime` in a shell. | ||||
|       render: shell | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Solution | ||||
|       description: If applicable, add a possible solution to the bug. | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Additional context | ||||
|       description: Add additional context here. | ||||
|   - type: checkboxes | ||||
|     id: acknowledgements | ||||
|     attributes: | ||||
|       label: Acknowledgements | ||||
|       description: Your bug report will be closed if you don't follow the checklist below. | ||||
|       options: | ||||
|         - label: I have checked all open and closed bug reports and this is not a duplicate. | ||||
|           required: true | ||||
|         - label: I have chosen an appropriate title. | ||||
|           required: true | ||||
|         - label: All requested information has been provided properly. | ||||
|           required: true | ||||
							
								
								
									
										46
									
								
								.github/ISSUE_TEMPLATE/feature-issue.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								.github/ISSUE_TEMPLATE/feature-issue.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,46 +0,0 @@ | ||||
| name: ⭐ Feature request | ||||
| description: Create a detailed feature request. | ||||
| title: 'feat: <title>' | ||||
| labels: [feature-request] | ||||
| body: | ||||
|   - type: markdown | ||||
|     attributes: | ||||
|       value: | | ||||
|         # ReVanced feature request | ||||
|          | ||||
|         Do not submit requests for patches here. Please submit them [here](https://github.com/orgs/revanced/discussions/categories/patches) instead. | ||||
|         Important to note that your feature request may have already been made before. Please check for existing feature requests [here](https://github.com/revanced/revanced-patcher/labels/feature-request). | ||||
|  | ||||
|   - type: dropdown | ||||
|     attributes: | ||||
|       label: Type | ||||
|       options: | ||||
|         - Functionality | ||||
|         - Cosmetic | ||||
|         - Other | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Issue | ||||
|       description: What is the current problem. Why does it require a feature request? | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Feature | ||||
|       description: Describe your feature in detail. How does it solve the issue? | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Motivation | ||||
|       description: Why should your feature should be considered? | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Additional context | ||||
|       description: Add additional context here. | ||||
|     validations: | ||||
|       required: false | ||||
							
								
								
									
										107
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,107 @@ | ||||
| name: ⭐ Feature request | ||||
| description: Create a detailed request for a new feature. | ||||
| title: "feat: " | ||||
| labels: ["Feature request"] | ||||
| body: | ||||
|   - type: markdown | ||||
|     attributes: | ||||
|       value: | | ||||
|         <p align="center"> | ||||
|           <picture> | ||||
|             <source | ||||
|               width="256px" | ||||
|               media="(prefers-color-scheme: dark)" | ||||
|               srcset="https://raw.githubusercontent.com/revanced/revanced-patcher/main/assets/revanced-headline/revanced-headline-vertical-dark.svg" | ||||
|             > | ||||
|             <img  | ||||
|               width="256px" | ||||
|               src="https://raw.githubusercontent.com/revanced/revanced-patcher/main/assets/revanced-headline/revanced-headline-vertical-light.svg" | ||||
|             > | ||||
|           </picture> | ||||
|           <br> | ||||
|           <a href="https://revanced.app/"> | ||||
|              <picture> | ||||
|                  <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/revanced/revanced-patcher/main/assets/revanced-logo/revanced-logo.svg" /> | ||||
|                  <img height="24px" src="https://raw.githubusercontent.com/revanced/revanced-patcher/main/assets/revanced-logo/revanced-logo.svg" /> | ||||
|              </picture> | ||||
|            </a>    | ||||
|            <a href="https://github.com/ReVanced"> | ||||
|                <picture> | ||||
|                    <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" /> | ||||
|                    <img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" /> | ||||
|                </picture> | ||||
|            </a>    | ||||
|            <a href="http://revanced.app/discord"> | ||||
|                <picture> | ||||
|                    <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|                    <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|                </picture> | ||||
|            </a>    | ||||
|            <a href="https://reddit.com/r/revancedapp"> | ||||
|                <picture> | ||||
|                    <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|                    <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|                </picture> | ||||
|            </a>    | ||||
|            <a href="https://t.me/app_revanced"> | ||||
|               <picture> | ||||
|                  <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|                  <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|               </picture> | ||||
|            </a>    | ||||
|            <a href="https://x.com/revancedapp"> | ||||
|               <picture> | ||||
|                  <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png"> | ||||
|                  <img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" /> | ||||
|               </picture> | ||||
|            </a>    | ||||
|            <a href="https://www.youtube.com/@ReVanced"> | ||||
|               <picture> | ||||
|                  <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|                  <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|              </picture> | ||||
|            </a> | ||||
|            <br> | ||||
|            <br> | ||||
|            Continuing the legacy of Vanced | ||||
|         </p> | ||||
|  | ||||
|         # ReVanced Patcher feature request | ||||
|  | ||||
|         Before creating a new feature request, please keep the following in mind: | ||||
|  | ||||
|         - **Do not submit a duplicate feature request**: Search for existing feature requests [here](https://github.com/ReVanced/revanced-patcher/issues?q=label%3A%22Feature+request%22). | ||||
|         - **Review the contribution guidelines**: Make sure your feature request adheres to it. You can find the guidelines [here](https://github.com/ReVanced/revanced-patcher/blob/main/CONTRIBUTING.md). | ||||
|         - **Do not use the issue page for support**: If you need help or have questions, check out other platforms on [revanced.app](https://revanced.app). | ||||
|  | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Feature description | ||||
|       description: | | ||||
|         - Describe your feature in detail | ||||
|         - Add images, videos, links, examples, references, etc. if possible | ||||
|         - Add the target application name in case you request a new patch | ||||
|   - type: textarea | ||||
|     attributes: | ||||
|       label: Motivation | ||||
|       description: | | ||||
|         A strong motivation is necessary for a feature request to be considered. | ||||
|  | ||||
|         - Why should this feature be implemented?  | ||||
|         - What is the explicit use case? | ||||
|         - What are the benefits? | ||||
|         - What makes this feature important? | ||||
|     validations: | ||||
|       required: true | ||||
|   - type: checkboxes | ||||
|     id: acknowledgements | ||||
|     attributes: | ||||
|       label: Acknowledgements | ||||
|       description: Your feature request will be closed if you don't follow the checklist below. | ||||
|       options: | ||||
|         - label: I have checked all open and closed feature requests and this is not a duplicate. | ||||
|           required: true | ||||
|         - label: I have chosen an appropriate title. | ||||
|           required: true | ||||
|         - label: All requested information has been provided properly. | ||||
|           required: true | ||||
							
								
								
									
										2
									
								
								.github/config.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.github/config.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| firstPRMergeComment: > | ||||
|   Thank you for contributing to ReVanced. Join us on [Discord](https://revanced.app/discord) to receive a role for your contribution. | ||||
							
								
								
									
										22
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| version: 2 | ||||
| updates: | ||||
|   - package-ecosystem: github-actions | ||||
|     labels: [] | ||||
|     directory: / | ||||
|     target-branch: dev | ||||
|     schedule: | ||||
|       interval: monthly | ||||
|  | ||||
|   - package-ecosystem: npm | ||||
|     labels: [] | ||||
|     directory: / | ||||
|     target-branch: dev | ||||
|     schedule: | ||||
|       interval: monthly | ||||
|  | ||||
|   - package-ecosystem: gradle | ||||
|     labels: [] | ||||
|     directory: / | ||||
|     target-branch: dev | ||||
|     schedule: | ||||
|       interval: monthly | ||||
							
								
								
									
										25
									
								
								.github/workflows/build_pull_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/build_pull_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| name: Build pull request | ||||
|  | ||||
| on: | ||||
|   workflow_dispatch: | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - dev | ||||
|  | ||||
| jobs: | ||||
|   release: | ||||
|     name: Build | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           fetch-depth: 0 | ||||
|  | ||||
|       - name: Cache Gradle | ||||
|         uses: burrunan/gradle-cache-action@v1 | ||||
|  | ||||
|       - name: Build | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         run: ./gradlew build --no-daemon | ||||
							
								
								
									
										26
									
								
								.github/workflows/open_pull_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								.github/workflows/open_pull_request.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| name: Open a PR to main | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - dev | ||||
|   workflow_dispatch: | ||||
|  | ||||
| env: | ||||
|   MESSAGE: Merge branch `${{ github.head_ref || github.ref_name }}` to `main` | ||||
|  | ||||
| jobs: | ||||
|   pull-request: | ||||
|     name: Open pull request | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - name: Open pull request | ||||
|         uses: repo-sync/pull-request@v2 | ||||
|         with: | ||||
|           destination_branch: 'main' | ||||
|           pr_title: 'chore: ${{ env.MESSAGE }}' | ||||
|           pr_body: 'This pull request will ${{ env.MESSAGE }}.' | ||||
|           pr_draft: true | ||||
							
								
								
									
										53
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,40 +1,53 @@ | ||||
| name: Release | ||||
|  | ||||
| on: | ||||
|   workflow_dispatch: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|       - dev | ||||
|   pull_request: | ||||
|     branches: | ||||
|       - main | ||||
|       - dev | ||||
|  | ||||
| jobs: | ||||
|   release: | ||||
|     name: Release | ||||
|     permissions: | ||||
|       contents: write | ||||
|       packages: write | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v2 | ||||
|         uses: actions/checkout@v4 | ||||
|         with: | ||||
|           # Make sure the release step uses its own credentials: | ||||
|           # https://github.com/cycjimmy/semantic-release-action#private-packages | ||||
|           persist-credentials: false | ||||
|           fetch-depth: 0 | ||||
|       - name: Setup JDK | ||||
|         uses: actions/setup-java@v2 | ||||
|         with: | ||||
|           java-version: '17' | ||||
|           distribution: 'adopt' | ||||
|           cache: gradle | ||||
|       - name: Setup Node.js | ||||
|         uses: actions/setup-node@v2 | ||||
|         with: | ||||
|           node-version: "lts/*" | ||||
|       - name: Build with Gradle | ||||
|  | ||||
|       - name: Cache Gradle | ||||
|         uses: burrunan/gradle-cache-action@v1 | ||||
|  | ||||
|       - name: Build | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         run: ./gradlew build | ||||
|       - name: Setup semantic-release | ||||
|         run: npm install -g semantic-release @semantic-release/git @semantic-release/changelog gradle-semantic-release-plugin -D | ||||
|         run: ./gradlew build clean | ||||
|  | ||||
|       - name: Setup Node.js | ||||
|         uses: actions/setup-node@v4 | ||||
|         with: | ||||
|           node-version: "lts/*" | ||||
|           cache: 'npm' | ||||
|  | ||||
|       - name: Install dependencies | ||||
|         run: npm install | ||||
|  | ||||
|       - name: Import GPG key | ||||
|         uses: crazy-max/ghaction-import-gpg@v6 | ||||
|         with: | ||||
|           gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} | ||||
|           passphrase: ${{ secrets.GPG_PASSPHRASE }} | ||||
|           fingerprint: ${{ vars.GPG_FINGERPRINT }} | ||||
|  | ||||
|       - name: Release | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         run: npx semantic-release | ||||
|         run: npm exec semantic-release | ||||
|   | ||||
							
								
								
									
										19
									
								
								.github/workflows/update_documentation.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/update_documentation.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| name: Update documentation | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     paths: | ||||
|       - docs/** | ||||
|  | ||||
| jobs: | ||||
|   trigger: | ||||
|     runs-on: ubuntu-latest | ||||
|     name: Dispatch event to documentation repository | ||||
|     if: github.ref == 'refs/heads/main' | ||||
|     steps: | ||||
|       - uses: peter-evans/repository-dispatch@v3 | ||||
|         with: | ||||
|           token: ${{ secrets.DOCUMENTATION_REPO_ACCESS_TOKEN  }} | ||||
|           repository: revanced/revanced-documentation | ||||
|           event-type: update-documentation | ||||
|           client-payload: '{"repo": "${{ github.event.repository.name }}", "ref": "${{ github.ref }}"}' | ||||
							
								
								
									
										7
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -74,6 +74,7 @@ cmake-build-*/ | ||||
|  | ||||
| # IntelliJ | ||||
| out/ | ||||
| .idea/ | ||||
|  | ||||
| # mpeltonen/sbt-idea plugin | ||||
| .idea_modules/ | ||||
| @@ -115,3 +116,9 @@ gradle-app.setting | ||||
|  | ||||
| # Avoid ignoring test resources | ||||
| !src/test/resources/* | ||||
|  | ||||
| # Dependency directories | ||||
| node_modules/ | ||||
|  | ||||
| # Gradle props, to avoid sharing the gpr key | ||||
| gradle.properties | ||||
|   | ||||
							
								
								
									
										8
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,8 +0,0 @@ | ||||
| # Default ignored files | ||||
| /shelf/ | ||||
| /workspace.xml | ||||
| # Editor-based HTTP Client requests | ||||
| /httpRequests/ | ||||
| # Datasource local storage ignored files | ||||
| /dataSources/ | ||||
| /dataSources.local.xml | ||||
							
								
								
									
										10
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										10
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,10 +0,0 @@ | ||||
| <component name="ProjectCodeStyleConfiguration"> | ||||
|   <code_scheme name="Project" version="173"> | ||||
|     <JetCodeStyleSettings> | ||||
|       <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> | ||||
|     </JetCodeStyleSettings> | ||||
|     <codeStyleSettings language="kotlin"> | ||||
|       <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> | ||||
|     </codeStyleSettings> | ||||
|   </code_scheme> | ||||
| </component> | ||||
							
								
								
									
										5
									
								
								.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										5
									
								
								.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,5 +0,0 @@ | ||||
| <component name="ProjectCodeStyleConfiguration"> | ||||
|   <state> | ||||
|     <option name="USE_PER_PROJECT_SETTINGS" value="true" /> | ||||
|   </state> | ||||
| </component> | ||||
							
								
								
									
										7
									
								
								.idea/discord.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										7
									
								
								.idea/discord.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,7 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="DiscordProjectSettings"> | ||||
|     <option name="show" value="PROJECT_FILES" /> | ||||
|     <option name="description" value="" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										15
									
								
								.idea/git_toolbox_prj.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										15
									
								
								.idea/git_toolbox_prj.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,15 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="GitToolBoxProjectSettings"> | ||||
|     <option name="commitMessageIssueKeyValidationOverride"> | ||||
|       <BoolValueOverride> | ||||
|         <option name="enabled" value="true" /> | ||||
|       </BoolValueOverride> | ||||
|     </option> | ||||
|     <option name="commitMessageValidationEnabledOverride"> | ||||
|       <BoolValueOverride> | ||||
|         <option name="enabled" value="true" /> | ||||
|       </BoolValueOverride> | ||||
|     </option> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										6
									
								
								.idea/inspectionProfiles/Project_Default.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								.idea/inspectionProfiles/Project_Default.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +0,0 @@ | ||||
| <component name="InspectionProjectProfileManager"> | ||||
|   <profile version="1.0"> | ||||
|     <option name="myName" value="Project Default" /> | ||||
|     <inspection_tool class="UnusedSymbol" enabled="false" level="WARNING" enabled_by_default="false" /> | ||||
|   </profile> | ||||
| </component> | ||||
							
								
								
									
										10
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										10
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,10 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="ExternalStorageConfigurationManager" enabled="true" /> | ||||
|   <component name="FrameworkDetectionExcludesConfiguration"> | ||||
|     <file type="web" url="file://$PROJECT_DIR$" /> | ||||
|   </component> | ||||
|   <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="azul-17" project-jdk-type="JavaSDK"> | ||||
|     <output url="file://$PROJECT_DIR$/out" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										12
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
								
							| @@ -1,12 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="CommitMessageInspectionProfile"> | ||||
|     <profile version="1.0"> | ||||
|       <inspection_tool class="CommitFormat" enabled="true" level="WARNING" enabled_by_default="true" /> | ||||
|       <inspection_tool class="CommitNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" /> | ||||
|     </profile> | ||||
|   </component> | ||||
|   <component name="VcsDirectoryMappings"> | ||||
|     <mapping directory="$PROJECT_DIR$" vcs="Git" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										25
									
								
								.releaserc
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								.releaserc
									
									
									
									
									
								
							| @@ -7,11 +7,13 @@ | ||||
|     } | ||||
|   ], | ||||
|   "plugins": [ | ||||
|     ["@semantic-release/commit-analyzer", { | ||||
|     [ | ||||
|       "@semantic-release/commit-analyzer", { | ||||
|         "releaseRules": [ | ||||
|         {"type": "build", "release": "patch"} | ||||
|           { "type": "build", "scope": "Needs bump", "release": "patch" } | ||||
|         ] | ||||
|     }], | ||||
|       } | ||||
|     ], | ||||
|     "@semantic-release/release-notes-generator", | ||||
|     "@semantic-release/changelog", | ||||
|     "gradle-semantic-release-plugin", | ||||
| @@ -21,9 +23,22 @@ | ||||
|         "assets": [ | ||||
|           "CHANGELOG.md", | ||||
|           "gradle.properties" | ||||
|         ] | ||||
|         ], | ||||
|         "message": "chore: Release v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" | ||||
|       } | ||||
|     ], | ||||
|     "@semantic-release/github" | ||||
|     [ | ||||
|       "@saithodev/semantic-release-backmerge", | ||||
|       { | ||||
|         backmergeBranches: [{"from": "main", "to": "dev"}], | ||||
|         clearWorkspace: true | ||||
|       } | ||||
|     ], | ||||
|     [ | ||||
|         "@semantic-release/github", | ||||
|         { | ||||
|             successComment: false | ||||
|         } | ||||
|     ] | ||||
|   ] | ||||
| } | ||||
|   | ||||
							
								
								
									
										1426
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										1426
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										99
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								CONTRIBUTING.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,99 @@ | ||||
| <p align="center"> | ||||
|   <picture> | ||||
|     <source | ||||
|       width="256px" | ||||
|       media="(prefers-color-scheme: dark)" | ||||
|       srcset="assets/revanced-headline/revanced-headline-vertical-dark.svg" | ||||
|     > | ||||
|     <img  | ||||
|       width="256px" | ||||
|       src="assets/revanced-headline/revanced-headline-vertical-light.svg" | ||||
|     > | ||||
|   </picture> | ||||
|   <br> | ||||
|   <a href="https://revanced.app/"> | ||||
|      <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="assets/revanced-logo/revanced-logo.svg" /> | ||||
|          <img height="24px" src="assets/revanced-logo/revanced-logo.svg" /> | ||||
|      </picture> | ||||
|    </a>    | ||||
|    <a href="https://github.com/ReVanced"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" /> | ||||
|            <img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="http://revanced.app/discord"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|            <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="https://reddit.com/r/revancedapp"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|            <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="https://t.me/app_revanced"> | ||||
|       <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|       </picture> | ||||
|    </a>    | ||||
|    <a href="https://x.com/revancedapp"> | ||||
|       <picture> | ||||
|          <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png"> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" /> | ||||
|       </picture> | ||||
|    </a>    | ||||
|    <a href="https://www.youtube.com/@ReVanced"> | ||||
|       <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|      </picture> | ||||
|    </a> | ||||
|    <br> | ||||
|    <br> | ||||
|    Continuing the legacy of Vanced | ||||
| </p> | ||||
|  | ||||
| # 👋 Contribution guidelines | ||||
|  | ||||
| This document describes how to contribute to ReVanced Patcher. | ||||
|  | ||||
| ## 📖 Resources to help you get started | ||||
|  | ||||
| - The [documentation](https://github.com/ReVanced/revanced-patcher/tree/docs/docs) contains the fundamentals | ||||
|   of ReVanced Patcher and how to use ReVanced Patcher to create patches | ||||
| - [Our backlog](https://github.com/orgs/ReVanced/projects/12) is where we keep track of what we're working on | ||||
| - [Issues](https://github.com/ReVanced/revanced-patcher/issues) are where we keep track of bugs and feature requests | ||||
|  | ||||
| ## 🙏 Submitting a feature request | ||||
|  | ||||
| Features can be requested by opening an issue using the | ||||
| [Feature request issue template](https://github.com/ReVanced/revanced-patcher/issues/new?assignees=&labels=Feature+request&projects=&template=feature_request.yml&title=feat%3A+). | ||||
|  | ||||
| > **Note** | ||||
| > Requests can be accepted or rejected at the discretion of maintainers of ReVanced Patcher. | ||||
| > Good motivation has to be provided for a request to be accepted. | ||||
|  | ||||
| ## 🐞 Submitting a bug report | ||||
|  | ||||
| If you encounter a bug while using ReVanced Patcher, open an issue using the | ||||
| [Bug report issue template](https://github.com/ReVanced/revanced-patcher/issues/new?assignees=&labels=Bug+report&projects=&template=bug_report.yml&title=bug%3A+). | ||||
|  | ||||
| ## 📝 How to contribute | ||||
|  | ||||
| 1. Before contributing, it is recommended to open an issue to discuss your change | ||||
|    with the maintainers of ReVanced Patcher. This will help you determine whether your change is acceptable | ||||
|    and whether it is worth your time to implement it | ||||
| 2. Development happens on the `dev` branch. Fork the repository and create your branch from `dev` | ||||
| 3. Commit your changes | ||||
| 4. Submit a pull request to the `dev` branch of the repository and reference issues | ||||
|    that your pull request closes in the description of your pull request | ||||
| 5. Our team will review your pull request and provide feedback. Once your pull request is approved, | ||||
|    it will be merged into the `dev` branch and will be included in the next release of ReVanced Patcher | ||||
|  | ||||
| ❤️ Thank you for considering contributing to ReVanced Patcher,   | ||||
| ReVanced | ||||
							
								
								
									
										127
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										127
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,2 +1,125 @@ | ||||
| # Patcher | ||||
| Patcher framework used in the ReVanced project. | ||||
| <p align="center"> | ||||
|   <picture> | ||||
|     <source | ||||
|       width="256px" | ||||
|       media="(prefers-color-scheme: dark)" | ||||
|       srcset="assets/revanced-headline/revanced-headline-vertical-dark.svg" | ||||
|     > | ||||
|     <img  | ||||
|       width="256px" | ||||
|       src="assets/revanced-headline/revanced-headline-vertical-light.svg" | ||||
|     > | ||||
|   </picture> | ||||
|   <br> | ||||
|   <a href="https://revanced.app/"> | ||||
|      <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="assets/revanced-logo/revanced-logo.svg" /> | ||||
|          <img height="24px" src="assets/revanced-logo/revanced-logo.svg" /> | ||||
|      </picture> | ||||
|    </a>    | ||||
|    <a href="https://github.com/ReVanced"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" /> | ||||
|            <img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="http://revanced.app/discord"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|            <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="https://reddit.com/r/revancedapp"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|            <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="https://t.me/app_revanced"> | ||||
|       <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|       </picture> | ||||
|    </a>    | ||||
|    <a href="https://x.com/revancedapp"> | ||||
|       <picture> | ||||
|          <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png"> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" /> | ||||
|       </picture> | ||||
|    </a>    | ||||
|    <a href="https://www.youtube.com/@ReVanced"> | ||||
|       <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|      </picture> | ||||
|    </a> | ||||
|    <br> | ||||
|    <br> | ||||
|    Continuing the legacy of Vanced | ||||
| </p> | ||||
|  | ||||
| # 💉 ReVanced Patcher | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ReVanced Patcher used to patch Android applications. | ||||
|  | ||||
| ## ❓ About | ||||
|  | ||||
| ReVanced Patcher is a library that is used to patch Android applications.   | ||||
| It powers [ReVanced Manager](https://github.com/ReVanced/revanced-manager), | ||||
| [ReVanced CLI](https://github.com/ReVanced/revanced-cli) | ||||
| and [ReVanced Library](https://github.com/ReVanced/revanced-library) and a rich set of patches have been developed | ||||
| using ReVanced Patcher in the [ReVanced Patches](https://github.com/ReVanced/revanced-patches) repository. | ||||
|  | ||||
| ## 💪 Features | ||||
|  | ||||
| Some of the features the ReVanced Patcher provides are: | ||||
|  | ||||
| - 🔧 **Patch Dalvik VM bytecode**: Disassemble and assemble Dalvik bytecode | ||||
| - 📦 **Patch APK resources**: Decode and build Android APK resources | ||||
| - 📂 **Patch arbitrary APK files**: Read and write arbitrary files directly from and to APK files | ||||
| - 🧩 **Write modular patches**: Extensive API to write modular patches that can patch Dalvik VM bytecode, | ||||
| APK resources and arbitrary APK files | ||||
|  | ||||
| ## 🚀 How to get started | ||||
|  | ||||
| To use ReVanced Patcher in your project, follow these steps: | ||||
|  | ||||
| 1. [Add the repository](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry#using-a-published-package) | ||||
| to your project | ||||
| 2. Add the dependency to your project: | ||||
|  | ||||
|    ```kt | ||||
|     dependencies { | ||||
|         implementation("app.revanced:revanced-patcher:{$version}") | ||||
|     } | ||||
|    ``` | ||||
|  | ||||
| For a minimal project configuration,  | ||||
| see [ReVanced Patches template](https://github.com/ReVanced/revanced-patches-template). | ||||
|  | ||||
| ## 📚 Everything else | ||||
|  | ||||
| ### 📙 Contributing | ||||
|  | ||||
| Thank you for considering contributing to ReVanced Patcher. | ||||
| You can find the contribution guidelines [here](CONTRIBUTING.md). | ||||
|  | ||||
| ### 🛠️ Building | ||||
|  | ||||
| To build ReVanced Patcher, | ||||
| you can follow the [ReVanced documentation](https://github.com/ReVanced/revanced-documentation). | ||||
|  | ||||
| ### 📃 Documentation | ||||
|  | ||||
| The documentation contains the fundamentals of ReVanced Patcher and how to use ReVanced Patcher to create patches. | ||||
| You can find it [here](https://github.com/ReVanced/revanced-patcher/tree/main/docs). | ||||
|  | ||||
| ## 📜 Licence | ||||
|  | ||||
| ReVanced Patcher is licensed under the GPLv3 license. Please see the [licence file](LICENSE) for more information. | ||||
| [tl;dr](https://www.tldrlegal.com/license/gnu-general-public-license-v3-gpl-3) you may copy, distribute and modify ReVanced Patcher as long as you track changes/dates in source files. | ||||
| Any modifications to ReVanced Patcher must also be made available under the GPL, | ||||
| along with build & install instructions. | ||||
|   | ||||
							
								
								
									
										872
									
								
								api/revanced-patcher.api
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										872
									
								
								api/revanced-patcher.api
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| After Width: | Height: | Size: 11 KiB | 
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| After Width: | Height: | Size: 11 KiB | 
							
								
								
									
										1
									
								
								assets/revanced-logo/revanced-logo.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								assets/revanced-logo/revanced-logo.svg
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| After Width: | Height: | Size: 2.8 KiB | 
							
								
								
									
										112
									
								
								build.gradle.kts
									
									
									
									
									
								
							
							
						
						
									
										112
									
								
								build.gradle.kts
									
									
									
									
									
								
							| @@ -1,36 +1,19 @@ | ||||
| import org.jetbrains.kotlin.gradle.dsl.JvmTarget | ||||
|  | ||||
| plugins { | ||||
|     kotlin("jvm") version "1.7.0" | ||||
|     java | ||||
|     alias(libs.plugins.kotlin) | ||||
|     alias(libs.plugins.binary.compatibility.validator) | ||||
|     `maven-publish` | ||||
|     signing | ||||
| } | ||||
|  | ||||
| group = "app.revanced" | ||||
|  | ||||
| val githubUsername: String = project.findProperty("gpr.user") as? String ?: System.getenv("GITHUB_ACTOR") | ||||
| val githubPassword: String = project.findProperty("gpr.key") as? String ?: System.getenv("GITHUB_TOKEN") | ||||
|  | ||||
| repositories { | ||||
|     mavenCentral() | ||||
|     maven { | ||||
|         url = uri("https://maven.pkg.github.com/revanced/multidexlib2") | ||||
|         credentials { | ||||
|             username = githubUsername | ||||
|             password = githubPassword | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
|     implementation("xpp3:xpp3:1.1.4c") | ||||
|     implementation("org.smali:smali:2.5.2") | ||||
|     implementation("app.revanced:multidexlib2:2.5.2.r2") | ||||
|     implementation("org.apktool:apktool-lib:2.7.0-SNAPSHOT") | ||||
|  | ||||
|     implementation(kotlin("reflect")) | ||||
|     testImplementation(kotlin("test")) | ||||
| } | ||||
|  | ||||
| tasks { | ||||
|     processResources { | ||||
|         expand("projectVersion" to project.version) | ||||
|     } | ||||
|  | ||||
|     test { | ||||
|         useJUnitPlatform() | ||||
|         testLogging { | ||||
| @@ -39,13 +22,51 @@ tasks { | ||||
|     } | ||||
| } | ||||
|  | ||||
| repositories { | ||||
|     mavenCentral() | ||||
|     google() | ||||
|     maven { | ||||
|         // A repository must be specified for some reason. "registry" is a dummy. | ||||
|         url = uri("https://maven.pkg.github.com/revanced/registry") | ||||
|         credentials { | ||||
|             username = project.findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR") | ||||
|             password = project.findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN") | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
|     // TODO: Convert project to KMP. | ||||
|     compileOnly(libs.android) { | ||||
|         // Exclude, otherwise the org.w3c.dom API breaks. | ||||
|         exclude(group = "xerces", module = "xmlParserAPIs") | ||||
|     } | ||||
|  | ||||
|     implementation(libs.apktool.lib) | ||||
|     implementation(libs.kotlin.reflect) | ||||
|     implementation(libs.kotlinx.coroutines.core) | ||||
|     implementation(libs.multidexlib2) | ||||
|     implementation(libs.smali) | ||||
|     implementation(libs.xpp3) | ||||
|  | ||||
|     testImplementation(libs.mockk) | ||||
|     testImplementation(libs.kotlin.test) | ||||
| } | ||||
|  | ||||
| kotlin { | ||||
|     compilerOptions { | ||||
|         jvmTarget.set(JvmTarget.JVM_11) | ||||
|     } | ||||
| } | ||||
|  | ||||
| java { | ||||
|     targetCompatibility = JavaVersion.VERSION_11 | ||||
|  | ||||
|     withSourcesJar() | ||||
| } | ||||
|  | ||||
| publishing { | ||||
|     repositories { | ||||
|         if (System.getenv("GITHUB_ACTOR") != null) | ||||
|         maven { | ||||
|             name = "GitHubPackages" | ||||
|             url = uri("https://maven.pkg.github.com/revanced/revanced-patcher") | ||||
| @@ -54,12 +75,43 @@ publishing { | ||||
|                 password = System.getenv("GITHUB_TOKEN") | ||||
|             } | ||||
|         } | ||||
|         else | ||||
|             mavenLocal() | ||||
|     } | ||||
|  | ||||
|     publications { | ||||
|         register<MavenPublication>("gpr") { | ||||
|         create<MavenPublication>("revanced-patcher-publication") { | ||||
|             from(components["java"]) | ||||
|  | ||||
|             version = project.version.toString() | ||||
|  | ||||
|             pom { | ||||
|                 name = "ReVanced Patcher" | ||||
|                 description = "Patcher used by ReVanced." | ||||
|                 url = "https://revanced.app" | ||||
|  | ||||
|                 licenses { | ||||
|                     license { | ||||
|                         name = "GNU General Public License v3.0" | ||||
|                         url = "https://www.gnu.org/licenses/gpl-3.0.en.html" | ||||
|                     } | ||||
|                 } | ||||
|                 developers { | ||||
|                     developer { | ||||
|                         id = "ReVanced" | ||||
|                         name = "ReVanced" | ||||
|                         email = "contact@revanced.app" | ||||
|                     } | ||||
|                 } | ||||
|                 scm { | ||||
|                     connection = "scm:git:git://github.com/revanced/revanced-patcher.git" | ||||
|                     developerConnection = "scm:git:git@github.com:revanced/revanced-patcher.git" | ||||
|                     url = "https://github.com/revanced/revanced-patcher" | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| signing { | ||||
|     useGpgCmd() | ||||
|     sign(publishing.publications["revanced-patcher-publication"]) | ||||
| } | ||||
|   | ||||
							
								
								
									
										111
									
								
								docs/1_patcher_intro.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								docs/1_patcher_intro.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,111 @@ | ||||
| <p align="center"> | ||||
|   <picture> | ||||
|     <source | ||||
|       width="256px" | ||||
|       media="(prefers-color-scheme: dark)" | ||||
|       srcset="../assets/revanced-headline/revanced-headline-vertical-dark.svg" | ||||
|     > | ||||
|     <img  | ||||
|       width="256px" | ||||
|       src="../assets/revanced-headline/revanced-headline-vertical-light.svg" | ||||
|     > | ||||
|   </picture> | ||||
|   <br> | ||||
|   <a href="https://revanced.app/"> | ||||
|      <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="../assets/revanced-logo/revanced-logo.svg" /> | ||||
|          <img height="24px" src="../assets/revanced-logo/revanced-logo.svg" /> | ||||
|      </picture> | ||||
|    </a>    | ||||
|    <a href="https://github.com/ReVanced"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" /> | ||||
|            <img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="http://revanced.app/discord"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|            <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="https://reddit.com/r/revancedapp"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|            <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="https://t.me/app_revanced"> | ||||
|       <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|       </picture> | ||||
|    </a>    | ||||
|    <a href="https://x.com/revancedapp"> | ||||
|       <picture> | ||||
|          <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png"> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" /> | ||||
|       </picture> | ||||
|    </a>    | ||||
|    <a href="https://www.youtube.com/@ReVanced"> | ||||
|       <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|      </picture> | ||||
|    </a> | ||||
|    <br> | ||||
|    <br> | ||||
|    Continuing the legacy of Vanced | ||||
| </p> | ||||
|  | ||||
| # 💉 Introduction to ReVanced Patcher | ||||
|  | ||||
| To create patches for Android apps, it is recommended to know the basic concept of ReVanced Patcher. | ||||
|  | ||||
| ## 📙 How it works | ||||
|  | ||||
| ReVanced Patcher is a library that allows modifying Android apps by applying patches. | ||||
| It is built on top of [Smali](https://github.com/google/smali) for bytecode manipulation and [Androlib (Apktool)](https://github.com/iBotPeaches/Apktool) | ||||
| for resource decoding and encoding. | ||||
|  | ||||
| ReVanced Patcher receives a list of patches and applies them to a given APK file. | ||||
| It then returns the modified components of the APK file, such as modified dex files and resources, | ||||
| that can be repackaged into a new APK file. | ||||
|  | ||||
| ReVanced Patcher has a simple API that allows you to load patches from RVP (JAR or DEX container) files | ||||
| and apply them to an APK file. Later on, you will learn how to create patches. | ||||
|  | ||||
| ```kt | ||||
| val patches = loadPatchesFromJar(setOf(File("revanced-patches.rvp"))) | ||||
|  | ||||
| val patcherResult = Patcher(PatcherConfig(apkFile = File("some.apk"))).use { patcher -> | ||||
|     // Here you can access metadata about the APK file through patcher.context.packageMetadata | ||||
|     // such as package name, version code, version name, etc. | ||||
|  | ||||
|     // Add patches. | ||||
|     patcher += patches | ||||
|  | ||||
|     // Execute the patches. | ||||
|     runBlocking { | ||||
|         patcher().collect { patchResult -> | ||||
|             if (patchResult.exception != null) | ||||
|                 logger.info("\"${patchResult.patch}\" failed:\n${patchResult.exception}") | ||||
|             else | ||||
|                 logger.info("\"${patchResult.patch}\" succeeded") | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     // Compile and save the patched APK file components. | ||||
|     patcher.get() | ||||
| } | ||||
|  | ||||
| // The result of the patcher contains the modified components of the APK file that can be repackaged into a new APK file. | ||||
| val dexFiles = patcherResult.dexFiles | ||||
| val resources = patcherResult.resources | ||||
| ``` | ||||
|  | ||||
| ## ⏭️ What's next | ||||
|  | ||||
| The next page teaches the fundamentals of ReVanced Patches. | ||||
|  | ||||
| Continue: [🧩 Introduction to ReVanced Patches](2_patches_intro.md) | ||||
							
								
								
									
										112
									
								
								docs/2_1_setup.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								docs/2_1_setup.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,112 @@ | ||||
| <p align="center"> | ||||
|   <picture> | ||||
|     <source | ||||
|       width="256px" | ||||
|       media="(prefers-color-scheme: dark)" | ||||
|       srcset="../assets/revanced-headline/revanced-headline-vertical-dark.svg" | ||||
|     > | ||||
|     <img  | ||||
|       width="256px" | ||||
|       src="../assets/revanced-headline/revanced-headline-vertical-light.svg" | ||||
|     > | ||||
|   </picture> | ||||
|   <br> | ||||
|   <a href="https://revanced.app/"> | ||||
|      <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="../assets/revanced-logo/revanced-logo.svg" /> | ||||
|          <img height="24px" src="../assets/revanced-logo/revanced-logo.svg" /> | ||||
|      </picture> | ||||
|    </a>    | ||||
|    <a href="https://github.com/ReVanced"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" /> | ||||
|            <img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="http://revanced.app/discord"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|            <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="https://reddit.com/r/revancedapp"> | ||||
|        <picture> | ||||
|            <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|            <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" /> | ||||
|        </picture> | ||||
|    </a>    | ||||
|    <a href="https://t.me/app_revanced"> | ||||
|       <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" /> | ||||
|       </picture> | ||||
|    </a>    | ||||
|    <a href="https://x.com/revancedapp"> | ||||
|       <picture> | ||||
|          <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png"> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" /> | ||||
|       </picture> | ||||
|    </a>    | ||||
|    <a href="https://www.youtube.com/@ReVanced"> | ||||
|       <picture> | ||||
|          <source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|          <img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" /> | ||||
|      </picture> | ||||
|    </a> | ||||
|    <br> | ||||
|    <br> | ||||
|    Continuing the legacy of Vanced | ||||
| </p> | ||||
|  | ||||
| # 👶 Setting up a development environment | ||||
|  | ||||
| To start developing patches with ReVanced Patcher, you must prepare a development environment. | ||||
|  | ||||
| ## 📝 Prerequisites | ||||
|  | ||||
| - A Java IDE with Kotlin support, such as [IntelliJ IDEA](https://www.jetbrains.com/idea/) | ||||
| - Knowledge of Java, [Kotlin](https://kotlinlang.org), and [Dalvik bytecode](https://source.android.com/docs/core/runtime/dalvik-bytecode) | ||||
| - Android reverse engineering skills and tools such as [jadx](https://github.com/skylot/jadx) | ||||
|  | ||||
| ## 🏃 Prepare the environment | ||||
|  | ||||
| Throughout the documentation, [ReVanced Patches](https://github.com/revanced/revanced-patches) will be used as an example project. | ||||
|  | ||||
| > [!NOTE] | ||||
| > To start a fresh project,  | ||||
| > you can use the [ReVanced Patches template](https://github.com/revanced/revanced-patches-template). | ||||
|  | ||||
| 1. Clone the repository | ||||
|  | ||||
|    ```bash | ||||
|    git clone https://github.com/revanced/revanced-patches && cd revanced-patches | ||||
|    ``` | ||||
|  | ||||
| 2. Build the project | ||||
|  | ||||
|    ```bash | ||||
|    ./gradlew build | ||||
|    ``` | ||||
|  | ||||
| > [!NOTE] | ||||
| > If the build fails due to authentication, you may need to authenticate to GitHub Packages. | ||||
| > Create a PAT with the scope `read:packages` [here](https://github.com/settings/tokens/new?scopes=read:packages&description=ReVanced) and add your token to ~/.gradle/gradle.properties. | ||||
| > | ||||
| > Example `gradle.properties` file: | ||||
| > | ||||
| > ```properties | ||||
| > gpr.user = user | ||||
| > gpr.key = key | ||||
| > ``` | ||||
|  | ||||
| 3. Open the project in your IDE | ||||
|  | ||||
| > [!TIP] | ||||
| > It is a good idea to set up a complete development environment for ReVanced, so that you can also test your patches | ||||
| > by following the [ReVanced documentation](https://github.com/ReVanced/revanced-documentation). | ||||
|  | ||||
| ## ⏭️ What's next | ||||
|  | ||||
| The next page will go into details about a ReVanced patch. | ||||
|  | ||||
| Continue: [🧩 Anatomy of a patch](2_2_patch_anatomy.md) | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user