croot 如何在 android 中工作?此外,如何在 python 脚本中复制此功能?

how does croot work in android? Additionally, how do I replicate this functionality inside a python script?

我想在 Android 构建环境中找到给定名称的存储库路径。

目前我是这样做的:

我想用 python 脚本实现这些步骤。 要求是能够在给定项目名称的 android 构建系统内的任何地方执行此操作(我从 Gerrit 获得我想挑选或拉取)。

此命令会将我带到项目目录。

./test.py project_name

实现此目的的任何想法或替代方法也会有所帮助。 提前致谢!

好吧,这成功了!

import sys
import os
import xml.etree.ElementTree as ET

def main():
    project_name=str(sys.argv[1])
    top_dir=os.environ['ANDROID_BUILD_TOP']       # There is a global variable that is set
                                                  # that will help you do croot while 
                                                  # running in python shell.
    manifest_file='.repo/manifests.xml'

    os.chdir(top_dir)
    tree = ET.parse(manifest_file)
    root = tree.getroot()
    for project in root.findall('project'):
        if (project_name == project.get('name')):
            print project.get('path')
            exit()

if __name__ == "__main__":
    main()

唯一的问题是我无法直接 cd 到项目路径,因为您无法在退出时更改父目录。我想我可以接受。