mirror of
				https://github.com/f-droid/fdroidserver.git
				synced 2025-11-03 22:20:28 +03:00 
			
		
		
		
	include non-APKs that match metadata and fdroid-generated filenames
Since it is now possible to build and include arbitrary files, like OTA update ZIP files, the update procedure needs to look for non-APK files that match the packageName_versionCode pattern of fdroid-generated files. !193 admin#14 privileged-extension#9
This commit is contained in:
		
							parent
							
								
									9d363b91f4
								
							
						
					
					
						commit
						6aca906863
					
				
					 4 changed files with 77 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -580,6 +580,14 @@ def scan_repo_files(apkcache, repodir, knownapks, use_date_from_file=False):
 | 
			
		|||
            repo_file['version'] = shasum
 | 
			
		||||
            # the static ID is the SHA256 unless it is set in the metadata
 | 
			
		||||
            repo_file['id'] = shasum
 | 
			
		||||
            n = name.split('_')
 | 
			
		||||
            if len(n) == 2:
 | 
			
		||||
                packageName = n[0]
 | 
			
		||||
                versionCode = n[1].split('.')[0]
 | 
			
		||||
                if re.match(r'^-?[0-9]+$', versionCode) \
 | 
			
		||||
                   and common.is_valid_package_name(name.split('_')[0]):
 | 
			
		||||
                    repo_file['id'] = packageName
 | 
			
		||||
                    repo_file['versioncode'] = int(versionCode)
 | 
			
		||||
            srcfilename = name + ".src.tar.gz"
 | 
			
		||||
            if os.path.exists(os.path.join(repodir, srcfilename)):
 | 
			
		||||
                repo_file['srcname'] = srcfilename
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										42
									
								
								tests/metadata/fake.ota.update.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								tests/metadata/fake.ota.update.txt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,42 @@
 | 
			
		|||
Categories:System
 | 
			
		||||
License:Apache-2.0
 | 
			
		||||
Web Site:https://f-droid.org
 | 
			
		||||
Source Code:https://gitlab.com/fdroid/privileged-extension
 | 
			
		||||
Issue Tracker:https://gitlab.com/fdroid/privileged-extension/issues
 | 
			
		||||
Donate:https://f-droid.org/about
 | 
			
		||||
 | 
			
		||||
Auto Name:Fake OTA Update
 | 
			
		||||
Summary:Tests whether OTA ZIP files are being include
 | 
			
		||||
Description:
 | 
			
		||||
F-Droid can make use of system privileges or permissions to
 | 
			
		||||
install, update and remove applications on its own. The only way to obtain those
 | 
			
		||||
privileges is to become a system app.
 | 
			
		||||
 | 
			
		||||
This is where the Privileged Extension comes in - being a separate app and much
 | 
			
		||||
smaller, it can be installed as a system app and communicate with the main app
 | 
			
		||||
via AIDL IPC.
 | 
			
		||||
 | 
			
		||||
This has several advantages:
 | 
			
		||||
 | 
			
		||||
* Reduced disk usage in the system partition
 | 
			
		||||
* System updates don't remove F-Droid
 | 
			
		||||
* The process of installing into system via root is safer
 | 
			
		||||
 | 
			
		||||
This is packaged as an OTA (Over-The-Air) update ZIP file.  It must be installed
 | 
			
		||||
using TWRP or other Android recovery that can flash updates to the system from
 | 
			
		||||
the /data/data/org.fdroid.fdroid folder on the /data partition. The standalone
 | 
			
		||||
APK is called F-Droid Privileged Extension.
 | 
			
		||||
.
 | 
			
		||||
 | 
			
		||||
Repo Type:git
 | 
			
		||||
Repo:https://gitlab.com/fdroid/privileged-extension.git
 | 
			
		||||
 | 
			
		||||
Build:0.2.1,2000
 | 
			
		||||
    commit=0.2.1
 | 
			
		||||
    output=app/build/distributions/FDroidPrivilegedExtensionFromBinaries-0.2.1.zip
 | 
			
		||||
    build=gradle assembleUpdateZipFromBinariesDebug
 | 
			
		||||
 | 
			
		||||
