1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-09-11 15:13:27 +02: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:
Hans-Christoph Steiner 2015-07-20 16:42:40 -07:00
parent bd3ae88608
commit cef7553873

View File

@ -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'])