diff options
author | Jiyong Park <jiyong@google.com> | 2018-09-04 10:01:41 +0900 |
---|---|---|
committer | Jiyong Park <jiyong@google.com> | 2018-09-04 10:01:41 +0900 |
commit | a51530715ff3e8959c20b4e7d414c42e23f33526 (patch) | |
tree | b0dec26a158e284b9e26f198dd18596a63591e5f | |
parent | 4edc623b47d5bd5e390c6e9c38b53a3ac0fd32cb (diff) |
Version number in APEX manifest is set as versionCode of AndroidManifest
Package name together with version number fully identifies an APEX (and
thus APK).
Bug: 112458021
Test: runtests.sh
Change-Id: I3d3193bc6071bebd577858fffc617660cb555380
-rw-r--r-- | apexer/apexer.py | 10 | ||||
-rwxr-xr-x | apexer/runtests.sh | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/apexer/apexer.py b/apexer/apexer.py index 8612241..c7c81c9 100644 --- a/apexer/apexer.py +++ b/apexer/apexer.py @@ -76,19 +76,20 @@ def GetDirSize(dir_name): size += os.path.getsize(os.path.join(dirpath, f)) return size + def RoundUp(size, unit): assert unit & (unit - 1) == 0 return (size + unit - 1) & (~(unit - 1)) -def PrepareAndroidManifest(packagename): +def PrepareAndroidManifest(package, version): template = """\ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="{packagename}"> + package="{package}" versionCode="{version}"> </manifest> """ - return template.format(packagename=packagename) + return template.format(package=package, version=version) def ValidateArgs(args): @@ -133,6 +134,7 @@ def CreateApex(args, work_dir): print("Invalid manifest: 'name' does not exist") return False package_name = manifest['name'] + version_number = manifest['version'] # create an empty ext4 image that is sufficiently big # Sufficiently big = twice the size of the input directory @@ -233,7 +235,7 @@ def CreateApex(args, work_dir): if args.verbose: print('Creating AndroidManifest ' + android_manifest_file) with open(android_manifest_file, 'w+') as f: - f.write(PrepareAndroidManifest(package_name)) + f.write(PrepareAndroidManifest(package_name, version_number)) # copy manifest to the content dir so that it is also accessible # without mounting the image diff --git a/apexer/runtests.sh b/apexer/runtests.sh index ecfe22c..0f69f2a 100755 --- a/apexer/runtests.sh +++ b/apexer/runtests.sh @@ -118,6 +118,6 @@ sudo diff ${input_dir}/sub/file3 ${output_dir}/mnt/sub/file3 [ `sudo ls -Z ${output_dir}/mnt/manifest.json | cut -d ' ' -f 1` = "u:object_r:root_file:s0" ] # check the android manifest -aapt dump xmltree ${output_file} AndroidManifest.xml | grep com.android.example.apex +aapt dump xmltree ${output_file} AndroidManifest.xml echo Passed |