Auto Update Mode:Version %v
 | 
			
		||||
Update Check Mode:Tags
 | 
			
		||||
Current Version:0.2.1
 | 
			
		||||
Current Version Code:2000
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<fdroid>
 | 
			
		||||
	<repo icon="fdroid-icon.png" name="My First F-Droid Repo Demo" pubkey="308204e1308202c9a003020102020434597643300d06092a864886f70d01010b050030213110300e060355040b1307462d44726f6964310d300b06035504031304736f7661301e170d3136303931333230313930395a170d3434303133303230313930395a30213110300e060355040b1307462d44726f6964310d300b06035504031304736f766130820222300d06092a864886f70d01010105000382020f003082020a028202010086ef94b5aacf2ba4f38c875f4194b44f5644392e3715575d7c92828577e692c352b567172823851c8c72347fbc9d99684cd7ca3e1db3e4cca126382c53f2a5869fb4c19bdec989b2930501af3e758ff40588915fe96b10076ce3346a193a0277d79e83e30fd8657c20e35260dd085aa32eac7c4b85786ffefbf1555cafe2bc928443430cdbba48cfbe701e12ae86e676477932730d4fc7c00af820aef85038a5b4df084cf6470d110dc4c49ea1b749b80b34709d199b3db516b223625c5de4501e861f7d261b3838f8f616aa78831d618d41d25872dc810c9b2087b5a9e146ca95be740316dcdbcb77314e23ab87d4487913b800b1113c0603ea2294188b71d3e49875df097b56f9151211fc6832f9790c5c83d17481f14ad37915fd164f4fd713f6732a15f4245714b84cd665bdbd085660ea33ad7d7095dcc414f09e3903604a40facc2314a115c0045bb50e9df38efb57e1b8e7cc105f340a26eeb46aba0fa6672953eee7f1f92dcb408e561909bbd4bdf4a4948c4d57c467d21aa238c34ba43be050398be963191fa2b49828bc1e4eeed224b40dbe9dc3e570890a71a974a2f4527edb1b07105071755105edcb2af2f269facfb89180903a572a99b46456e80d4a01685a80b233278805f2c876678e731f4ec4f52075aeef6b2b023efbb8a3637ef507c4c37c27e428152ec1817fcba640ad601cb09f72f0fbe2d274a2410203010001a321301f301d0603551d0e04160414c28bf33dd5a9a17338e5b1d1a6edd8c7d141ed0b300d06092a864886f70d01010b0500038202010084e20458b2aafd7fc27146b0986f9324f4260f244920417a77c9bf15e2e2d22d2725bdd8093ec261c3779c3ca03312516506f9410075b90595b41345956d8eb2786fb5994f195611382c2b99dba13381b0100a30bc9e6e47248bf4325e2f6eec9d789216dc7536e753bf1f4be603d9fa2e6f5e192b4eb988b8cdb0bb1e8668a9225426f7d4636479f73ed24ad1d2657c31e63c93d9679b9080171b3bd1bf10a3b92b80bd790fbf62d3644900cd08eae8b9bf9c2567be98dc8cdd2ae19a8d57a3e3e2de899f81f1279f578989e6af906f80c8c2b67651730ee7e568c1af5bcb845b6d685dc55332a9984aeceaea3b7e883447edf1c76b155d95253e39b9710eaa22efa6c81468829702b5dce7126538f3ca70c2f0ad9a5795435fdb1f715f20d60359ef9a9926c7050116e802df651727447848827815f70bd82af3cedd08783156102d2d8ce995c4c43b8e47e91a3e6927f3505a5d395e6bebb84542c570903eeab4382a1c2151f1471c7a06a34dc4d268d8fa72e93bdcd2dccc4302ecac47b9e7e3d8bc9b46d21cd097874a24d529548018dc190ff568c6aa428f0a5eedff1a347730931c74f19277538e49647a4ad7254f4c1ec7d4da12cce9e1fad9607534e66ab40a56b473d9d7e3d563fd03cad2052bad365c5a29f8ae54f09b60dbca3ea768d7767cbe1c133ca08ce725c1c1370f4aab8e5b6e286f52dc0be8d0982b5a" timestamp="1480431575" url="https://MyFirstFDroidRepo.org/fdroid/repo" version="17">
 | 
			
		||||
	<repo icon="fdroid-icon.png" name="My First F-Droid Repo Demo" pubkey="308204e1308202c9a003020102020434597643300d06092a864886f70d01010b050030213110300e060355040b1307462d44726f6964310d300b06035504031304736f7661301e170d3136303931333230313930395a170d3434303133303230313930395a30213110300e060355040b1307462d44726f6964310d300b06035504031304736f766130820222300d06092a864886f70d01010105000382020f003082020a028202010086ef94b5aacf2ba4f38c875f4194b44f5644392e3715575d7c92828577e692c352b567172823851c8c72347fbc9d99684cd7ca3e1db3e4cca126382c53f2a5869fb4c19bdec989b2930501af3e758ff40588915fe96b10076ce3346a193a0277d79e83e30fd8657c20e35260dd085aa32eac7c4b85786ffefbf1555cafe2bc928443430cdbba48cfbe701e12ae86e676477932730d4fc7c00af820aef85038a5b4df084cf6470d110dc4c49ea1b749b80b34709d199b3db516b223625c5de4501e861f7d261b3838f8f616aa78831d618d41d25872dc810c9b2087b5a9e146ca95be740316dcdbcb77314e23ab87d4487913b800b1113c0603ea2294188b71d3e49875df097b56f9151211fc6832f9790c5c83d17481f14ad37915fd164f4fd713f6732a15f4245714b84cd665bdbd085660ea33ad7d7095dcc414f09e3903604a40facc2314a115c0045bb50e9df38efb57e1b8e7cc105f340a26eeb46aba0fa6672953eee7f1f92dcb408e561909bbd4bdf4a4948c4d57c467d21aa238c34ba43be050398be963191fa2b49828bc1e4eeed224b40dbe9dc3e570890a71a974a2f4527edb1b07105071755105edcb2af2f269facfb89180903a572a99b46456e80d4a01685a80b233278805f2c876678e731f4ec4f52075aeef6b2b023efbb8a3637ef507c4c37c27e428152ec1817fcba640ad601cb09f72f0fbe2d274a2410203010001a321301f301d0603551d0e04160414c28bf33dd5a9a17338e5b1d1a6edd8c7d141ed0b300d06092a864886f70d01010b0500038202010084e20458b2aafd7fc27146b0986f9324f4260f244920417a77c9bf15e2e2d22d2725bdd8093ec261c3779c3ca03312516506f9410075b90595b41345956d8eb2786fb5994f195611382c2b99dba13381b0100a30bc9e6e47248bf4325e2f6eec9d789216dc7536e753bf1f4be603d9fa2e6f5e192b4eb988b8cdb0bb1e8668a9225426f7d4636479f73ed24ad1d2657c31e63c93d9679b9080171b3bd1bf10a3b92b80bd790fbf62d3644900cd08eae8b9bf9c2567be98dc8cdd2ae19a8d57a3e3e2de899f81f1279f578989e6af906f80c8c2b67651730ee7e568c1af5bcb845b6d685dc55332a9984aeceaea3b7e883447edf1c76b155d95253e39b9710eaa22efa6c81468829702b5dce7126538f3ca70c2f0ad9a5795435fdb1f715f20d60359ef9a9926c7050116e802df651727447848827815f70bd82af3cedd08783156102d2d8ce995c4c43b8e47e91a3e6927f3505a5d395e6bebb84542c570903eeab4382a1c2151f1471c7a06a34dc4d268d8fa72e93bdcd2dccc4302ecac47b9e7e3d8bc9b46d21cd097874a24d529548018dc190ff568c6aa428f0a5eedff1a347730931c74f19277538e49647a4ad7254f4c1ec7d4da12cce9e1fad9607534e66ab40a56b473d9d7e3d563fd03cad2052bad365c5a29f8ae54f09b60dbca3ea768d7767cbe1c133ca08ce725c1c1370f4aab8e5b6e286f52dc0be8d0982b5a" timestamp="1480431575" url="https://MyFirstFDroidRepo.org/fdroid/repo" version="18">
 | 
			
		||||
		<description>This is a repository of apps to be used with F-Droid. Applications in this repository are either official binaries built by the original application developers, or are binaries built from source by the admin of f-droid.org using the tools on https://gitlab.com/u/fdroid. </description>
 | 
			
		||||
		<mirror>http://foobarfoobarfoobar.onion/fdroid/repo</mirror>
 | 
			
		||||
		<mirror>https://foo.bar/fdroid/repo</mirror>
 | 
			
		||||
