android app for otb-cloud uploading https://otb-cloud.outsidethebox.top/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

121 lines
4.5 KiB

cd /home/def/outsidethebox/otb-cloud-android || exit 1
set -e
BACKUPDIR="/home/def/backuphere/otb-cloud-android"
mkdir -p "$BACKUPDIR"
mkdir -p /home/def/outsidethebox/apk-drop
echo "===== BACKUP ====="
cp /home/def/outsidethebox/otb-cloud-android/app/build.gradle \
"$BACKUPDIR/app.build.gradle.$(date +%Y%m%d-%H%M%S).bak"
cp /home/def/outsidethebox/otb-cloud-android/app/src/main/AndroidManifest.xml \
"$BACKUPDIR/AndroidManifest.xml.$(date +%Y%m%d-%H%M%S).bak"
cp /home/def/outsidethebox/otb-cloud-android/app/src/main/java/top/outsidethebox/otbcloud/MainActivity.kt \
"$BACKUPDIR/MainActivity.kt.$(date +%Y%m%d-%H%M%S).bak"
cp /home/def/outsidethebox/otb-cloud-android/app/src/main/res/layout/activity_main.xml \
"$BACKUPDIR/activity_main.xml.$(date +%Y%m%d-%H%M%S).bak"
echo "===== PATCH /home/def/outsidethebox/otb-cloud-android/app/src/main/java/top/outsidethebox/otbcloud/MainActivity.kt ====="
python3 - << 'PY'
from pathlib import Path
p = Path("/home/def/outsidethebox/otb-cloud-android/app/src/main/java/top/outsidethebox/otbcloud/MainActivity.kt")
text = p.read_text()
text = text.replace('private const val VIDEO_BATCH_SIZE = 5', 'private const val VIDEO_BATCH_SIZE = 2')
text = text.replace('private const val IMAGE_BATCH_SIZE = 50', 'private const val IMAGE_BATCH_SIZE = 25')
text = text.replace('private const val PAUSE_BETWEEN_BATCHES_MS = 800L', 'private const val PAUSE_BETWEEN_BATCHES_MS = 1500L')
old = '''
val ok = uploadSingleFile(deviceUuid, item)
if (ok) {
uploaded += 1
} else {
failed += 1
}
'''
new = '''
val ok = uploadSingleFile(deviceUuid, item)
if (ok) {
uploaded += 1
} else {
failed += 1
}
try {
Thread.sleep(300L)
} catch (_: Exception) {
}
System.gc()
'''
if old not in text:
raise SystemExit("FAILED: upload loop block not found in MainActivity.kt")
text = text.replace(old, new, 1)
p.write_text(text)
print("MainActivity.kt patched")
PY
echo "===== PATCH /home/def/outsidethebox/otb-cloud-android/app/build.gradle ====="
python3 - << 'PY'
from pathlib import Path
import re
p = Path("/home/def/outsidethebox/otb-cloud-android/app/build.gradle")
text = p.read_text()
text = re.sub(r'versionCode\s+\d+', 'versionCode 22', text)
text = re.sub(r'versionName\s+"[^"]+"', 'versionName "0.2.2"', text)
p.write_text(text)
print("build.gradle updated")
PY
echo "===== PATCH /home/def/outsidethebox/otb-cloud-android/app/src/main/AndroidManifest.xml ====="
python3 - << 'PY'
from pathlib import Path
p = Path("/home/def/outsidethebox/otb-cloud-android/app/src/main/AndroidManifest.xml")
text = p.read_text()
for old in ['OTB Cloud v0.2.1', 'OTB Cloud v0.2.0', 'OTB Cloud v0.1.9', 'OTB Cloud v0.1.8']:
text = text.replace(f'android:label="{old}"', 'android:label="OTB Cloud v0.2.2"')
p.write_text(text)
print("AndroidManifest.xml updated")
PY
echo "===== PATCH /home/def/outsidethebox/otb-cloud-android/app/src/main/res/layout/activity_main.xml ====="
python3 - << 'PY'
from pathlib import Path
p = Path("/home/def/outsidethebox/otb-cloud-android/app/src/main/res/layout/activity_main.xml")
text = p.read_text()
for old in ['OTB Cloud v0.2.1', 'OTB Cloud v0.2.0', 'OTB Cloud v0.1.9', 'OTB Cloud v0.1.8']:
text = text.replace(old, 'OTB Cloud v0.2.2')
for old in ['Android Backup Client v0.2.1', 'Android Backup Client v0.2.0', 'Android Backup Client v0.1.9', 'Android Backup Client v0.1.8']:
text = text.replace(old, 'Android Backup Client v0.2.2')
p.write_text(text)
print("activity_main.xml updated")
PY
echo "===== VERIFY SOURCE ====="
grep -Rn --exclude-dir=.gradle --exclude-dir=build --exclude="*.bak*" '0.2.2\|0.2.1\|0.2.0\|0.1.9\|0.1.8' \
/home/def/outsidethebox/otb-cloud-android/app \
/home/def/outsidethebox/otb-cloud-android/app/build.gradle || true
echo "===== BUILD ====="
cd /home/def/outsidethebox/otb-cloud-android || exit 1
./gradlew clean assembleDebug --no-daemon
echo "===== COPY APK ====="
cp /home/def/outsidethebox/otb-cloud-android/app/build/outputs/apk/debug/app-debug.apk \
/home/def/outsidethebox/apk-drop/otb-cloud-v0.2.2.apk
echo "===== VERIFY APK VERSION ====="
aapt dump badging /home/def/outsidethebox/otb-cloud-android/app/build/outputs/apk/debug/app-debug.apk 2>/dev/null | grep version || true
echo "===== FINAL APK ====="
ls -lh /home/def/outsidethebox/apk-drop/otb-cloud-v0.2.2.apk