mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-04 14:30:11 +01:00
update: warn if APK has a date that is newer than the system clock
If the date in an APK is in the future, that could cause confusion. If the system clock is wrong, then the APK will also have a date in the future. This is most likely on offline signing machines, since they do not have a time source to sync to.
This commit is contained in:
parent
bd3ae88608
commit
cef7553873
@ -27,6 +27,7 @@ import socket
|
||||
import zipfile
|
||||
import hashlib
|
||||
import pickle
|
||||
from datetime import datetime, timedelta
|
||||
from xml.dom.minidom import Document
|
||||
from optparse import OptionParser
|
||||
import time
|
||||
@ -542,6 +543,19 @@ def scan_apks(apps, apkcache, repodir, knownapks):
|
||||
|
||||
apk = zipfile.ZipFile(apkfile, 'r')
|
||||
|
||||
# if an APK has files newer than the system time, suggest updating
|
||||
# the system clock. This is useful for offline systems, used for
|
||||
# signing, which do not have another source of clock sync info. It
|
||||
# has to be more than 24 hours newer because ZIP/APK files do not
|
||||
# store timezone info
|
||||
info = apk.getinfo('AndroidManifest.xml')
|
||||
dt_obj = datetime(*info.date_time)
|
||||
checkdt = dt_obj - timedelta(1)
|
||||
if datetime.today() < checkdt:
|
||||
logging.warn('System clock is older than manifest in: '
|
||||
+ apkfilename + '\nSet clock to that time using:\n'
|
||||
+ 'sudo date -s "' + str(dt_obj) + '"')
|
||||
|
||||
iconfilename = "%s.%s.png" % (
|
||||
thisinfo['id'],
|
||||
thisinfo['versioncode'])
|
||||
|
Loading…
Reference in New Issue
Block a user