| 
						 | 
				
			
			@ -8,6 +8,31 @@
 | 
			
		|||
	<install packageName="org.adaway"/>
 | 
			
		||||
	<uninstall packageName="com.android.vending"/>
 | 
			
		||||
	<uninstall packageName="com.facebook.orca"/>
 | 
			
		||||
	<application id="fake.ota.update">
 | 
			
		||||
		<id>fake.ota.update</id>
 | 
			
		||||
		<added>2016-03-10</added>
 | 
			
		||||
		<lastupdated>2016-03-10</lastupdated>
 | 
			
		||||
		<name>fake.ota.update_1234.zip</name>
 | 
			
		||||
		<summary>Tests whether OTA ZIP files are being include</summary>
 | 
			
		||||
		<desc><p>F-Droid can make use of system privileges or permissions to install, update and remove applications on its own. The only way to obtain those privileges is to become a system app.</p><p>This is where the Privileged Extension comes in - being a separate app and much smaller, it can be installed as a system app and communicate with the main app via AIDL IPC.</p><p>This has several advantages:</p><ul><li> Reduced disk usage in the system partition</li><li> System updates don't remove F-Droid</li><li> The process of installing into system via root is safer</li></ul><p>This is packaged as an OTA (Over-The-Air) update ZIP file.  It must be installed using TWRP or other Android recovery that can flash updates to the system from the /data/data/org.fdroid.fdroid folder on the /data partition. The standalone APK is called F-Droid Privileged Extension.</p></desc>
 | 
			
		||||
		<license>Apache-2.0</license>
 | 
			
		||||
		<categories>System</categories>
 | 
			
		||||
		<category>System</category>
 | 
			
		||||
		<web>https://f-droid.org</web>
 | 
			
		||||
		<source>https://gitlab.com/fdroid/privileged-extension</source>
 | 
			
		||||
		<tracker>https://gitlab.com/fdroid/privileged-extension/issues</tracker>
 | 
			
		||||
		<donate>https://f-droid.org/about</donate>
 | 
			
		||||
		<marketversion>0.2.1</marketversion>
 | 
			
		||||
		<marketvercode>2000</marketvercode>
 | 
			
		||||
		<package>
 | 
			
		||||
			<version>897a92a4ccff4f415f6ba275b2af16d4ecaee60a983b215bddcb9f8964e7a24c</version>
 | 
			
		||||
			<versioncode>1234</versioncode>
 | 
			
		||||
			<apkname>fake.ota.update_1234.zip</apkname>
 | 
			
		||||
			<hash type="sha256">897a92a4ccff4f415f6ba275b2af16d4ecaee60a983b215bddcb9f8964e7a24c</hash>
 | 
			
		||||
			<size>233</size>
 | 
			
		||||
			<added>2016-03-10</added>
 | 
			
		||||
		</package>
 | 
			
		||||
	</application>
 | 
			
		||||
	<application id="obb.main.oldversion">
 | 
			
		||||
		<id>obb.main.oldversion</id>
 | 
			
		||||
		<added>2013-12-31</added>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
fake.ota.update_1234.zip 897a92a4ccff4f415f6ba275b2af16d4ecaee60a983b215bddcb9f8964e7a24c 2016-03-10
 | 
			
		||||
obb.main.oldversion_1444412523.apk obb.main.oldversion 2013-12-31
 | 
			
		||||
obb.main.twoversions_1101613.apk obb.main.twoversions 2015-10-12
 | 
			
		||||
obb.main.twoversions_1101615.apk obb.main.twoversions 2016-01-01
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue