Skip to content

v8 #یوسف_قبادی#633

Open
TGIR0 wants to merge 47 commits into
bepass-org:mainfrom
TGIR0:main
Open

v8 #یوسف_قبادی#633
TGIR0 wants to merge 47 commits into
bepass-org:mainfrom
TGIR0:main

Conversation

@TGIR0

@TGIR0 TGIR0 commented Oct 20, 2025

Copy link
Copy Markdown
Contributor

No description provided.

@TGIR0 TGIR0 changed the title Add Support Android TV and Fix Endpoint Display Add Support Android TV and Fix VPN Permission Oct 20, 2025
@TGIR0 TGIR0 changed the title Add Support Android TV and Fix VPN Permission Some Fixes From Android TV and Fix buildTun2SocksAar and more Oct 27, 2025

@TGIR0 TGIR0 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is fixed in buildTun2SocksAar commit

@TGIR0

TGIR0 commented Oct 27, 2025

Copy link
Copy Markdown
Contributor Author

درود
مشکل نمایش بخش اندپوینت در اندروید تی وی حل شده و پشتیبانی هایی از اندروید تی وی اعمال شده
اندروید مورد نیاز به 7 تغییر یافت چون در اندروید 6 و پایین تر مشکل کرش هست که به علت تداخل با ویژگی های جدید است
TargetSDK نیز به 36 ارتقا یافت
بزودی مشکلاتی که برای کرش در اندروید های جدید هستن که به سیستم تم بیشتر ربط دارد حل خواهند شد

@markpash

Copy link
Copy Markdown
Member

درود
مشکل نمایش بخش اندپوینت در اندروید تی وی حل شده و پشتیبانی هایی از اندروید تی وی اعمال شده
اندروید مورد نیاز به 7 تغییر یافت چون در اندروید 6 و پایین تر مشکل کرش هست که به علت تداخل با ویژگی های جدید است
TargetSDK نیز به 36 ارتقا یافت
بزودی مشکلاتی که برای کرش در اندروید های جدید هستن که به سیستم تم بیشتر ربط دارد حل خواهند شد

بسیار عالی، این رو به زودی بیلد میکنم و تست میکنم. خیلی ممنون ❤️

@TGIR0

TGIR0 commented Oct 28, 2025

Copy link
Copy Markdown
Contributor Author

یه مشکل هست
قضیه اینه که کتابخانه هایی که Arr استفاده میشن دیگه سمت اونا توسعه داده نمیشن
و این باعث این شده با نسخه های جدیدتر Go همگام نباشه
و این باعث عدم پشتیبانی از سیستم عامل های جدیده
باید ARR از اول با پکیج های بهتر جایگزین شه و ساختارش تغییر پیدا کنه
@markpash @lewis-nixon

@TGIR0

TGIR0 commented Oct 28, 2025

Copy link
Copy Markdown
Contributor Author

یکی از مشکلات فعلی اینه که Gradle بروز نمیشه کرد چون بایعث تداخل میشه و این باعث عدم پشتیبانی از SDK 36 و SDK 36.1 شه
Go هم با uTLS تداخل داره
image

مشکل تم هم به کامپوننت های فعلی مربوط میشه و طبق قوانین جدید سیاست گوگل بهتره از Material UI 3 استفاده شه
همینطور که در https://github.com/bepass-org/oblivion/actions هست حتی در نسخه ای که تغییرات من اعمال نشده بیلد AAR مشکل داره
با تغییر نسخه های پکیج و چندین کانفیگ حل میشه ولی سیستم اتصال فیلترشکن از کار میوفته کاملا
به نظرتون چه کاری انجم بدیم بهتره

@markpash

Copy link
Copy Markdown
Member

یه مشکل هست
قضیه اینه که کتابخانه هایی که Arr استفاده میشن دیگه سمت اونا توسعه داده نمیشن
و این باعث این شده با نسخه های جدیدتر Go همگام نباشه
و این باعث عدم پشتیبانی از سیستم عامل های جدیده
باید ARR از اول با پکیج های بهتر جایگزین شه و ساختارش تغییر پیدا کنه
@markpash @lewis-nixon

