You've already forked revanced-patcher
							
							
				mirror of
				https://github.com/revanced/revanced-patcher
				synced 2025-11-02 07:30:52 +01:00 
			
		
		
		
	Compare commits
	
		
			402 Commits
		
	
	
		
			v7.0.0
			...
			dependabot
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					29af0c9981 | ||
| 
						 | 
					3a8b2ba935 | ||
| 
						 | 
					39c5a66ce3 | ||
| 
						 | 
					b160a2adc0 | ||
| 
						 | 
					33fadcbd0c | ||
| 
						 | 
					68db95b99b | ||
| 
						 | 
					4f2ef3c47c | ||
| 
						 | 
					062ae14936 | ||
| 
						 | 
					99f431897e | ||
| 
						 | 
					d80abbcd17 | ||
| 
						 | 
					509ecc81e1 | ||
| 
						 | 
					e4e66b0d8b | ||
| 
						 | 
					bb8771bb8b | ||
| 
						 | 
					754b02e4ca | ||
| 
						 | 
					fe5fb736cb | ||
| 
						 | 
					fc505a8726 | ||
| 
						 | 
					88a3252574 | ||
| 
						 | 
					ead701bdaf | ||
| 
						 | 
					0581dcf931 | ||
| 
						 | 
					62191e3c4a | ||
| 
						 | 
					1358d3fa10 | ||
| 
						 | 
					6712f0ea72 | ||
| 
						 | 
					0746c22743 | ||
| 
						 | 
					7f55868e6f | ||
| 
						 | 
					5d996def4d | ||
| 
						 | 
					49f4570164 | ||
| 
						 | 
					b8249789df | ||
| 
						 | 
					0abf1c6c02 | ||
| 
						 | 
					aa472eb985 | ||
| 
						 | 
					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 | 
							
								
								
									
										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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										72
									
								
								.github/ISSUE_TEMPLATE/bug-issue.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										72
									
								
								.github/ISSUE_TEMPLATE/bug-issue.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,72 +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
 | 
			
		||||
  - type: checkboxes
 | 
			
		||||
    id: acknowledgements
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: Acknowledgements
 | 
			
		||||
      description: Your issue will be closed if you haven't done these steps.
 | 
			
		||||
      options:
 | 
			
		||||
        - label: I have searched the existing issues and this is a new and no duplicate or related to another open issue.
 | 
			
		||||
          required: true
 | 
			
		||||
        - label: I have written a short but informative title.
 | 
			
		||||
          required: true
 | 
			
		||||
        - label: I filled out all of the requested information in this issue properly.
 | 
			
		||||
          required: true
 | 
			
		||||
							
								
								
									
										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
 | 
			
		||||
							
								
								
									
										58
									
								
								.github/ISSUE_TEMPLATE/feature-issue.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										58
									
								
								.github/ISSUE_TEMPLATE/feature-issue.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,58 +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
 | 
			
		||||
  - type: checkboxes
 | 
			
		||||
    id: acknowledgements
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: Acknowledgements
 | 
			
		||||
      description: Your issue will be closed if you haven't done these steps.
 | 
			
		||||
      options:
 | 
			
		||||
        - label: I have searched the existing issues and this is a new and no duplicate or related to another open issue.
 | 
			
		||||
          required: true
 | 
			
		||||
        - label: I have written a short but informative title.
 | 
			
		||||
          required: true
 | 
			
		||||
        - label: I filled out all of the requested information in this issue properly.
 | 
			
		||||
          required: true
 | 
			
		||||
							
								
								
									
										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@v5
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
      - name: Cache Gradle
 | 
			
		||||
        uses: burrunan/gradle-cache-action@v3
 | 
			
		||||
 | 
			
		||||
      - name: Build
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        run: ./gradlew build --no-daemon
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
name: PR to main
 | 
			
		||||
name: Open a PR to main
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
@@ -7,7 +7,7 @@ on:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  MESSAGE: merge branch `${{ github.head_ref || github.ref_name }}` to `main`
 | 
			
		||||
  MESSAGE: Merge branch `${{ github.head_ref || github.ref_name }}` to `main`
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  pull-request:
 | 
			
		||||
