شما میخواید به ازای هر کاربر یک فایل apk تولید کنید که مثلاً کد کاربر داخل یه فایل متنی قرارداده بشه و تو پوشه asset فایل apk جایگذاری بشه، درسته ؟
اگر اینطور هست شما میتونید فایل هایی رو به apk اضافه کنید یا از داخلش حذف کنید، البته با اینکار امضاء دچار مشکل میشه و باید از نو امضاء بشه
یک اسکریپت Bash برای نیازی که داشتم آماده کردم که براتون میزارم
#!/bin/bash
USERID=
BASEDIR="/home/user/path/to/base/dir"
LIB=$BASEDIR/lib
APK=$BASEDIR/apk-unsigned/your-app.apk
FILE_NAME="assets/info.txt"
while getopts u: opt; do
case $opt in
u)
USERID=$OPTARG
;;
esac
done
shift $((OPTIND - 1))
USERDIR=$BASEDIR/$USERID
mkdir -p $USERDIR/assets
echo $USERID > $USERDIR/$FILE_NAME
cp $APK $USERDIR/app.apk
cd $USERDIR
$LIB/aapt remove app.apk $FILE_NAME
$LIB/aapt add app.apk $FILE_NAME
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore $LIB/your-app-key.keystore -storepass PASSWORD -keypass KEY_PASSWORD -signedjar signed.apk app.apk ALIAS
$LIB/zipalign -v 4 signed.apk $BASEDIR/apps/final-app-$USERID.apk
rm -f -R $USERDIR/
کدها گویا هست، اما اگر سوالی داشتید در خدمتم.
ضمن اینکه این اسکریپت bash هست و رو لینوکس اجرا میشه، اگه نیاز هست رو ویندوز اجرا بشه معادلش رو برای ویندوز بنویسید.
همچنین اسکریپت برای اجرا نیاز به aapt و zipalign از بسته ی platform-tools اندروید و jarsigner از پکیج جاوا نیاز داره، پس مطمئن بشید که جاوا نصب هست و دو فایل دیگه هم در مسیر lib موجود باشن.