# HostAndroid **Repository Path**: ntbyte/host-android ## Basic Information - **Project Name**: HostAndroid - **Description**: android应用加固 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-30 - **Last Updated**: 2025-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 主工程为App host-app为宿主工程 pcm-app为客户工程 解压[gradle-shadow.zip](gradle-shadow.zip)文件,拷贝至/.m2/repository/com目录。 # 打包插件 进入App目录,使用命令行打包 ./gradlew packageDebugPlugin 此命令会将pcm-app、sample-loader、sample-runtime三个工程一起打包,将3个打包文件再进行一次压缩,生成plugin.zip文件,后续需要将此文件加密,并放到到宿主工程assets目录下 # 打包pluginmanager cd PluginManager ./gradlew assembleDebug or assembleRelease 生成好的pluginmanager.apk放入宿主工程assets中 windows操作系统使用win目录下面的openssl.exe,其他操作系统可以用自带的 # 私钥生成指令 openssl genrsa -out private_key.pem 2048 # 提取公钥,用于加密 openssl rsa -in private_key.pem -pubout -out public_key.pem # 公钥加密 openssl pkeyutl -encrypt -pubin -inkey public.pem -in aes_key.txt -out aes_key.bin openssl pkeyutl -encrypt -pubin -inkey public.pem -in aes_iv.txt -out aes_iv.bin # 转base64 openssl base64 -in aes_key.bin -out aes_key.b64 openssl base64 -in aes_iv.bin -out aes_iv.b64 # (加密apk指令) openssl enc -aes-256-cbc -in ./build/plugin-debug.zip -out ./build/encrypted.zip -K a62bf2e0178fd31c681d26646db7d5d9bcfe845f77cf12b2d48b8dd5d7a93039 -iv 619c8c8d3e32655c964698d1babee70d # 解密命令 openssl enc -d -aes-256-cbc -nosalt -in encrypted.zip -out encrypted2.zip -K a62bf2e0178fd31c681d26646db7d5d9bcfe845f77cf12b2d48b8dd5d7a93039 -iv 619c8c8d3e32655c964698d1babee70d # 获取客户apk文件sha256 hash签名值 openssl dgst -sha256 ./build/encrypted.zip 得到如下结果: SHA256(./build/encrypted.zip)= 940f3b148804b48f69b7d0d54418bcfbf85f9b56dd14851ca9d22c20a90a771d 将等于号右边的复制到 ./host-app/src/main/cpp/native-lib.cpp中 【PLUGIN_APK_SIGN】这个变量 # 将encrypted.zip 复制到asset目录 mv ./build/encrypted.zip ./host-app/src/main/assets/ # 调试不检测 修改 AppCheck.h 中的宏 #define DEV_FLAG true,true为不校验,false为校验 # 打包主工程 native 字符串混淆需放开App/host-app/src/build.gradle中的cmake cppFlags和cFlags 字符串混淆不支持windows操作系统,具体配置参照网址:https://obfuscator.re/omvll/introduction/getting-started/ 此方式需通过命令行打包,以下为打包命令 cd ./App source omvll.env ./gradlew :host-app:assembleRelease 最终会在./App/host-app/build/outputs/apk/release生成apk文件 # 支持一键打包 通过执行build.sh进行打包,仅支持mac和linux操作系统,windows暂不支持