سعی میکنم که قسمت Go رو در روزهای آینده آپدیت کنم.

@TGIR0

TGIR0 commented Oct 29, 2025

Copy link
Copy Markdown
Contributor Author

hello again
I Refactoring the project to Material 3
when I finished will send as Commit

@lewis-nixon lewis-nixon requested a review from markpash October 29, 2025 17:19
@TGIR0 TGIR0 marked this pull request as draft November 6, 2025 21:16
@TGIR0 TGIR0 marked this pull request as ready for review November 9, 2025 17:08
@TGIR0

TGIR0 commented Nov 17, 2025

Copy link
Copy Markdown
Contributor Author

کل پکیج ها به اخرین نسخه بروز شدند
JAVA حداقل به 17 و از جاوای 25 نیز پشتیبانی میکند
با اخرین ساختار GRADLE بازسازی شد کانفیگ ها
بهبود ها و هشدار ها رفع شد
کتابخانه های موجود به اخرین نسخه رسمی بروز شدند
در حال تست MASQUE و بازطراحی دکمه اتصال هستم
دکمه اتصال از یک پکیج دیگر استفاده میکند که منسوخ و دارای اختلال است و نیازمند همگام سازی ان با طراحی متریال میباشد
در دیباگ بیلد خطایی یا هشداری مشاهده نشده
مشکل بیلد نشدن TUN با فعالسازی CGO حل شد
بزودی GEO IP و GEO Site نیز اضافه خواهم کرد
اندروید 16 بطور کامل پشتیبانی میشود

@markpash

Copy link
Copy Markdown
Member

کل پکیج ها به اخرین نسخه بروز شدند
JAVA حداقل به 17 و از جاوای 25 نیز پشتیبانی میکند
با اخرین ساختار GRADLE بازسازی شد کانفیگ ها
بهبود ها و هشدار ها رفع شد
کتابخانه های موجود به اخرین نسخه رسمی بروز شدند
در حال تست MASQUE و بازطراحی دکمه اتصال هستم
دکمه اتصال از یک پکیج دیگر استفاده میکند که منسوخ و دارای اختلال است و نیازمند همگام سازی ان با طراحی متریال میباشد
در دیباگ بیلد خطایی یا هشداری مشاهده نشده
مشکل بیلد نشدن TUN با فعالسازی CGO حل شد
بزودی GEO IP و GEO Site نیز اضافه خواهم کرد
اندروید 16 بطور کامل پشتیبانی میشود

سمت warp plus یه آپدیت ریز دادم که باعث میشه بیلد بشه روی گو ۱.۲۴, میتونی همین رو بدون اضافه کردن قابلیت جدید، آماده مرج کنی تا بتونم یه تست بگیرم؟

@TGIR0

TGIR0 commented Nov 18, 2025

Copy link
Copy Markdown
Contributor Author

کل پکیج ها به اخرین نسخه بروز شدند
JAVA حداقل به 17 و از جاوای 25 نیز پشتیبانی میکند
با اخرین ساختار GRADLE بازسازی شد کانفیگ ها
بهبود ها و هشدار ها رفع شد
کتابخانه های موجود به اخرین نسخه رسمی بروز شدند
در حال تست MASQUE و بازطراحی دکمه اتصال هستم
دکمه اتصال از یک پکیج دیگر استفاده میکند که منسوخ و دارای اختلال است و نیازمند همگام سازی ان با طراحی متریال میباشد
در دیباگ بیلد خطایی یا هشداری مشاهده نشده
مشکل بیلد نشدن TUN با فعالسازی CGO حل شد
بزودی GEO IP و GEO Site نیز اضافه خواهم کرد
اندروید 16 بطور کامل پشتیبانی میشود

سمت warp plus یه آپدیت ریز دادم که باعث میشه بیلد بشه روی گو ۱.۲۴, میتونی همین رو بدون اضافه کردن قابلیت جدید، آماده مرج کنی تا بتونم یه تست بگیرم؟

چشم یه کامیت جدا میدم براش

@TGIR0

TGIR0 commented Nov 18, 2025

