app index V1 - support graphics, localization, and more
This introduces a new JSON-based index-v1.jar app index metadata file for the client to consume. There were lots of new features in the fdroidclient "UX Overhaul" that required new features in the index metadata, including:
- graphics and screenshots
- using Anti-Features in the client
- full localization support, including text and graphics
This would have be impossible to add to index.xml aka v0 without breaking backwards compatibility. Using JSON also means that we can use libraries to translate the internal dicts directly to JSON data and on the Java side, the Jackson library can translate JSON directly to Java Objects. This also lays the groundwork for having a YAML format for fdroiddata which will also be a direct translation. This will then bring fdroidclient, fdroidserver, and fdroiddata closer together as codebases since the concepts will have the same names.
@CiaranG The new index-v1.jar file only exists in signed form to keep security sensitive code as simple as possible. The build server should just have a throwaway signing key to sign the indexes with. Then when copied to the signing server,
fdroid signindex will throw away the signature on the file, and sign it properly.