What is a pinned-manifest.xml?

A pinned-manifest.xml is a Android manifest that allows a build to be recreated exactly. It does this by listing the HEAD commit id of a git after it has been cloned. For instance, the source manifest for build 47 of landing-panda [1] lists:

<project path="kernel" name="kernel/omap-omapzoom" revision="linaro_android_4.0.3">

...as the kernel to get. After its cloned, repo creates a pinned-manifest.xml by reading the head of each git and writes this line into the pinned-manifest.xml:

<project name="kernel/omap-omapzoom" path="kernel" revision="54475e6fbc4c841ae6c473c0a6993969e10589cc">

How to Reproduce a Build Exactly

Assume you want to reproduce https://releases.linaro.org/13.07/android/panda exactly use these instructions/steps:

=== Get artifacts ====

Scroll down to the 'Downloads’ section. Save linaro_android_build_cmds.sh to where you’d like to make your build. Also save the pinned-manifest.xml. Run the build script

The linaro_android_build_cmds.sh script will download the source and create the build.

  • $ chmod +x linaro_android_build_cmds.sh

    $ ./linaro_android_build_cmds.sh -m <pinned_manifest> -o <overlay> #To reproduce an exact build from pinned manifest

One may optionally need to provide login information if the code being accesses is from restricted git location. $ ./linaro_android_build_cmds.sh -t -l <login-id> #Provide login/access ID to clone and build code from linaro-private repositories


CategoryAndroidTips

Platform/Android/ReproduceABuildExactly (last modified 2013-08-07 06:44:12)