Copy link
Copy Markdown
Contributor Author

یه مشکلی هست سمت برنامه که به go 1.24 همگام نیست یکم بهت مهلت بده این مشکل رو حل کنم و از اخرین نسخه warp plus نیز استفاده کنم و نتیجه رو بفرستم

@TGIR0

TGIR0 commented Nov 20, 2025

Copy link
Copy Markdown
Contributor Author

با آخرین استاندارد کل مشکلات موجود در لاگ ها و مشکلات شناسایی شده
بخش های غیرفعال
منسوخ
اضافی
همگی اعمال شدند
سایفون برای رفع تداخل بین نسخه ها و مشکل بیلد حذف گردید
مقادیر ترجمه ها بهبود یافته اند

@TGIR0

TGIR0 commented Nov 20, 2025

Copy link
Copy Markdown
Contributor Author

@markpash در وارپ پلاس کل سایفون را حذف کن با TLS تداخل داره و همینطور کتابخانه های golang.org/x/crypto
به همین علت الان نمیتونم خروجی بگیرم
در سمت برنامه حذف میکنم تو هم در سمت هسته این کار را کن

@markpash

Copy link
Copy Markdown
Member

@markpash در وارپ پلاس کل سایفون را حذف کن با TLS تداخل داره و همینطور کتابخانه های golang.org/x/crypto
به همین علت الان نمیتونم خروجی بگیرم
در سمت برنامه حذف میکنم تو هم در سمت هسته این کار را کن

فکر کنم یه راه بهتری برای این باشه، بذار امروز یه تست بگیرم

@TGIR0

TGIR0 commented Dec 12, 2025

Copy link
Copy Markdown
Contributor Author

خسته نباشید
یه مدت مجبور شدم روی بقیه پروژه ها کار کنم
یکیش تکمیل شد
یکیش وضعیتش خوبه
اون تموم شد بر میگردم به تغییر هسته این برنامه و از vwarp استفاده میکنم به جای هسته فعلی

@alijamshidiyan1-tech

Copy link
Copy Markdown

سلام کار نمیکنه ؟ تنظیمات رو چطور‌وارد کنم ؟

@TGIR0

TGIR0 commented Feb 19, 2026

Copy link
Copy Markdown
Contributor Author

خسته نباشید
بعد از مدت ها قطعی برگشتم با تغییر اکوسیستم
190 فایل تغییر یافتن
ساختار برنامه بازطراحی میشه برای هسته جدید
دفعه قبلی هسته براش در نظر گرفته نشده بود ولی اینبار از vwarp به طور موقت و کاندوئیت سایفون استفاده میکنم که پرچمدار های فعلی هستن

@TGIR0

TGIR0 commented Feb 19, 2026

Copy link
Copy Markdown
Contributor Author

سلام کار نمیکنه ؟ تنظیمات رو چطور‌وارد کنم ؟

هسته برنامه غیرفعاله
صرفا در اول رفع مشکلات کرش و باگ و اجرا و بهینه سازی و پشتیبانی بروز در اولویت بود در نسخه 8

@TGIR0

TGIR0 commented Feb 19, 2026

Copy link
Copy Markdown
Contributor Author

@markpash
این تغییرات حجیم که درحال تکمیل هستن کل ساختار جاوا رو حذف میکنه و به کاتولین ترجمه میشه
Gradle 9 با اندروید 16 به طور پیشرفته تر
بهینه سازی فوق العاده زیاد (نزدیک 80 درصد نسبت به نسخه 8 و بهبود چندین برابری نسبت به نسخه 7)
vwarp یک فورک از وارپ پلاسه که توسط کاربر بنام وید توسعه داده میشه برای شرایط ایران
لایه های ایمنی بالا اضافه میکنه
از این هسته به جا vwarp استفاده میکنیم که برای این کاربر هم مفید باشه که بازخورد بگیره و بهبود بده ساختارشو

@TGIR0

TGIR0 commented Feb 26, 2026

Copy link
Copy Markdown
Contributor Author
image

@TGIR0

TGIR0 commented May 4, 2026