@@ -15,7 +15,8 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
        uses: actions/checkout@v5
 | 
			
		||||
 | 
			
		||||
      - name: Open pull request
 | 
			
		||||
        uses: repo-sync/pull-request@v2
 | 
			
		||||
        with:
 | 
			
		||||
							
								
								
									
										41
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							@@ -6,37 +6,48 @@ on:
 | 
			
		||||
    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@v3
 | 
			
		||||
        uses: actions/checkout@v5
 | 
			
		||||
        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@v3
 | 
			
		||||
        with:
 | 
			
		||||
          java-version: '17'
 | 
			
		||||
          distribution: 'zulu'
 | 
			
		||||
          cache: gradle
 | 
			
		||||
 | 
			
		||||
      - name: Cache Gradle
 | 
			
		||||
        uses: burrunan/gradle-cache-action@v3
 | 
			
		||||
 | 
			
		||||
      - name: Build
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        run: ./gradlew build clean
 | 
			
		||||
 | 
			
		||||
      - name: Setup Node.js
 | 
			
		||||
        uses: actions/setup-node@v3
 | 
			
		||||
        uses: actions/setup-node@v5
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: "18"
 | 
			
		||||
          node-version: "lts/*"
 | 
			
		||||
          cache: 'npm'
 | 
			
		||||
      - name: Setup semantic-release
 | 
			
		||||
 | 
			
		||||
      - 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.REPOSITORY_PUSH_ACCESS }}
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        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 }}"}'
 | 
			
		||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -74,6 +74,7 @@ cmake-build-*/
 | 
			
		||||
 | 
			
		||||
# IntelliJ
 | 
			
		||||
out/
 | 
			
		||||
.idea/
 | 
			
		||||
 | 
			
		||||
# mpeltonen/sbt-idea plugin
 | 
			
		||||
.idea_modules/
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,9 +0,0 @@
 | 
			
		||||
# Default ignored files
 | 
			
		||||
/shelf/
 | 
			
		||||
/workspace.xml
 | 
			
		||||
# Editor-based HTTP Client requests
 | 
			
		||||
/httpRequests/
 | 
			
		||||
# Datasource local storage ignored files
 | 
			
		||||
/dataSources/
 | 
			
		||||
/dataSources.local.xml
 | 
			
		||||
/kotlinc.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>
 | 
			
		||||
							
								
								
									
										11
									
								
								.releaserc
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								.releaserc
									
									
									
									
									
								
							@@ -7,7 +7,13 @@
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "plugins": [
 | 
			
		||||
    "@semantic-release/commit-analyzer",
 | 
			
		||||
    [
 | 
			
		||||
      "@semantic-release/commit-analyzer", {
 | 
			
		||||
        "releaseRules": [
 | 
			
		||||
          { "type": "build", "scope": "Needs bump", "release": "patch" }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "@semantic-release/release-notes-generator",
 | 
			
		||||
    "@semantic-release/changelog",
 | 
			
		||||
    "gradle-semantic-release-plugin",
 | 
			
		||||
@@ -17,7 +23,8 @@
 | 
			
		||||
        "assets": [
 | 
			
		||||
          "CHANGELOG.md",
 | 
			
		||||
          "gradle.properties"
 | 
			
		||||
        ]
 | 
			
		||||
        ],
 | 
			
		||||
        "message": "chore: Release v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    [
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1195
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										1195
									
								
								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.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										889
									
								
								api/revanced-patcher.api
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										889
									
								
								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  | 
							
								
								
									
										133
									
								
								build.gradle.kts
									
									
									
									
									
								
							
							
						
						
									
										133
									
								
								build.gradle.kts
									
									
									
									
									
								
							@@ -1,68 +1,119 @@
 | 
			
		||||
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("app.revanced:smali:2.5.3-a3836654")
 | 
			
		||||
    implementation("app.revanced:multidexlib2:2.5.3-a3836654")
 | 
			
		||||
    implementation("app.revanced:apktool-lib:2.7.0")
 | 
			
		||||
 | 
			
		||||
    implementation(kotlin("reflect"))
 | 
			
		||||
    testImplementation(kotlin("test"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tasks {
 | 
			
		||||
    processResources {
 | 
			
		||||
        expand("projectVersion" to project.version)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    test {
 | 
			
		||||
        useJUnitPlatform()
 | 
			
		||||
        testLogging {
 | 
			
		||||
            events("PASSED", "SKIPPED", "FAILED")
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    processResources {
 | 
			
		||||
        expand("projectVersion" to project.version)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
        freeCompilerArgs = listOf("-Xcontext-receivers")
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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")
 | 
			
		||||
                credentials {
 | 
			
		||||
                    username = System.getenv("GITHUB_ACTOR")
 | 
			
		||||
                    password = System.getenv("GITHUB_TOKEN")
 | 
			
		||||
        maven {
 | 
			
		||||
            name = "GitHubPackages"
 | 
			
		||||
            url = uri("https://maven.pkg.github.com/revanced/revanced-patcher")
 | 
			
		||||
            credentials {
 | 
			
		||||
                username = System.getenv("GITHUB_ACTOR")
 | 
			
		||||
                password = System.getenv("GITHUB_TOKEN")
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    publications {
 | 
			
		||||
        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"
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        else
 | 
			
		||||
            mavenLocal()
 | 
			
		||||
    }
 | 
			
		||||
    publications {
 | 
			
		||||
        register<MavenPublication>("gpr") {
 | 
			
		||||
            from(components["java"])
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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