summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiyong Park <jiyong@google.com>2018-09-04 10:01:41 +0900
committerJiyong Park <jiyong@google.com>2018-09-04 10:01:41 +0900
commita51530715ff3e8959c20b4e7d414c42e23f33526 (patch)
treeb0dec26a158e284b9e26f198dd18596a63591e5f
parent4edc623b47d5bd5e390c6e9c38b53a3ac0fd32cb (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.py10
-rwxr-xr-xapexer/runtests.sh2
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