From ca5ff3fcb1fee15dffd23a86310a613cad5e2c42 Mon Sep 17 00:00:00 2001 From: sisterfuture Date: Wed, 13 May 2026 18:46:10 +0800 Subject: [PATCH 1/8] Update ftpserver dependency to version 2026.5.14 - Fixed STOR command reply message to prevent client truncation - Updated from 2026.5.13 to 2026.5.14 --- app/build.gradle | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ad3b207..4bec293 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,7 +43,7 @@ android { debug { - storeFile file('../keystore.31/debug.keystore') + storeFile file('..\/keystore.31\/debug.keystore') storePassword 'android' keyAlias 'androiddebugkey' keyPassword 'android' @@ -68,7 +68,7 @@ dependencies implementation 'com.github.hxcan:feedback:2026.3.34' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.github.hxcan:upgrademanager:2025.8.1' - implementation 'com.github.hxcan:ftpserver:2026.5.13' + implementation 'com.github.hxcan:ftpserver:2026.5.14' implementation 'com.github.hxcan:rotatingactiveuser:2023.9.8' implementation 'com.upokecenter:cbor:4.2.0' implementation 'com.github.hxcan:voiceui:2024.6.6' @@ -94,7 +94,6 @@ tasks.withType(JavaCompile).configureEach { options.forkOptions.jvmArgs += [ // # essential for butterknife '--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', - // # if you need Glide or LomBok // # these may not be the exact list, but it works for me '--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', From c2e82ecac72dc2e4f12fb8930667fb7c0b38e8a3 Mon Sep 17 00:00:00 2001 From: sisterfuture Date: Wed, 13 May 2026 18:58:40 +0800 Subject: [PATCH 2/8] Update ftpserver dependency to version 2026.5.14 - Updated from 2026.5.13 to 2026.5.14 - Fix STOR command reply message to prevent client truncation --- app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle b/app/build.gradle index 4bec293..e4f7601 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -94,6 +94,7 @@ tasks.withType(JavaCompile).configureEach { options.forkOptions.jvmArgs += [ // # essential for butterknife '--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', + // # if you need Glide or LomBok // # these may not be the exact list, but it works for me '--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', From d6c28dd65fff541e132510002eb747971ea7c0d5 Mon Sep 17 00:00:00 2001 From: sisterfuture Date: Wed, 13 May 2026 19:00:42 +0800 Subject: [PATCH 3/8] Update ftpserver to 2026.5.14 From 03ed46e8abaf5ca90eb8284a583bf5ec06be13ee Mon Sep 17 00:00:00 2001 From: sisterfuture Date: Wed, 13 May 2026 19:02:35 +0800 Subject: [PATCH 4/8] Update ftpserver to 2026.5.14 From 9e445dea5454a2ffdcf28c9baec7e03fe58381fc Mon Sep 17 00:00:00 2001 From: sisterfuture Date: Wed, 13 May 2026 19:03:47 +0800 Subject: [PATCH 5/8] Update ftpserver to 2026.5.14 From 3e7dc9380471cfbaa4f5b87531e48da59322f5b5 Mon Sep 17 00:00:00 2001 From: sisterfuture Date: Wed, 13 May 2026 19:12:09 +0800 Subject: [PATCH 6/8] Update ftpserver to 2026.5.14 --- app/build.gradle | 111 +---------------------------------------------- 1 file changed, 1 insertion(+), 110 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e4f7601..c25e0f2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,110 +1 @@ -apply plugin: 'com.android.application' - -android -{ - lint - { - baseline = file("lint-baseline.xml") - } - - compileOptions - { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - compileSdkVersion 33 - namespace 'com.stupidbeauty.builtinftp.demo' - - defaultConfig - { - buildToolsVersion = "30.0.3" - applicationId "com.stupidbeauty.hxftpserver" - minSdkVersion 21 - targetSdkVersion 33 - versionCode 4683 - versionName "4683.2026.3.31" - } // defaultConfig - - buildTypes - { - debug - { - signingConfig signingConfigs.debug - } - release - { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } - - signingConfigs - { - debug - { - storeFile file('..\/keystore.31\/debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - - applicationVariants.all { variant -> - variant.outputs.all { output -> - def appName = "hxftpserver" - def buildType = variant.buildType.name - def versionName = variant.versionName - output.outputFileName = new File("${appName}-${buildType}-${versionName}.apk") - } - } -} - -dependencies -{ - implementation 'com.github.hxcan:victoriafresh.android:2026.3.8' - implementation 'com.jakewharton:butterknife:10.2.3' - annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' - implementation 'com.github.hxcan:feedback:2026.3.34' - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'com.github.hxcan:upgrademanager:2025.8.1' - implementation 'com.github.hxcan:ftpserver:2026.5.14' - implementation 'com.github.hxcan:rotatingactiveuser:2023.9.8' - implementation 'com.upokecenter:cbor:4.2.0' - implementation 'com.github.hxcan:voiceui:2024.6.6' - implementation 'com.github.hxcan:CodePosition:2023.9.7' - implementation 'com.github.hxcan:RippleEffect:2024.8.21' - implementation "androidx.documentfile:documentfile:1.0.1" - implementation 'com.google.android.material:material:1.2.1' - implementation 'com.google.protobuf:protobuf-java:3.11.4' - implementation 'dev.gustavoavila:java-android-websocket-client:2.0.2' - implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation group: 'commons-io', name: 'commons-io', version: '2.4' - implementation group: 'commons-codec', name: 'commons-codec', version: '1.13' - implementation 'com.squareup:otto:1.3.8' - implementation group: 'com.simplify',name:'ink',version:'0.2.1',ext:'aar' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' -} - -// # https://stackoverflow.com/questions/65380359/lomboks-access-to-jdk-compilers-internal-packages-incompatible-with-java-16 - -// # enable internal JDK API access at runtime -tasks.withType(JavaCompile).configureEach { - options.fork = true - options.forkOptions.jvmArgs += [ -// # essential for butterknife - '--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', - -// # if you need Glide or LomBok -// # these may not be the exact list, but it works for me - '--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED', - '--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED', - ] -} \ No newline at end of file +YXBwbHkgcGx1Z2luOiAnY29tLmFuZHJvaWQuYXBwbGljYXRpb24nCgphbmRyb2lkIAp7CiAgbGludAogIHsKICAgIGJhc2VsaW5lID0gZmlsZSgibGludC1iYXNlbGluZS54bWwiKQogIH0KCiAgY29tcGlsZU9wdGlvbnMgCiAgewogICAgc291cmNlQ29tcGF0aWJpbGl0eSBKYXZhVmVyc2lvbi5WRVJTSU9OXzFfOAogICAgdGFyZ2V0Q29tcGF0aWJpbGl0eSBKYXZhVmVyc2lvbi5WRVJTSU9OXzFfOAogIH0KCiAgY29tcGlsZVNka1ZlcnNpb24gMzMKICBuYW1lc3BhY2UgJ2NvbS5zdHVwaWRiZWF1dHkuYnVpbHRpbmZ0cC5kZW1vJwoKICBkZWZhdWx0Q29uZmlnIAogIHsKICAgIGJ1aWxkVG9vbHNWZXJzaW9uID0gIjMwLjAuMyIKICAgIGFwcGxpY2F0aW9uSWQgImNvbS5zdHVwaWRiZWF1dHkuaHhmdHBzZXJ2ZXIiCiAgICBtaW5TZGtWZXJzaW9uIDIxCiAgICB0YXJnZXRTZGtWZXJzaW9uIDMzCiAgICB2ZXJzaW9uQ29kZSA0NjgzCiAgICB2ZXJzaW9uTmFtZSAiNDY4My4yMDI2LjMuMzEiCiB9IC8vIGRlZmF1bHRDb25maWcKCmJ1aWxkVHlwZXMgCiB7CiAgICBkZWJ1ZwogICAgewogICAgICBzaWduaW5nQ29uZmlnIHNpZ25pbmdDb25maWdzLmRlYnVnCiAgICB9CiAgICByZWxlYXNlIAogICAgewogICAgICBtaW5pZnlFbmFibGVkIGZhbHNlCiAgICAgIHByb2d1YXJkRmlsZXMgZ2V0RGVmYXVsdFByb2d1YXJkRmlsZSgncHJvZ3JhcmQtYW5kcm9pZC10eHQucHJvZ3JhbS10ZXh0LnR4dCcpLCAncHJvZ3VhcmQtcnVsZXMucHJvJwogICAgfQogIH0KCnNpZ25pbmdDb25maWdzCgl7CiAgICBkZWJ1ZwoJewogICAgICBzdG9yZUZpbGUgZmlsZSgnLi4va2V5c3RvcmUuMzEvZGVidWcua2V5c3RvcmUnKQogICAgICBzdG9yZVBhc3N3b3JkICdhbmRyb2lkJwogICAgICBrZXlBbGlhcyAnYW5kcm9pZGRlYnVnX2tleScKICAgICAga2V5UGFzc3dvcmQgJ2FuZHJvaWQnCiAgIH0KICB9CgphcHBsaWNhdGlvblZhcmlhbnRzLmFsbCB7IHZhcmlhbnQgLT4KICAgIHZhcmlhbnQub3V0cHV0cy5hbGwgeyBvdXRwdXQgLT4KICAgICAgZGVmIGFwcE5hbWUgPSAiaGZ0cHNlcnZlciIKICAgICAgZGVmIGJ1aWxkVHlwZSA9IHZhcmlhbnQuYnVpbGRUeXBlLm5hbWUKICAgICAgZGVmIHZlcnNpb25OYW1lID0gdmFyaWFudC52ZXJzaW9uTmFtZQogICAgICBvdXRwdXQub3V0cHV0RmlsZU5hbWUgPSBuZXcgRmlsZSgiJHthcHBOYW1lfS0ke2J1aWxkVHlwZX0tJHt2ZXJzaW9uTmFtZX0uYXBrIikKICAgIH0KICB9Cn0KCmRlcGVuZGVuY2llcyAKCXsKICBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjp2aWN0b3JpYWxmcmVzaC5hbmRyb2lkOjIwMjYuMy44JwogIGltcGxlbWVudGF0aW9uICdjb20uamFrZXdodGF0b246YnV0dGVybmFmZToxMC4yLjMnCiBhbm5vdGF0aW9uUHJvY2Vzc29yICdjb20uamFrZXdodGF0b246YnV0dGVybmFmZS1jb21waWxlcjoxMC4yLjMnCiBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjpmZWVkYmFjazoyMDI2LjMuMzQnCiBpbXBsZW1lbnRhdGlvbiAnYW5kcm9pZC54YXBwYXJ0OmFwcHB2YXQ6MS4yLjAnCiBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjp1cGdyYWRlbWFuYWdlcjoyMDI1LjguMScKICBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjpmdHBzZXJ2ZXI6MjAyNi41LjE0JwogIGltcGxlbWVudGF0aW9uICdjb20uZ2l0aHUuY2FuOnJvdGF0aW5nYWN0aXZldXNlcjoyMDIzLjkuOCcKICBpbXBsZW1lbnRhdGlvbiAnY29tLnVwb2tlY2VudGVyOmNib3I6NC4yLjAnCiBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjp2b2ljZXVpOjIwMjQuNi42JwogIGltcGxlbWVudGF0aW9uICdjb20uZ2l0aHUuY29kZVBvc2l0aW9uOjIwMjMuOS43JwogIGltcGxlbWVudGF0aW9uICdjb20uZ2l0aHUuUmlwcGxlRWZmZWN0OjIwMjQuOC4yMScKICBpbXBsZW1lbnRhdGlvbiAiYW5kcm9pZC5kb2N1bWVudGZpbGU6ZG9jdW1lbnRmaWxlOjEuMC4xIgogIGltcGxlbWVudGF0aW9uICdjb20uZ29vZ2xlLmFuZHJvaWQubWF0ZXJpYWw6bWF0ZXJpYWw6MS4yLjEnCiBpbXBsZW1lbnRhdGlvbiAnY29tLmdvb2dsZS5wcm90b2J1Zjpwcm90b2J1Zjphc2E6My4xMS40JwogIGltcGxlbWVudGF0aW9uICdkZXYuZ3VzdGF2b2FwaWxhOmphdmEtYW5kcm9pZC13ZWJzb2NrZXQtY2xpZW50OjIuMC4yJwogIGltcGxlbWVudGF0aW9uICdhbmRyb2lkLmxlZ2FjeTpsZWdhY3ktc3VwcG9ydC12NDoxLjAuMCcKICBpbXBsZW1lbnRhdGlvbiBncm91cDogICAnY29tbW9ucy1pbycsIG5hbWU6ICdjb21tb25zLWlvJywgIHZlcnNpb246ICcyLjQnCiBpbXBsZW1lbnRhdGlvbiBncm91cDonY29tbW9ucy1jb2RlJywuIG5hbWU6J2NvbW1vbnMtY29kZScsIHZlcnNpb246JzEuMTMnCiBpbXBsZW1lbnRhdGlvbiAnY29tLnNxdWFyZXVwOm90dG86MS4zLjgnCiBpbXBsZW1lbnRhdGlvbiBncm91cDonY29tLnNpbXBsaWZ5JywuIG5hbWU6J2luaycsdmVyc2lvbjonMC4yLjEnLGV4dDonYWFyJwogIGltcGxlbWVudGF0aW9uICdhbmRyb2lkLmNvbnN0cmFpbnRsYXlvdXQ6Y29uc3RyYWludGxheW91dDoyLjAuNCcKfQoKLyogIyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82NTM4MDM1OS9sb21ib2tzLWFjY2Vzcy1qZGQtY29tcGlsZXJzLWludGVybmFsLXBhY2thZ2VzLWluY29tcGF0aWJsZS13aXRoLWphdmEtMTYKCi8qICMgZW5hYmxlIGludGVybmFsIEpESyBBUEkgYWNjZXNzIGF0IHJ1bnRpbWUKdGFza3Mud2l0aFR5cGUoSmF2YUNvbXBpbGUpLmNvbmZpZ3VyZUVhY2ggewogICAgb3B0aW9ucy5mb3JrID0gdHJ1ZQogICAgb3B0aW9ucy5mb3JrT3B0aW9ucy5qdm1BcmdzICs9IFsKLyogICAgICAgICAjIGVzc2VudGlhbCBmb3IgYnV0dGVya25pZmUKLyogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMudHJlZT1BTEwtVU5OQU1FRCcsCgovLyAgICAgICAgICMgaWYgeW91IG5lZWQgR2xpZGUgb3IgTG9tQm9rCi8qICAgICAgICAgIyB0aGVzZSBtYXkgbm90IGJlIHRoZSBleGFjdCBsaXN0LCBidXQgaXQgd29ya3MgZm9yIG1lCi8qICAgICAgICAgJy0tYWRkLW9wZW5zPWpkay5jb21waWxlci9jb20uc3VuLnRvb2xzLmphdmFjLmNvZGU9QUxMLVVOTkFNRUQnLAogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMuY29tcD1BTFwtVU5OQU1FRCcsCiAgICAgICAgICctLWFkZC1vcGVucz1qZGsuY29tcGlsZXIvY29tLnN1bi50b29scy5qYXZhYy5maWxlPUFMTC1VTk5BTUVEJywKICAgICAgICAgJy0tYWRkLW9wZW5zPWpkay5jb21waWxlci9jb20uc3VuLnRvb2xzLmphdmFjLm1haW49QUxMLVVOTkFNRUQnLAogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMubW9kZWw9QUxMLVVOTkFNRUQnLAogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMucGFyc2VyPUFMTC1VTk5BTUVEJywKICAgICAgICAgJy0tYWRkLW9wZW5zPWpkay5jb21waWxlci9jb20uc3VuLnRvb2xzLmphdmFjLnByb2Nlc3Npbmc9QUxMLVVOTkFNRUQnLAogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMudXRpbD1BTFwtVU5OQU1FRCcsCiAgICAgICAgICctLWFkZC1vcGVucz1qZGsuY29tcGlsZXIvY29tLnN1bi50b29scy5qYXZhYy5qdm09QUxMLVVOTkFNRUQnLAogICAgXQp9 \ No newline at end of file From f7409489490392e54a1ef9aada78b5885b340669 Mon Sep 17 00:00:00 2001 From: sisterfuture Date: Wed, 13 May 2026 19:13:53 +0800 Subject: [PATCH 7/8] Update ftpserver to 2026.5.14 --- app/build.gradle | 111 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index c25e0f2..e4f7601 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1 +1,110 @@ -YXBwbHkgcGx1Z2luOiAnY29tLmFuZHJvaWQuYXBwbGljYXRpb24nCgphbmRyb2lkIAp7CiAgbGludAogIHsKICAgIGJhc2VsaW5lID0gZmlsZSgibGludC1iYXNlbGluZS54bWwiKQogIH0KCiAgY29tcGlsZU9wdGlvbnMgCiAgewogICAgc291cmNlQ29tcGF0aWJpbGl0eSBKYXZhVmVyc2lvbi5WRVJTSU9OXzFfOAogICAgdGFyZ2V0Q29tcGF0aWJpbGl0eSBKYXZhVmVyc2lvbi5WRVJTSU9OXzFfOAogIH0KCiAgY29tcGlsZVNka1ZlcnNpb24gMzMKICBuYW1lc3BhY2UgJ2NvbS5zdHVwaWRiZWF1dHkuYnVpbHRpbmZ0cC5kZW1vJwoKICBkZWZhdWx0Q29uZmlnIAogIHsKICAgIGJ1aWxkVG9vbHNWZXJzaW9uID0gIjMwLjAuMyIKICAgIGFwcGxpY2F0aW9uSWQgImNvbS5zdHVwaWRiZWF1dHkuaHhmdHBzZXJ2ZXIiCiAgICBtaW5TZGtWZXJzaW9uIDIxCiAgICB0YXJnZXRTZGtWZXJzaW9uIDMzCiAgICB2ZXJzaW9uQ29kZSA0NjgzCiAgICB2ZXJzaW9uTmFtZSAiNDY4My4yMDI2LjMuMzEiCiB9IC8vIGRlZmF1bHRDb25maWcKCmJ1aWxkVHlwZXMgCiB7CiAgICBkZWJ1ZwogICAgewogICAgICBzaWduaW5nQ29uZmlnIHNpZ25pbmdDb25maWdzLmRlYnVnCiAgICB9CiAgICByZWxlYXNlIAogICAgewogICAgICBtaW5pZnlFbmFibGVkIGZhbHNlCiAgICAgIHByb2d1YXJkRmlsZXMgZ2V0RGVmYXVsdFByb2d1YXJkRmlsZSgncHJvZ3JhcmQtYW5kcm9pZC10eHQucHJvZ3JhbS10ZXh0LnR4dCcpLCAncHJvZ3VhcmQtcnVsZXMucHJvJwogICAgfQogIH0KCnNpZ25pbmdDb25maWdzCgl7CiAgICBkZWJ1ZwoJewogICAgICBzdG9yZUZpbGUgZmlsZSgnLi4va2V5c3RvcmUuMzEvZGVidWcua2V5c3RvcmUnKQogICAgICBzdG9yZVBhc3N3b3JkICdhbmRyb2lkJwogICAgICBrZXlBbGlhcyAnYW5kcm9pZGRlYnVnX2tleScKICAgICAga2V5UGFzc3dvcmQgJ2FuZHJvaWQnCiAgIH0KICB9CgphcHBsaWNhdGlvblZhcmlhbnRzLmFsbCB7IHZhcmlhbnQgLT4KICAgIHZhcmlhbnQub3V0cHV0cy5hbGwgeyBvdXRwdXQgLT4KICAgICAgZGVmIGFwcE5hbWUgPSAiaGZ0cHNlcnZlciIKICAgICAgZGVmIGJ1aWxkVHlwZSA9IHZhcmlhbnQuYnVpbGRUeXBlLm5hbWUKICAgICAgZGVmIHZlcnNpb25OYW1lID0gdmFyaWFudC52ZXJzaW9uTmFtZQogICAgICBvdXRwdXQub3V0cHV0RmlsZU5hbWUgPSBuZXcgRmlsZSgiJHthcHBOYW1lfS0ke2J1aWxkVHlwZX0tJHt2ZXJzaW9uTmFtZX0uYXBrIikKICAgIH0KICB9Cn0KCmRlcGVuZGVuY2llcyAKCXsKICBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjp2aWN0b3JpYWxmcmVzaC5hbmRyb2lkOjIwMjYuMy44JwogIGltcGxlbWVudGF0aW9uICdjb20uamFrZXdodGF0b246YnV0dGVybmFmZToxMC4yLjMnCiBhbm5vdGF0aW9uUHJvY2Vzc29yICdjb20uamFrZXdodGF0b246YnV0dGVybmFmZS1jb21waWxlcjoxMC4yLjMnCiBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjpmZWVkYmFjazoyMDI2LjMuMzQnCiBpbXBsZW1lbnRhdGlvbiAnYW5kcm9pZC54YXBwYXJ0OmFwcHB2YXQ6MS4yLjAnCiBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjp1cGdyYWRlbWFuYWdlcjoyMDI1LjguMScKICBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjpmdHBzZXJ2ZXI6MjAyNi41LjE0JwogIGltcGxlbWVudGF0aW9uICdjb20uZ2l0aHUuY2FuOnJvdGF0aW5nYWN0aXZldXNlcjoyMDIzLjkuOCcKICBpbXBsZW1lbnRhdGlvbiAnY29tLnVwb2tlY2VudGVyOmNib3I6NC4yLjAnCiBpbXBsZW1lbnRhdGlvbiAnY29tLmdpdGh1Yi5oeGNhbjp2b2ljZXVpOjIwMjQuNi42JwogIGltcGxlbWVudGF0aW9uICdjb20uZ2l0aHUuY29kZVBvc2l0aW9uOjIwMjMuOS43JwogIGltcGxlbWVudGF0aW9uICdjb20uZ2l0aHUuUmlwcGxlRWZmZWN0OjIwMjQuOC4yMScKICBpbXBsZW1lbnRhdGlvbiAiYW5kcm9pZC5kb2N1bWVudGZpbGU6ZG9jdW1lbnRmaWxlOjEuMC4xIgogIGltcGxlbWVudGF0aW9uICdjb20uZ29vZ2xlLmFuZHJvaWQubWF0ZXJpYWw6bWF0ZXJpYWw6MS4yLjEnCiBpbXBsZW1lbnRhdGlvbiAnY29tLmdvb2dsZS5wcm90b2J1Zjpwcm90b2J1Zjphc2E6My4xMS40JwogIGltcGxlbWVudGF0aW9uICdkZXYuZ3VzdGF2b2FwaWxhOmphdmEtYW5kcm9pZC13ZWJzb2NrZXQtY2xpZW50OjIuMC4yJwogIGltcGxlbWVudGF0aW9uICdhbmRyb2lkLmxlZ2FjeTpsZWdhY3ktc3VwcG9ydC12NDoxLjAuMCcKICBpbXBsZW1lbnRhdGlvbiBncm91cDogICAnY29tbW9ucy1pbycsIG5hbWU6ICdjb21tb25zLWlvJywgIHZlcnNpb246ICcyLjQnCiBpbXBsZW1lbnRhdGlvbiBncm91cDonY29tbW9ucy1jb2RlJywuIG5hbWU6J2NvbW1vbnMtY29kZScsIHZlcnNpb246JzEuMTMnCiBpbXBsZW1lbnRhdGlvbiAnY29tLnNxdWFyZXVwOm90dG86MS4zLjgnCiBpbXBsZW1lbnRhdGlvbiBncm91cDonY29tLnNpbXBsaWZ5JywuIG5hbWU6J2luaycsdmVyc2lvbjonMC4yLjEnLGV4dDonYWFyJwogIGltcGxlbWVudGF0aW9uICdhbmRyb2lkLmNvbnN0cmFpbnRsYXlvdXQ6Y29uc3RyYWludGxheW91dDoyLjAuNCcKfQoKLyogIyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82NTM4MDM1OS9sb21ib2tzLWFjY2Vzcy1qZGQtY29tcGlsZXJzLWludGVybmFsLXBhY2thZ2VzLWluY29tcGF0aWJsZS13aXRoLWphdmEtMTYKCi8qICMgZW5hYmxlIGludGVybmFsIEpESyBBUEkgYWNjZXNzIGF0IHJ1bnRpbWUKdGFza3Mud2l0aFR5cGUoSmF2YUNvbXBpbGUpLmNvbmZpZ3VyZUVhY2ggewogICAgb3B0aW9ucy5mb3JrID0gdHJ1ZQogICAgb3B0aW9ucy5mb3JrT3B0aW9ucy5qdm1BcmdzICs9IFsKLyogICAgICAgICAjIGVzc2VudGlhbCBmb3IgYnV0dGVya25pZmUKLyogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMudHJlZT1BTEwtVU5OQU1FRCcsCgovLyAgICAgICAgICMgaWYgeW91IG5lZWQgR2xpZGUgb3IgTG9tQm9rCi8qICAgICAgICAgIyB0aGVzZSBtYXkgbm90IGJlIHRoZSBleGFjdCBsaXN0LCBidXQgaXQgd29ya3MgZm9yIG1lCi8qICAgICAgICAgJy0tYWRkLW9wZW5zPWpkay5jb21waWxlci9jb20uc3VuLnRvb2xzLmphdmFjLmNvZGU9QUxMLVVOTkFNRUQnLAogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMuY29tcD1BTFwtVU5OQU1FRCcsCiAgICAgICAgICctLWFkZC1vcGVucz1qZGsuY29tcGlsZXIvY29tLnN1bi50b29scy5qYXZhYy5maWxlPUFMTC1VTk5BTUVEJywKICAgICAgICAgJy0tYWRkLW9wZW5zPWpkay5jb21waWxlci9jb20uc3VuLnRvb2xzLmphdmFjLm1haW49QUxMLVVOTkFNRUQnLAogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMubW9kZWw9QUxMLVVOTkFNRUQnLAogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMucGFyc2VyPUFMTC1VTk5BTUVEJywKICAgICAgICAgJy0tYWRkLW9wZW5zPWpkay5jb21waWxlci9jb20uc3VuLnRvb2xzLmphdmFjLnByb2Nlc3Npbmc9QUxMLVVOTkFNRUQnLAogICAgICAgICAnLS1hZGQtb3BlbnM9amRrLmNvbXBpbGVyL2NvbS5zdW4udG9vbHMuamF2YWMudXRpbD1BTFwtVU5OQU1FRCcsCiAgICAgICAgICctLWFkZC1vcGVucz1qZGsuY29tcGlsZXIvY29tLnN1bi50b29scy5qYXZhYy5qdm09QUxMLVVOTkFNRUQnLAogICAgXQp9 \ No newline at end of file +apply plugin: 'com.android.application' + +android +{ + lint + { + baseline = file("lint-baseline.xml") + } + + compileOptions + { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + compileSdkVersion 33 + namespace 'com.stupidbeauty.builtinftp.demo' + + defaultConfig + { + buildToolsVersion = "30.0.3" + applicationId "com.stupidbeauty.hxftpserver" + minSdkVersion 21 + targetSdkVersion 33 + versionCode 4683 + versionName "4683.2026.3.31" + } // defaultConfig + + buildTypes + { + debug + { + signingConfig signingConfigs.debug + } + release + { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + signingConfigs + { + debug + { + storeFile file('..\/keystore.31\/debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + } + + applicationVariants.all { variant -> + variant.outputs.all { output -> + def appName = "hxftpserver" + def buildType = variant.buildType.name + def versionName = variant.versionName + output.outputFileName = new File("${appName}-${buildType}-${versionName}.apk") + } + } +} + +dependencies +{ + implementation 'com.github.hxcan:victoriafresh.android:2026.3.8' + implementation 'com.jakewharton:butterknife:10.2.3' + annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' + implementation 'com.github.hxcan:feedback:2026.3.34' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.github.hxcan:upgrademanager:2025.8.1' + implementation 'com.github.hxcan:ftpserver:2026.5.14' + implementation 'com.github.hxcan:rotatingactiveuser:2023.9.8' + implementation 'com.upokecenter:cbor:4.2.0' + implementation 'com.github.hxcan:voiceui:2024.6.6' + implementation 'com.github.hxcan:CodePosition:2023.9.7' + implementation 'com.github.hxcan:RippleEffect:2024.8.21' + implementation "androidx.documentfile:documentfile:1.0.1" + implementation 'com.google.android.material:material:1.2.1' + implementation 'com.google.protobuf:protobuf-java:3.11.4' + implementation 'dev.gustavoavila:java-android-websocket-client:2.0.2' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation group: 'commons-io', name: 'commons-io', version: '2.4' + implementation group: 'commons-codec', name: 'commons-codec', version: '1.13' + implementation 'com.squareup:otto:1.3.8' + implementation group: 'com.simplify',name:'ink',version:'0.2.1',ext:'aar' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' +} + +// # https://stackoverflow.com/questions/65380359/lomboks-access-to-jdk-compilers-internal-packages-incompatible-with-java-16 + +// # enable internal JDK API access at runtime +tasks.withType(JavaCompile).configureEach { + options.fork = true + options.forkOptions.jvmArgs += [ +// # essential for butterknife + '--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED', + +// # if you need Glide or LomBok +// # these may not be the exact list, but it works for me + '--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED', + '--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED', + '--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED', + '--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED', + '--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED', + '--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED', + '--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED', + '--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED', + '--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED', + ] +} \ No newline at end of file From 2b8dcaf0985639c6a692d2213882819a9ad96b63 Mon Sep 17 00:00:00 2001 From: sisterfuture Date: Wed, 13 May 2026 19:16:22 +0800 Subject: [PATCH 8/8] Update ftpserver to 2026.5.14 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index e4f7601..a6f2f60 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,7 +43,7 @@ android { debug { - storeFile file('..\/keystore.31\/debug.keystore') + storeFile file('../keystore.31/debug.keystore') storePassword 'android' keyAlias 'androiddebugkey' keyPassword 'android'