Copy link
Copy Markdown
Contributor Author

درود
همانطور که با خبر هستید قطعی 65 روزه و بیشتر اینترنت در ایران وجود دارد
گزارشاتی که عرض میکنم قبل از خاموشی اتفاق افتادن:
1-همزمان با توسعه سمت برنامه oblivion شروع به بازسازی چندین هسته های معروف مانند Singbox به زبان برنامه نویسی RUST کردم
همانطور که با خبر هستید به خاطر نشتی هسته Xray یوتوب متوجه ایپی های ایرانی شد
زبان Rust به علت ماهیت ذاتی اش اجازه کرش و Leak نمیده
در امنیت هم لایه های بسیار بهتری از زبان Go داره
هسته برنامه در فاز اول فقط به کد های Rust ترجمه شده اند
اگر قطعی وجود نداشت اکنون تا حد کافی تست های ممکن روی هسته انجام شده بود و اماده اعمال روی هسته ممکن بود
در سمت برنامه:
پشتیبانی از اندروید 17
ارتقا کتابخانه ها مانند MUI
ارتقا kotlin به نسخه پایدار و ارتقا رسمی و پایدار کل پروژه به JAVA 25
تغییر کل قایل های Java به kt برای بهینه سازی اکوسیستم
اعمال بهینه سازی و رفع مشکلات heap و مموری مربوط به نسخه های اخیر JAVA که از سوی سازنده رفع شده
اعمال فلگ های بهینه سازی جاوا بر روی کتابخانه های مربوطه
تغییر اکوسیستم Gradle به ساختار جدید واقع در مستندات Gradle و kotlin
در زیر گوشه چشمی از تغییرات رو مشاهده میکنید:

2026-02-19

Upgraded

  • Kotlin: 2.2.102.3.20-RC (gradle/libs.versions.toml)
  • KSP: 2.3.52.3.6 (gradle/libs.versions.toml)
  • Kotlin compiler args: -Xjvm-default=all (deprecated) → -jvm-default=enable (build.gradle, app/build.gradle)
  • Added Kotlin EAP repository (restricted to org.jetbrains.kotlin*) to support Kotlin 2.3.20-RC artifacts (settings.gradle)

Notes

  • Removed the gradle-versions-plugin (dependencyUpdates) because it crashes with java.util.ConcurrentModificationException on this Gradle/AGP stack. Use version_audit.ps1 instead.
  • detekt-gradle-plugin currently triggers a Gradle 9 deprecation warning (ReportingExtension.file(String)), so it must be updated before moving to Gradle 10.

2026-04-25 (initial changes)

Upgraded

Core Toolchain

  • Kotlin: 2.3.20-RC2.4.0 (later reverted, see final corrections)
  • KSP: 2.3.62.4.0-1.0.31 (later aligned with Kotlin downgrade, see final corrections)
  • AGP: 8.14.09.1.0 (gradle/libs.versions.toml)
  • Gradle: 9.2.19.3.1 (wrapper + gradle-wrapper.properties)
  • JDK: 2125 (toolchain JVM, daemon JVM, gradle.properties)
  • NDK: 29.0.14206865 (unchanged, but verified on AGP 9)

AndroidX & Compose

  • Compose BOM: 2026.02.002026.04.00
  • Navigation Compose: 2.9.72.10.0-alpha01
  • Activity Compose: 1.13.0-alpha011.13.0-alpha02
  • Core KTX: 1.18.0-rc011.18.0
  • Lifecycle: 2.10.0 (unchanged)
  • AppCompat: 1.7.11.7.2
  • Material Design: 1.14.0-alpha091.14.0-alpha10
  • ConstraintLayout: 2.2.1 (unchanged)
  • Fragment: 1.8.9 (unchanged)
  • Core Splashscreen: 1.2.0 (unchanged)
  • ProfileInstaller: 1.4.1 (unchanged)

Plugin Dependencies

  • Google Services: 4.4.44.4.5
  • Firebase Plugins: Crashlytics 3.0.63.0.7; Perf 2.0.22.0.3
  • Detekt: 1.23.81.24.0
  • Spotless: 8.2.18.3.0
  • Dependency Analysis: 3.5.13.6.0

