Repository navigation
fa CHANGELOG
Languages: English | العربية | Čeština | Deutsch | Español | فارسی | Français | हिन्दी | Bahasa Indonesia | Italiano | 日本語 | 한국어 | Nederlands | Polski | Português | Русский | Svenska | ไทย | Türkçe | Tiếng Việt | 中文
همه تغییرات مهم VDBackup اینجا مستند شدهاند. فقط به انگلیسی.
رفع اشکال:
- پوشههای پشتیبان اکنون بهطور خودکار در مدیر فایل قابل باز شدن میمانند: مجوزهایشان هنگام نصب، در هر بوت و هر بار که WebUI باز میشود دوباره اعمال میشود، پس پوشهای که فقط برای مالک مانده بود (مثلا پشتیبانی که پیش از v1.03.2 ساخته شده) بدون هیچ گام دستی خودش را درست میکند.
حریم خصوصی:
- وقتی نسخههای پشتیبان محلی دارید، اکنون برگهٔ پشتیبانها یادآوری میکند که پوشهٔ پشتیبان را با SUSFS پنهان کنید، درست مانند برنامهٔ همراه: وجودش در غیر این صورت میتواند روت یا بوتلودر قفلنشده را لو بدهد. پنهانسازی را SUSFS انجام میدهد؛ یادآوری فقط شما را راهنمایی میکند.
پشتیبانها:
-
اکنون میتوانید تعیین کنید که هر برنامه چه مواردی را پشتیبان بگیرد - مثلا فقط APK یا APK + OBB - که در پشتیبانهای انبوه، خودکار و زمانبندیشده اعمال میشود. پشتیبان دستی تکی همچنان امکان انتخاب در همان لحظه را میدهد، با پیشپرشدن از مجموعهٔ برنامه. آن را در تنظیمات، کنار فهرست برنامههای مستثنا، تنظیم کنید.
-
پیشتنظیمهای پشتیبان: مجموعههای نامدار از آنچه میخواهید را ذخیره کنید و با یک انتخاب در پنجرهٔ پشتیبان اعمال کنید.
-
چندکاربره: پشتیبانهای برنامه، پشتیبانهای ویژه و بازگردانیها اکنون همگی از کاربر اندرویدی که انتخاب میکنید پیروی میکنند.
-
برنامهها کاملتر و آمادهتر بازمیگردند: پروفایلهای کامپایل ART و دسترسیهای شنوندهٔ اعلان، دسترسپذیری و معافیت باتری Doze آنها پشتیبانگیری و بازگردانی میشوند.
-
بازگردانی مطمئنتر: مالکیت فایلها و بافتار SELinux روی دستگاه مقصد دوباره استخراج میشود، پس بازگردانی میان دستگاهها و کاربران درست کار میکند.
-
بازگردانی امنتر: Play Protect و بررسیکنندهٔ نصب فقط در حین نصب خاموش و سپس دقیقا بازگردانده میشوند؛ مدیر روت هرگز پشتیبان یا بازگردانی نمیشود؛ و منبع نصب بررسی و ثبت میشود.
-
برچسبهای برنامه: به برنامهها برچسبهای آزاد مانند games یا work بدهید، فهرست برنامهها را بر اساس یک برچسب فیلتر کنید و کل یک گروه برچسبخورده را بهیکباره پشتیبان بگیرید.
رفع اشکال:
- صفحهٔ ورود ابری روی دستگاه همیشه "Sign-in failed" را نشان میداد، حتی وقتی ورود موفق بود. اکنون نتیجهٔ واقعی را نشان میدهد.
- پشتیبانهای ذخیرهشده اکنون با یک مدیر فایل باز میشوند: پوشههای پشتیبان هر برنامه فقط برای مالک بودند، پس حتی مدیر فایل روت هم واردشان نمیشد؛ اکنون مانند بقیهٔ /sdcard/VDBackup در دسترساند.
مقصدهای ابری:
- برنامهٔ همراه اختیاری Google Drive اکنون ساخته و همراه میشود، پس Google Drive علاوه بر rclone از طریق همراه روی دستگاه کار میکند (حساب دستگاه شما، بدون چسباندن دستی توکن).
رابط کاربری:
- پنجرهٔ پشتیبانگیری یک انتخابگر مقصد دارد، پس یک پشتیبان میتواند بدون تغییر مقصد پیشفرض در تنظیمات، به مقصد ابری یا دور انتخابشده برود.
- برنامه هنگام باز شدن نسخهٔ جدیدتر را بررسی میکند (حداکثر ساعتی یکبار) و بنر بهروزرسانی را فقط وقتی موجود باشد نشان میدهد؛ هنگام بهروز بودن یا آفلاین ساکت است.
دامنهٔ جدید پشتیبانگیری:
- دستههای جدید پشتیبان ویژه: تقویم (ارائهدهندهٔ تقویم، بهعلاوهٔ یک برونبرد قابلحمل
calendar.json)، کاغذدیواری (کاغذدیواری صفحهٔ خانه و قفل)، DNS خصوصی (حالت و مشخصکننده)، و تنظیمات سیستم (تخلیهٔ کامل تنظیمات system/global/secure). تنظیمات سیستم انتخابی (opt-in) است و هنگام بازیابی تنظیمات سراسری دستگاه را بازنویسی میکند، پس مانند SSAID با رضایت صریح و یک مدخل حسابرسی کامل محصور شده است. - پشتیبان مستقل پوشه و فایل: از هر مسیر مطلق (ذخیرهٔ مشترک یا دادهٔ برنامه) بهصورت یک بایگانی فشرده و مهرشده با manifest پشتیبان بگیرید، و آن را به همان مسیر بازیابی کنید. بازیابی به یک تأیید صریح نیاز دارد.
بازیابی امنتر:
- هر بایگانی پیش از نوشتن هر چیزی بررسی میشود: پشتیبانی که محتوایش به بیرون از هدفش اشاره میکند
(یک مسیر مطلق یا یک مؤلفهٔ
..) رد میشود، پس بازیابیای که با root اجرا میشود نمیتواند فریب داده شود تا بیرون از مقصد بنویسد.
پیشرفت و زمانبندی:
- پیشرفت زنده اکنون سرعت انتقال، ETA و یک شمارندهٔ اقلام را در حین پشتیبانگیری نشان میدهد، بهعلاوهٔ یک گام راستیآزماییشده با checksum برای بارگذاریهای ابری و یک پیشبررسی «فضای ناکافی».
- کارهای زمانبندیشده را میتوان مشروط کرد: اجرا فقط روی Wi-Fi، فقط هنگام شارژ، فقط بالاتر از یک سطح باتری، یا فقط در روزهای هفتهٔ انتخابشده؛ یک کار زمانبندیشده هنگامی که دستگاه بهطور بحرانی داغ است نیز نادیده گرفته میشود. کار نادیدهگرفتهشده در تیک (tick) بعدی دوباره تلاش میشود.
مقصدهای ابری:
- هر backend از rclone را از رابط کاربری وصل کنید: فهرست کرکرهای راهدور ابری ارائهدهندگان
محبوب (Google Drive، Dropbox، OneDrive، Box، pCloud، Mega، Backblaze B2، S3، SFTP، WebDAV،
FTP، SMB) را بهعلاوهٔ گزینهٔ "Custom (advanced)" عرضه میکند که در آن نام هر backend دیگرِ
rclone و پارامترهای
key=valueآن را تایپ میکنید، پس همهٔ backendهای rclone در دسترس میشوند. - ورود روی خودِ دستگاه (بدون PC): ارائهدهندگانی که به ورود از طریق مرورگر نیاز دارند (Google Drive، Dropbox، OneDrive، Box، pCloud) دکمهٔ "Authorize in browser" دارند که مرورگر خودِ گوشی را روی صفحهٔ رضایت ارائهدهنده باز میکند؛ پس از تأیید، به برنامه بازمیگردید و راهدور بهصورت خودکار ذخیره میشود و توکن روی دستگاه گرفته میشود. چسباندن دستی توکن همچنان بهعنوان جایگزین در دسترس است.
رابط:
- یک مقیاس رابط قابل تنظیم (یک لغزندهٔ کشیدنی) کل رابط را بازمقیاس میکند، تا با نمایشگرهای با چگالی پیکسل متفاوت جور درآید؛ 100% پیشفرض است و بدون تغییر میماند.
- رابط اکنون برای عربی و فارسی از راست به چپ نمایش داده میشود.
- یک نمای کلی خانه با شمار پشتیبانها و یک نوار ذخیرهسازی، نشانهای وضعیت، رونوشت هشها و مسیرها به کلیپبورد، کلیدهای تعویضی به سبک اندروید، و یک کنش «Check for updates».
- گزارش فعالیت یک صفحهٔ کامل است که بیدرنگ باز میشود، با یک کنش «Export logs» که یک فایل گزارش ذخیره میکند که میتوانید آن را به یک گزارش پیوست کنید.
رفع اشکالها:
- بازیابی و درونبرد دیگر روی دستگاههایی که
tarهمراهشان گزینهٔ--no-absolute-namesرا نمیپذیرد شکست نمیخورند؛ بررسی ایمنی بایگانی از آن گزینه مستقل است. - «Check for updates» حتی جایی که هیچ کارخواه HTTP همراه نباشد کار میکند، با بازگشت به rclone همراه؛ و گزارش فعالیت دیگر برای باز شدن وقت زیادی نمیبرد.
نخستین انتشار عمومی. یک ماژول WebUI برای KernelSU/APatch/Magisk که برنامهها و دادههایشان را بهطور کامل با دسترسی ریشه پشتیبانگیری و بازیابی میکند، بدون هیچ پنجره درخواست مجوز.
موتور و قالبها:
- موتور پشتیبانگیری/بازیابی بهصورت یک فرایند ریشه جدا (
setsid) اجرا میشود: پس از بستن WebUI یا مدیر ریشه نیز به کار ادامه میدهد، و رابط کاربری از طریقopidدوباره به پیشرفت زنده متصل میشود. - سه حالت پشتیبانگیری: Full (tar.zst، محلی یا راهدور)، Snapshot (مخزن restic، رمزگذاریشده و بدون تکرار)، و Mirror (همگامسازی ۱:۱ با rclone/rsync). فایلهای APK همیشه فشرده میشوند، حتی در حالت آینه.
- اقلام هر برنامه: APK (base + splits)،
data،data_de،obb، حافظه خارجی و رسانه. زمینه SELinux، uid/gid، حالتها و xattr/caps حفظ میشوند؛ بازیابی از یک نشستpm installاستفاده میکند و مالکیت/زمینه را به uid زنده بازنگاشت میکند. - در سراسر کار از چند کاربر (multi-user) آگاه است. پشتیبانها زیر
/sdcard/VDBackup(به ازای هر کاربر) و بیرون از/data/adbذخیره میشوند، بنابراین پیش از نخستین باز شدن قفل خوانا نیستند؛ هر مقصد زیر<path>/vdbackupفضانامبندی میشود. - فشردهسازی: none، lz4، zstd (با سطوح)، یا gzip ("حالت سازگاری"). یک مانیفست JSON دستگاه، بسته (شامل برچسب برنامه)، اقلام و مجوزها را ثبت میکند.
- رمزگذاری قابلحمل با
age(keygen)، بهعلاوه یک راهنمای بازیابی رایانه PC RECOVERY که درون هر پشتیبان رمزگذاریشده همراه میشود تا در هر جایی و بدون این ماژول بتوان آن را رمزگشایی و استخراج کرد.
مقصدها و ابر:
- مقصدها: افزودن/فهرست/آزمون/حذف (محلی، راهدور rclone، مخزن restic، و یک همراه اختیاری Google Drive)؛ اعتبارنامهها بهصورت مبهم ذخیره میشوند، هرگز بهشکل آشکار.
- ساخت راهدورهای rclone از رابط کاربری/API (
remote-add/remote-list/remote-del)، بهطوریکه هر پسکار ابری (SFTP، SMB، WebDAV، FTP، S3، Google Drive و بیشتر) بدون ویرایش دستیrclone.confدر دسترس باشد. - Google Drive به دو روش: از طریق rclone (بدون حساب Google Cloud) یا برنامه همراه بدونرابط اختیاری (
ru.vd171.vdbackup)، که یک اعلان الزامی پنهانسازی با HMA-OSS به همراه دارد. - سیاست شبکه: انتخاب کنید که انتقالهای ابری از هر اتصالی، فقط Wi-Fi، یا فقط داده تلفن همراه استفاده کنند؛ این سیاست برای کارهای دستی و زمانبندیشده اعمال میشود. مقصدهای محلی مستثنا هستند.
درونریزی (مهاجرت):
- درونریزی از Neo-Backup، شامل پشتیبانهای رمزگذاریشده با گذرواژه (رمزگشایی AES-256-GCM توسط یار dex؛ WebUI گذرواژه را میپرسد).
- درونریزی از Android-DataBackup (نصب فایلهای APK، استخراج بایگانیهای user/user_de/data، بازنگاشت).
- هر دو در برابر پشتیبانهای واقعی روی چند دستگاه راستیآزمایی شدهاند.
یکپارچگی و ایمنی:
- بازیابی وفادار که نخست پاک میکند سپس استخراج میکند؛ راستیآزمایی sha256 برای هر بایگانی (بهطور پیشفرض در Full روشن، و یک بررسی یکپارچگی مخزن برای Snapshot)، اجرای آزمایشی dry-run، و آزمون بازیابی. بایگانیها برای اطمینان از کامل بودن بازخوانی میشوند؛ یک بایگانی خراب یا نام بسته نامعتبر هرگز نمیتواند یک بازیابی ویرانگر را به راه بیندازد، و شکست انتقالهای راهدور گزارش میشود و هرگز بیصدا نمیماند.
- بازیابی گزینشی: هر زیرمجموعهای از موردهایی که یک پشتیبان در خود دارد (APK، data، دادهٔ محافظتشده، OBB، external، رسانه) را بازیابی کنید، همه بهطور پیشفرض برگزیدهاند.
- حذف پشتیبانها از رابط کاربری/API (
delete-backup) و نگهداری N تای آخر برای پشتیبانهای دستی (prune)؛ هر حذف، بازیابی، هرس و اجرای زمانبندیشده در یک گزارش ممیزی JSON محلی نوشته میشود که میتوانید در برنامه ببینید. - مجوزهای زماناجرا و AppOps در مانیفست ثبت میشوند و هنگام بازیابی دوباره اعمال میگردند. منبع نصب (installerPackageName) و وضعیت فعال/غیرفعال نیز ثبت و هنگام بازیابی دوباره اعمال میشوند.
- جعل منبع نصب: بهطور پیشفرض یک برنامهٔ بازیابیشده Play Store را بهعنوان منبع نصب خود گزارش میدهد (هنگام نصب از طریق نشست نصب تنظیم میشود، چون یک برنامهٔ بازیابیشده در غیر این صورت بهنظر sideloadشده میآید)؛ بهصورت سراسری و برای هر بازیابی قابل تغییر است، و وقتی خاموش باشد منبع ثبتشده نگه داشته میشود. یک حالت پیشرفته و با انتخاب صریح به نام "deep" افزون بر آن با ویرایش پایگاهدادهٔ بستههای سیستم، بستهٔ آغازگر و منبع بسته را جعل میکند (نخست پشتیبان بایتبهبایت دقیق، پس از یک راهاندازی مجدد اعمال میشود) تا برنامه کاملاً نصبشده از فروشگاه بهنظر برسد.
- SSAID (شناسه دستگاه ANDROID_ID): بهطور اکید اختیاری و بهشکل برجسته علامتگذاریشده؛ آگاه از ABX؛ فایل زنده پیش از هر بازنویسی همیشه بایتبهبایت دقیق پشتیبانگیری میشود تا امکان بازگشت باشد؛ و پس از راهاندازی دوباره اعمال میشود.
- بازیابی و درونریزی پیش از ادامه به یک تأیید صریح "این کار دادههای کنونی برنامه را بازنویسی میکند" نیاز دارند.
زمانبندی و خودکارسازی:
- پشتیبانهای زمانبندیشده با نگهداری keep-N، که از یک زبانهٔ Schedule مدیریت میشوند (به ازای هر برنامه، روزانه/ساعتی/هفتگی با زمان، حالت و مقصد اختیاری).
- پشتیبانگیری خودکار هنگام نصب یا بهروزرسانی: یک ناظرِ با انتخاب صریح بر ضربان زمانبند سوار میشود، برنامههای تازهنصب یا بهروزشده را در پسزمینه پشتیبان میگیرد، و تنها در نخستین اجرا دانهافشانی میکند تا فعالکردنش هرگز همهچیز را یکجا پشتیبان نگیرد. فهرست برنامههای مستثنا (blocklist) را رعایت میکند.
پشتیبانهای ویژه (سیستمگستر):
- پشتیبانگیری از پیامها (SMS/MMS)، مخاطبان و گزارش تماس، Wi-Fi و Bluetooth بهصورت دادهٔ سیستمی خام و وفادارانه بایگانیشده (همان حفظ SELinux/xattr و رمزنگاری اختیاری age مانند پشتیبانهای برنامه). بازیابی روی همان دستگاه/همان ROM وفادار، نیازمند راهاندازی مجدد، و پشت یک تأیید برجستهٔ بازنویسیوراهاندازیمجدد مهار شده است.
- خروجی قابل حمل اختیاری در کنار بایگانی خام: پیامها، گزارش تماس و مخاطبان بهصورت JSON قابل بازشدن نیز نوشته میشوند (با sqlite3 همراه مستقیماً از پایگاهدادههای provider خوانده میشوند، پس متن پیامهایی که ویرگول یا خط جدید دارند دستنخورده میماند)، و یک نسخهٔ میاندستگاهی و بینیاز از ماژول میدهد. وقتی پشتیبان رمزنگاریشده باشد، نسخهٔ قابل حمل نیز رمزنگاری میشود، پس هرگز آنچه را بایگانی محافظت میکند لو نمیدهد.
یکپارچگی سیستمی:
- سوار کردن یک برنامهٔ نصبشده بهعنوان برنامهٔ سیستمی بدون دستزدن به پارتیشن واقعی /system: VDBackup فایلهای APK برنامه را درون زیرماژول روکش خودش آماده میکند که مدیر روت آن را سوار میکند. با NoMount روی KernelSU بهصورت زنده تزریق میشود (بدون راهاندازی مجدد)؛ در غیر این صورت در راهاندازی بعدی اعمال میشود، پس هرگز به نصببودن NoMount وابسته نیست. جایگذاری معمولی یا ممتاز را انتخاب کنید.
WebUI:
- فهرست برنامهها نام محلیشده واقعی برنامه را (که از APK استخراج میشود و از همین رو پس از حذف نصب باقی میماند) در کنار بسته نشان میدهد، با آیکونهایی که با تأخیر بارگذاری و ذخیره میشوند و بهصورت کاشیهای گردگوشه و سازگار با تطبیق نمایش داده میشوند.
- روی یک برنامه ضربه بزنید تا تاریخچه پشتیبانهایش باز شود و هر پشتیبان پیشین را بازیابی کنید؛ زبانه Backups نام و بسته را در دو خط جداگانه نشان میدهد و برای هر پشتیبان یک برگه جزئیات باز میکند (نسخه، منبع نصب، وضعیت، تاریخ، اندازه، اقلام، شمار مجوزها، دستگاه).
- فهرست برنامهها را بر پایهٔ کاربر/سیستم/همه فیلتر کنید و بر پایهٔ نام یا بسته مرتب کنید؛ چند برنامه را برگزینید و در یک دسته پشتیبان بگیرید؛ برنامهها را از پشتیبانهای خودکار و زمانبندیشده مستثنا کنید.
- آنچه را گنجانده شود انتخاب کنید و برای هر پشتیبان راستیآزمایی یا dry-run را روشن/خاموش کنید؛ یک بازیابی تنها-آزمایشی برگزینید که بدون دستزدن به برنامهٔ زنده به محل آمادهسازی استخراج میکند.
- پوسته روشن/تیره، یک گزینشگر رنگ تأکید، گزینشگر زبان، زبانه About (با پروژههای خواهر و مانیفست حسابرسی باینریهای بستهبندیشده)، یک گزینشگر پوشه برای مقصد محلی، نمایش محلیشده پیشرفت عملیات با بازخورد فوری، و گفتوگوهای امروزی درونبرنامهای (بدون پنجرههای بازشوی alert/confirm سیستم).
- ناوبری با دکمهٔ بازگشت به زبانهٔ پیشین بازمیگردد و نخست گفتوگوها را میبندد؛ گفتوگوها شناور هستند و برنامه با اتصال دوبارهٔ عملیات زنده، بازگشایی را تاب میآورد.
دوستدار هوش مصنوعی و i18n:
- یک سطح کنترل JSON مستند تا عاملها بتوانند هر کنش را بدونرابط مدیریت کنند (
docs/AI-AGENTS.md)؛ WebUI تنها یکی از کارخواههای آن API است. - فایل README و همه مستندات پروژه به ۲۱ زبان استاندارد ترجمه شدهاند (
docs/<lang>/)، و مستندات در ویکی نیز بازتاب داده میشوند. - فهرستنگاری غنی برنامهها و رمزگشایی Neo از طریق یک یار dex که با دسترسی ریشه هدایت میشود (
IPackageManagerاز راه ServiceManager) اجرا میشوند، از همین رو در جایی که ActivityThread گیر میکند نیز کار میکنند.
این مستندات با Claude (Anthropic) تولید شده و توسط VD171 نگهداری میشود. تصحیحها و بهبودها خوشامد است - CONTRIBUTING.md را ببینید.