【注】本文最后更新于 November 17, 2020,文中内容可能已经过时。
对于没有 Android 开发经验的我来讲这是值得记录一下的事情……
编译
装备工作
- 安装 Arch Linux
- 配置好梯子
- 下载 CDDA 源码
- 切换到 CDDA 源码里的 android 目录(以下均假设你已经在这个目录里)
安装 JDK
1
2
3
|
# 此处也可以使用 openjdk8
pacman -S jdk8
sudo archlinux-java set java-8-jdk
|
安装 Android SDK
我是直接用 Android Studio 的 SDK Manager 装的,注意 CDDA 要求的是 28 的 SDK,不要装成 30 的了。官方也提供了手动安装的方法(如下):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# 配置相关环境变量
export XDG_CONFIG_HOME=$HOME/.config
export XDG_DATA_HOME=$HOME/.local/share
export ANDROID_SDK_HOME=$XDG_CONFIG_HOME/android
export ANDROID_SDK_ROOT=$XDG_DATA_HOME/android
export ANDROID_AVD_HOME=$XDG_DATA_HOME/android
export ANDROID_EMULATOR_HOME=$XDG_DATA_HOME/android
export ADB_VENDOR_KEY=$XDG_CONFIG_HOME/android
# 下载 sdk,扔到 ~/.loca/share/ 下
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip -d $ANDROID_SDK_ROOT
rm sdk-tools-linux-4333796.zip
$ANDROID_SDK_ROOT/tools/bin/sdkmanager --update
$ANDROID_SDK_ROOT/tools/bin/sdkmanager "tools" "platform-tools" "ndk-bundle"
$ANDROID_SDK_ROOT/tools/bin/sdkmanager --licenses
|
为 gradle 配置代理
辣鸡 Java 不吃 HTTP(S)_PROXY
,需要手动为 gradle 设置代理。这是卡了我很久的一步之一。
1
2
3
4
5
6
7
|
mkdir -p ~/.gradle
cat >> ~/.gradle/gradle.properties <<EOF
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=12333
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=12333
EOF
|
构建
辣鸡官方的示例不知道构建了多少个版本,我寻思着怎么编译这么慢。
1
2
3
|
# 你可以用 ./gradlew tasks 查看可用的任务
# 这个命令限定了只构建实验版的 64 位 release 版本,并且使用四线程
./gradlew assembleExperimentalRelease -Pj=4 -Pabi_arm_32=false
|
生成证书
你需要给你 apk 签个名才能装到手机上
1
2
3
4
5
|
keytool -genkey -v -keystore cdda.keystore -alias gundam_wing -keyalg RSA -validity 20000
keytool -importkeystore -srckeystore cdda.keystore -destkeystore cdda.p12 -srcstoretype JKS -deststoretype PKCS12
openssl pkcs12 -in cdda.p12 -nodes -out cdda.rsa.pem
sed -n '/BEGIN PRIVATE KEY/,/END PRIVATE KEY/p' cdda.rsa.pem > cdda.private.rsa.pem
sed -n '/BEGIN CERTIFICATE/,/END CERTIFICATE/p' cdda.rsa.pem > cdda.x509.pem
|
签名
1
2
3
|
# APK 路径就自己改算了……
APK_PATH=./app/build/outputs/apk/experimental/release/cataclysmdda-64b8950ada-experimental-arm64-v8a-release-unsigned.apk
~/.local/share/android/build-tools/28.0.3/apksigner sign --key cdda.pk8 --cert cdda.x509.pem $APK_PATH
|
没了
完成了,直接把 $APK_PATH
指向的文件复制出来就可以安装了。
重新打包
如果只是单纯地塞 MOD 进去的话,没必要手动编译一遍。只需要重新打包即可。步骤非常简单:
解压 apk
解压,就是字面意思。apk 本质是 zip,随便挑个工具解压就行。
修改
assets 里存放着游戏的资源文件,随便塞就行了。
重新压缩
也是字面意思,直接压缩(注意不要把父文件夹也压进去了),完事儿以后改后缀名为 .apk
签名
参照前面的过程,签名完就能愉快地安装了~
文章作者
Aloxaf
上次更新
2020-11-17
许可协议
知识共享署名-非商业性使用 4.0 国际许可协议