Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
  • fdroidserver fdroidserver
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 297
    • Issues 297
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 43
    • Merge requests 43
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • F-Droid
  • fdroidserverfdroidserver
  • Merge requests
  • !494

fix bad parsing of maxSdkVersion as a @string resource

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Hans-Christoph Steiner requested to merge eighthave/fdroidserver:master into master Apr 26, 2018
  • Overview 3
  • Commits 3
  • Pipelines 2
  • Changes 8

In the migration to androguard, we discovered a single app that used android:maxSdkVersion="@string/max_version". aapt just ignores that value entirely, androguard was dutifully returning the resId, which is not a value integer. This makes fdroid update also ignore that.

admin#65 (comment 70428602)

Here's the stacktrace from fdroidclient:

04-26 11:43:59.628 23373 23985 E UpdateService: Error updating repository https://f-droid.org/repo
04-26 11:43:59.628 23373 23985 E UpdateService: org.fdroid.fdroid.RepoUpdater$UpdateException: Error getting index file
04-26 11:43:59.628 23373 23985 E UpdateService: 	at org.fdroid.fdroid.IndexV1Updater.update(IndexV1Updater.java:142)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at org.fdroid.fdroid.UpdateService.onHandleIntent(UpdateService.java:397)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:68)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at android.os.Handler.dispatchMessage(Handler.java:102)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at android.os.Looper.loop(Looper.java:154)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at android.os.HandlerThread.run(HandlerThread.java:61)
04-26 11:43:59.628 23373 23985 E UpdateService: Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Can not deserialize value of type int from String "@7F050022": not a valid Integer value
04-26 11:43:59.628 23373 23985 E UpdateService:  at [Source: org.fdroid.fdroid.ProgressBufferedInputStream@21b04a3; line: 1, column: 5551772] (through reference chain: java.util.HashMap["souch.smsbypass"]->java.util.ArrayList[0]->org.fdroid.fdroid.data.Apk["maxSdkVersion"])
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1410)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:926)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.StdDeserializer._parseInteger(StdDeserializer.java:451)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:308)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:286)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:504)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:108)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:357)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:148)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:287)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:259)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:26)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:517)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:362)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:27)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3770)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2123)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at org.fdroid.fdroid.IndexV1Updater.parsePackages(IndexV1Updater.java:372)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at org.fdroid.fdroid.IndexV1Updater.processIndexV1(IndexV1Updater.java:220)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at org.fdroid.fdroid.IndexV1Updater.processDownloadedIndex(IndexV1Updater.java:156)
04-26 11:43:59.628 23373 23985 E UpdateService: 	at org.fdroid.fdroid.IndexV1Updater.update(IndexV1Updater.java:98)
04-26 11:43:59.628 23373 23985 E UpdateService: 	... 5 more
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: master