无缝迁移CM代码到LineageOS

2017-01-05(四) by chenjia.me

从CM迁移代码到Lineage OS

CM 由于总所周知的问题,现在社区变为Lineage OS,所以github上的项目也变化为LineageOS的账号,我们可以不重新下载代码,对一些地方进行修改就能顺利迁移。

这些步骤是github-Gist上的一个脚本,地址为脚本

我是编译THEA机型,测试通过。

步骤如下:

  1. Init the Lineage manifest: repo init -u ssh://git@github.com/LineageOS/android.git -b cm-14.1 (or cm-13.0 if you prefer that) //一般情况下我们要修改为:repo init -u https://github.com/LineageOS/android.git -b cm-14.1
  2. Update your local manifest (.repo/local_manifests/roomservice.xml), if it exists - find and replace "CyanogenMod" with "LineageOS" globally.
  3. Move the git objects: mv .repo/project-objects/CyanogenMod .repo/project-objects/LineageOS
  4. vim ~/fixlinks.sh
  5. 输入

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    #!/bin/sh
    
    DIR=$1
    echo $DIR
    cd $DIR
    
    for i in config description info logs objects packed-refs refs rr-cache shallow svn hooks; do
        orig=$(readlink $i)
        dest=$(echo $orig | sed 's/CyanogenMod/LineageOS/')
        if [ "$dest" '!=' "$orig" ]; then
            echo "Updated $i"
            rm $i
            ln -s $dest $i
        else
            echo "Skipping $i (not CM)"
        fi
    done
    
  6. chmod +x ~/fixlinks.sh

  7. cd .repo/projects
  8. find . -name '*.git' -exec ~/fixlinks.sh {} \; And finally, fix the actual tree:
  9. cd ../..
  10. find * -name '.git' -exec ~/fixlinks.sh {} \;
  11. repo sync

编译

需要重新source环境来在进行编译,防止出现错误。


Comments