Core Libraries

  • Hilt: 2.59.2 (unchanged)
  • OkHttp: 5.3.2 (unchanged)
  • Coroutines: 1.10.2 (unchanged)
  • MMKV: 2.3.0 (unchanged here; later bumped, see final corrections)
  • Coil: 3.3.03.4.0-alpha01
  • LeakCanary: 3.0-alpha-83.0-alpha-9

Massive Java to Kotlin Migration

  • Converted all remaining Java source files to Kotlin, including:
    • ApplicationLoader (now fully Hilt-aware, with proper error isolation and Timber logging)
    • BaseActivity, StateAwareBaseActivity
    • All activities: MainActivity, SettingsActivity, LogActivity, SplashScreenActivity, SplitTunnelActivity, InfoActivity
    • All adapters: BypassListAppsAdapter, EndpointsBottomSheet, SplitTunnelOptionsAdapter
    • Utility classes: FileManager, SystemUtils, ColorUtils, LocaleManager, HostPortParser, etc.
    • Custom views: Icon, TouchAwareSwitch
    • DNS and network modules: NetworkModule, DnsUriParserTest, DnsExecutionPlannerTest, etc.
    • Build-time classes: FileExistsValueSource, OptionalPropertiesValueSource
    • Removed all Java sources; project is now fully Kotlin-based.
  • Updated app/build.gradle to use alias(libs...) exclusively for plugins and dependencies.
  • Removed deprecated vectorDrawables.useSupportLibrary and redundant buildConfig flag from app/build.gradle.
  • Migrated release signing configuration from hardcoded values to external keystore.properties (gitignored), with a validateReleaseSigning task.
  • Rewrote gomobile tasks (buildTun2socksAar) using providers.exec() for Configuration Cache compatibility.
  • Switched FileManager.initialize call from BaseActivity to ApplicationLoader to avoid redundant initialisation.
  • Refactored FileManager into a singleton object, added Keys constants, and replaced manual locking with ReentrantReadWriteLock.
  • Centralised all VPN configuration building in FileManager.getVpnConfig() under a single read-lock for consistency.

Lint & Code Quality

  • Lint baseline (lint-baseline.xml) completely emptied after fixing all reported issues:
    • Updated dependency versions.
    • Removed unused resources (drawables, colors, strings, dimensions/styles, arrays).
    • Fixed icon density issues and removed redundant png copies in favour of anydpi vector drawables.
    • Replaced LinearLayout in toast.xml with a single TextView using compound drawables.
    • Removed overdraw on root elements by relying on theme backgrounds.
    • Hardcoded endpoint text moved to string resources.
  • Upgraded detekt.yml to the latest official baseline, updated rule names and properties.
  • Deleted the lint baseline file entirely (zero lint warnings now).
  • Removed gradle-versions-plugin because it crashes on this Gradle/AGP stack.
    Use version_audit.ps1 instead.

ProGuard / R8

  • Rewrote proguard-rules.pro with modern best practices:
    • Enabled line number retention and source file renaming for Crashlytics visibility.
    • Added -assumenosideeffects to strip android.util.Log calls in release builds.
    • Retained native library rules for tun2socks and go.

Build Infrastructure

  • Updated gradle.properties:
    • JVM args: -Xmx2048M (from 1536M); removed obsolete -XX:MaxPermSize.
    • Enabled parallel builds (org.gradle.parallel=true).
    • Set org.gradle.warning.mode=all.
    • Added android.builtInKotlin=true for AGP 9.x (though it is the default, explicit is safer).
    • android.enableR8.fullMode=true kept for clarity (default since AGP 8).
  • Updated wrapper scripts (gradlew, gradlew.bat, gradle-wrapper.properties) to match the current Gradle wrapper version.
  • Updated devshell.nix and flake.nix to target JDK 26 and Go 1.26 for future‑proofing (the project still compiles with JDK 25).
  • Updated version_audit.ps1 to compare against the latest stable Gradle version (not RCs), avoiding false positives.
  • Revised .gitignore to track new build artifacts and Kotlin caches properly.

