├── apksigner.jar ├── autogen.sh └── readme.md /apksigner.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jim-kirisame/brevent-ce-autobuild/541186539e916524628de3b2c681e9d44273cc1a/apksigner.jar -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | KEY_PATH=https://github.com/android/platform_build/raw/master/target/product/security/ 3 | 4 | # 同步源码 5 | echo "同步源码……" 6 | git fetch 7 | 8 | echo "查询远端版本" 9 | # 版本查询 10 | for i in `curl -s https://piebridge.me/br/`; do 11 | if [[ $i =~ href=\"(.*)\"\>br-(v[0-9]\.[0-9]\.[0-9][a-z]?)(.play)?\.apk ]]; then 12 | urls[0]="https://piebridge.me/br/${BASH_REMATCH[1]}" 13 | vers[0]="${BASH_REMATCH[2]}" 14 | fi 15 | done 16 | 17 | for i in `curl -s https://piebridge.me/br/archive/`; do 18 | if [[ $i =~ href=\"(.*)\"\>br-(v[0-9]\.[0-9]\.[0-9][a-z]?)(.play)?\.apk ]]; then 19 | urls=("${urls[@]}" "https://piebridge.me/br/archive/${BASH_REMATCH[1]}") 20 | vers=("${vers[@]}" "${BASH_REMATCH[2]}") 21 | fi 22 | done 23 | 24 | VERSIONS=$(git describe --tags `git rev-list --tags --max-count=10`) 25 | 26 | for tag in $VERSIONS; do 27 | git checkout $tag 28 | SERVER_VER=$(cat brevent-server.txt) 29 | i=0 30 | for ver in ${vers[@]} ; do 31 | if [[ "$ver" = "$SERVER_VER" ]] ; then 32 | url=${urls[$i]}; 33 | break 2; 34 | fi 35 | ((i++)); 36 | done 37 | done 38 | 39 | 40 | FILE_NAME=br-$ver.apk 41 | echo "当前编译版本:$ver" 42 | 43 | if [ ! -d tmp ]; then 44 | mkdir tmp 45 | fi 46 | cd tmp 47 | 48 | # 下载原版APP 49 | if [ ! -f $FILE_NAME ]; then 50 | wget $url -O $FILE_NAME; 51 | fi 52 | if [ ! -f $FILE_NAME ]; then 53 | echo "作者尚未放出$ver版本的APK,请稍后再试。" 54 | echo "或手工下载$ver,将其重命名为$FILE_NAME后放到tmp文件夹下。" 55 | exit -1; 56 | fi 57 | 58 | cd ../ 59 | 60 | # 编译 61 | gradle clean 62 | gradle :brevent:aR 63 | 64 | if [ ! -f ce.apk ]; then 65 | echo "编译失败,请查看上方日志以获取更多信息。" 66 | exit -1; 67 | fi 68 | 69 | # 添加黑域服务器 70 | cd tmp 71 | unzip $FILE_NAME classes2.dex 72 | jar uf ../ce.apk classes2.dex 73 | rm classes2.dex 74 | cd ../ 75 | 76 | # 检测并下载签名密钥 77 | if [ ! -e testkey.pk8 ]; then 78 | wget $KEY_PATH/testkey.pk8 79 | fi 80 | if [ ! -e testkey.x509.pem ]; then 81 | wget $KEY_PATH/testkey.x509.pem 82 | fi 83 | 84 | # 签名 85 | if [ -f apksigner.jar ]; then 86 | java -jar apksigner.jar sign --key testkey.pk8 --cert testkey.x509.pem ce.apk 87 | mv ce.apk br-$ver-ce.apk 88 | else 89 | echo "apksigner.jar 不存在,将不会对此APK进行签名。" 90 | mv ce.apk br-$ver-ce-unsigned.apk 91 | fi 92 | 93 | 94 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # 黑域社区版编译脚本 2 | 3 | ## 使用说明 4 | 5 | 下载后将`apksigner.jar`和`autogen.sh`放到黑域仓库目录下,在终端中执行 6 | 7 | ``` 8 | chmod +x autogen.sh 9 | ./autogen.sh 10 | ``` 11 | 12 | ## 系统需求 13 | 14 | 需要安装 JDK、Gradle、Git 和 Android SDK。 15 | 16 | 建议在Linux下使用,但是你也可以在Windows下通过Msys或者其他终端来执行此脚本。 17 | 18 | 仅在msys2下测试过,不保证其他系统也可以使用。 19 | 20 | ## 授权协议 21 | 22 | 在 [CC 0](https://creativecommons.org/publicdomain/zero/1.0/) 下进行授权 --------------------------------------------------------------------------------