Package: anpp
README在多个Android项目自由跳转脚本，包含自动补全，可以直接修改template或者修改json配置进行安装，支持自定义命令目录一、安装及使用二、配置方法2.1 修改androiddir.bash.template2.2 修改config.json三、install3.1 直接安装androiddir.bash.template修改3.2 安装config.json修改四、clean五、使用方法5.1 自动补全使用5.2 项目源代码跳转5.3 其他跳转命令六、自定义命令七、自定义别名一、安装及使用pip3 install anppanpp-build new.
├── LICENSE
├── Makefile
├── androiddir.bash
├── androiddir.bash.template
├── config.json
├── custom.sh
├── generator.py
└── tools
    └── custom.py二、配置方法2.1 修改androiddir.bash.template修改文件数组：androiddir.bash.templatedefaultPath：所有项目的根目录projects: 项目文件夹名products：项目对应的产品名kernels：内核相对路径，相对于projectsdtss：dts相对路径，相对kernelsbootloaderStage1s：第一阶段bootloaderbootloaderStage2s：第二阶段bootloaderouts：out目录，不含product名efuses：签名工具目录components：跳转命令别命（alias）2.2 修改config.json修改json数据：config.jsondefaultPath：所有项目的根目录project_keys：用于定义project支持哪些属性，定义了但是在project中没有赋值的会使用.（路径）替代project: 项目文件夹名product：项目对应的产品名kernel：内核相对路径，相对于projectsdts：dts相对路径，相对kernelsbootloaderStage1s：第一阶段bootloaderbootloaderStage2s：第二阶段bootloaderout：out目录，不含product名efuse：签名工具目录components：用于合成路径，以及shell命令的aliascmd：shell命令aliascombine：使用project_keys中的属性，完成cmd命令的路径组合三、安装anpp shell脚本3.1 直接安装androiddir.bash.template修改make templatecp androiddir.bash.template ~/.androiddir.sh
check if source .androiddir.sh path in /home/pi/.bashrc:
.androiddir.sh path not source in /home/pi/.bashrc
tail ~/.bashrc last 2 line for terminal check
~/.bashrc content
...
# add anpp(https://github.com/ZengjfOS/anpp) function to bash env
source ~/.androiddir.shsource ~/.bashrc3.2 安装config.json模版以下三条命令执行的内容是一致的makemake jsonmake installmake logpython3 ./generator.py ~/.androiddir.sh
defaultPath: ~/zengjf/
projects: ['M0-project', 'A00-project', 'M8-project', 'L00-project']
products: ['M0', 'k61v1_64_bsp', 'k62v1_64', 's138']
kernels: ['kernel-4.9', 'kernel-4.9', 'kernel-4.19', 'android/kernel/msm-4.14']
bootloaderStage1s: ['vendor/mediatek/proprietary/bootable/bootloader/preloader', 'vendor/mediatek/proprietary/bootable/bootloader/preloader', 'vendor/mediatek/proprietary/bootable/bootloader/preloader', 'android/fibo/bp_code/boot_images']
bootloaderStage2s: ['vendor/mediatek/proprietary/bootable/bootloader/lk', 'vendor/mediatek/proprietary/bootable/bootloader/lk', 'vendor/mediatek/proprietary/bootable/bootloader/lk', 'android/bootable/bootloader/edk2']
outs: ['out/target/product', 'out/target/product', 'out/target/product', 'android/out/target/product']
efuses: ['vendor/mediatek/proprietary/scripts/sign-image_v2', 'vendor/mediatek/proprietary/scripts/sign-image_v2', 'vendor/mediatek/proprietary/scripts/sign-image_v2', 'sc13x_download_images_v2/qcm6125-la-2-0/common/sectools']
check if source .androiddir.sh path in /home/pi/.bashrc:
.androiddir.sh path not source in /home/pi/.bashrc
tail ~/.bashrc last 2 line for terminal check
~/.bashrc content
...
# add anpp(https://github.com/ZengjfOS/anpp) function to bash env
source ~/.androiddir.shsource ~/.bashrc四、cleanmake cleanrm ~/.androiddir.sh
sed -i "/.androiddir.sh/d" ~/.bashrc
sed -i "/ZengjfOS\/anpp/d" ~/.bashrc五、anpp使用方法5.1 自动补全使用anpp <tab><tab>a00   l00  m0    m8list projectanpp m0 <tab><tab>android  bs1      bs2      dts      kernel   outlist componentm0 <tab><tab>android  bs1      bs2      dts      kernel   outlist component5.2 项目源代码跳转projects中的名字去除-project后缀，小写名字可以直接跳转到对应的目录譬如M0-project，去除名字为M0，小写为m0，所以直接在终端输入m0，可以直接调转到其源代码根目录5.3 其他跳转命令NO.命令名说明1android跳转到当前project的根目录2bs1跳转到当前project的bootloader第一阶段目录3bs2跳转到当前project的bootloader第二阶段目录4dts跳转到当前project的设备树目录5kernel跳转到当前project的内核目录6out跳转到当前project的out目录7efuse跳转到当前project的签名工具目录六、自定义命令以上的命令都是相对通用的命令，如果需要自定义其他的命令，在custom.sh中进行处理project_product_custom()会被传入完整的项目参数，以供所有的数据处理，参数顺序参考config.json中的project_keys数组顺序自定义命令依赖project名字调用，例如：m0 test命令，调用M0-project的test自定义功能。本质是调用custom.sh中project_product_custom()，需要自行完成针对参数判断处理支持anppc（android project product custom）直接调用project_product_custom()函数处理七、自定义别名config.json中的alias字段用于自定义shell alias