Configuration & App Manifest

  • Overhauled AndroidManifest.xml:
    • Added android:foregroundServiceType="dataSync|specialUse" and the corresponding PROPERTY_SPECIAL_USE_FGS_SUBTYPE to the VPN service (required since Android 14).
    • Removed the dangerous QUERY_ALL_PACKAGES permission; kept only safe <queries> entries.
    • Ensured compatibility with Predictive Back gesture on Android 16+.
    • Removed deprecated usesCleartextTraffic attribute; network security is now controlled exclusively via networkSecurityConfig.
  • Redesigned dns_providers.json into a structured catalog (pinned, verified, community) with Iranian providers, selectionWeight fields, and health‑check rules for the custom DNS engine.
  • Resolved Git conflict in dimens.xml, keeping all spacing and radius tokens with proper documentation.

Core Tunnel (Go) — tun2socks.go

  • Complete rewrite of the tunnel core for safety and resource hygiene:
    • Eliminated global mutable state; all lifecycle is now managed by a Tunnel struct.
    • Added Start/Wait/Stop non‑blocking semantics with proper goroutine draining.
    • Added panic recovery in the main worker goroutine with full stack‑trace logging.
    • Capturing stdout/stderr is done with os.Pipe; both are restored cleanly on shutdown.
    • Used sync.Pool for zero‑allocation log pipeline buffers.
    • Input validation (validateOptions) reports all errors at once using errors.Join.
    • All file descriptors and goroutines are guaranteed to be released before Stop returns.

2026-04-25 (final corrections — post‑audit)

Version Corrections

  • Kotlin: 2.4.0 reverted to 2.3.212.4.0 is not yet released (planned June‑July 2026).
  • KSP: 2.4.0-1.0.312.3.21-1.0.31 (aligned with Kotlin downgrade).
  • Gradle: 9.3.19.4.1 — latest stable as of late April 2026.
  • MMKV: 2.3.02.4.0 (released March 2026).
  • Coil: 3.4.0-alpha013.4.0 (stable release).
  • Navigation Compose: 2.10.0-alpha012.9.7 (reverted to stable; the alpha is not recommended for production).
  • Spotless: 8.3.08.4.0 (latest release).
  • Go (devshell): 1.251.26.1 (latest stable; aligned with devshell.nix).
  • JDK (devshell): 2526 (aligned with devshell.nix; the project’s compilation toolchain remains on JDK 25 until full validation).

Config Adjustments

  • Added android.builtInKotlin=true to gradle.properties (explicit for AGP 9.x).
  • Updated Gradle_Playbook.md and devshell.nix to reflect final version numbers.
  • Finalised tun2socks.go with all reviewed improvements (race‑condition fix, panic recovery, stdout/stderr capture hygiene, resource‑pool cleanup).
  • Updated flake.nix to pin NDK 29.0.14206865 (matching the project) and JDK 26.

Notes

  • Kotlin 2.4.0 should be adopted when it reaches stable (target: mid‑2026).
  • Gradle 9.4.1 officially supports JDK 26, but the project’s compilation toolchain remains on JDK 25 until all dependencies are verified against JDK 26.
  • The dependency analysis plugin (com.autonomousapps.dependency-analysis) stays at 3.6.0 — no newer stable version available.
  • All Java files have been deleted and the project is now 100% Kotlin (including buildSrc and tests). No Java source remains.

Bot added 4 commits May 4, 2026 14:56
Convert .Java to .kt
remove old grade files and moved to new files
use only used packages and upgrade to latest version + delete some log files + update md files and other files
@TGIR0

TGIR0 commented May 4, 2026

Copy link
Copy Markdown
Contributor Author

هنوز کار داره تا تکمیل کنم یکم منتظر باشید
هسته رو برای اخر نگه داشتم که برنامه مشکلی نداشته باشه
چون حجم تغییرات بسیار زیاده برای شما و من دردسر هست که فایل ها بررسی شه
بعد از تکمیل فایل نهایی بیلد شده رو تست کنید در صورت مطلوب بودن به سمت هسته برویم

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants