Search code examples
androidlinuxgitrepo

Using repo with goldfish Android kernel


I was trying to configure repo with a local_manifest.xml file to get the goldfish Android kernel available at: https://android.googlesource.com/kernel/goldfish.git

I have written the following local_manifest.xml file that I copied in .repo/manifests/local_manifest.xml:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote
    name="linux-kernel"
    fetch="https://android.googlesource.com/kernel" />
<project
    path="kernel"
    name="goldfish"
    remote="linux-kernel"
    revision="android-goldfish-3.10" />
</manifest>

Giving the following command: repo init -u local_manifest.xml

I get the following error message:

fatal: Invalid gitfile format: local_manifest.xml
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

I believe there is something wrong in my local_manifest.xml file but I'm unable to understand what is wrong. Any idea about what is wrong?

Moreover, how to use local manifests together with repo?

Thank you.


Solution

  • The local manifests aren't intended to be used as your main manifest, but rather an augmentation to the default/standard one. You can just add the xml files to $TOP_DIR/.repo/local_manifests, such as $TOP_DIR/.repo/local_manifests/kernel_manifest.xml.

    The manifest itself follows the standard format, allowing you to provide new servers (remotes) and projects. Try modifying your existing one to look something like this:

    <?xml version="1.0" encoding="UTF-8"?>
    <manifest>
        <remote
             name="linux-kernel"
             fetch="https://android.googlesource.com/" />
    
        <project
            path="kernel"
            name="kernel/goldfish"
            remote="linux-kernel"
            revision="android-goldfish-3.10" />
    </manifest>
    

    When you do the repo sync, repo should automatically load this manifest and use it as part of its sync. For more details and other goodies, look here.