پست

مسدودسازی خودکار پیامک‌های تبلیغاتی در موبایل

مسدودسازی خودکار پیامک‌های تبلیغاتی در موبایل

راهنمای کامل بلاک هوشمند تماس و پیامک با SpamBlocker

پیامک‌های تبلیغاتی و مزاحم یکی از دغدغه‌های همیشگی کاربران گوشی‌های هوشمند است. بسیاری از راه‌حل‌های رایج، مانند برنامه‌های خودکارسازی عمومی، یا هزینه دارند یا منابع سیستم را به‌شکل محسوسی مصرف می‌کنند. در این نوشتار، یک ابزار متن‌باز و رایگان به نام SpamBlocker معرفی می‌شود که به‌طور اختصاصی برای فیلترکردن تماس و پیامک طراحی شده و بدون نیاز به جایگزینی اپلیکیشن پیش‌فرض پیام‌رسان، امکان بلاک‌کردن هوشمند را فراهم می‌کند.

این اپلیکیشن چیست و چرا متفاوت است

SpamBlocker یک برنامه‌ی اندرویدی متن‌باز است که توسعه‌دهنده‌ی آن با انتشار کامل کد منبع روی گیت‌هاب، امکان بررسی و اعتمادسازی را برای کاربران فراهم کرده است. برخلاف اپلیکیشن‌های اتوماسیون عمومی که موتوری دائمی برای پایش ده‌ها نوع رویداد مختلف اجرا می‌کنند، این ابزار فقط روی دو کارکرد مشخص متمرکز است: فیلتر تماس و فیلتر پیامک. همین تمرکز باعث شده مصرف منابع سیستم به حداقل برسد.
نکته‌ی مهم درباره‌ی معماری این برنامه این است که برای فیلترکردن پیامک، لازم نیست اپلیکیشن پیش‌فرض پیام‌رسان گوشی را تغییر دهید. برنامه از طریق دریافت رویداد پیامک ورودی، محتوای پیام را بررسی می‌کند و بر اساس قوانینی که تعریف کرده‌اید، تصمیم می‌گیرد که نوتیفیکیشن مربوط به آن پیام نمایش داده شود یا نه. پیام اصلی همچنان در اپلیکیشن پیام‌رسان باقی می‌ماند و چیزی حذف نمی‌شود؛ فقط اطلاع‌رسانی آن مسدود می‌گردد.
برای بلاک تماس، این برنامه نقش یک اپلیکیشن Caller ID را ایفا می‌کند و پیش از رسیدن تماس به مرحله‌ی زنگ‌خوردن، آن را بر اساس قوانین تعریف‌شده بررسی و در صورت لزوم رد می‌کند.

فهرست کامل قابلیت‌های فیلترینگ

SpamBlocker مجموعه‌ای گسترده از فیلترها را در اختیار کاربر قرار می‌دهد که می‌توان آن‌ها را جداگانه یا ترکیبی استفاده کرد:

  • Contacts: بررسی این‌که آیا شماره در لیست مخاطبین ذخیره شده است یا خیر.
  • Contact Group: بررسی عضویت شماره در یک گروه خاص از مخاطبین.
  • STIR/SHAKEN: بررسی گواهی احراز هویت تماس که در برخی شبکه‌های تلفن ثابت و همراه برای مقابله با جعل شماره استفاده می‌شود.
  • Repeated: تشخیص تماس‌های تکراری از یک شماره در بازه‌ی زمانی کوتاه.
  • Dialed: بررسی این‌که آیا کاربر قبلاً با آن شماره تماس گرفته است.
  • Call Alert: اجازه‌ی عبور تماس پس از دریافت پیامک اطلاع‌رسانی از همان مبدأ، مثل پیامک‌های خودکار شرکت‌های پیک و باربری.
  • Recent Apps: عبور تماس در صورتی که کاربر اخیراً اپلیکیشن مشخصی را استفاده کرده باشد؛ کاربردی برای مواردی مانند تماس پیک تحویل سفارش.
  • Meeting Mode: رد خودکار تماس‌ها در زمان برگزاری جلسات تصویری آنلاین.
  • Off Time: تعریف بازه‌ی زمانی که در آن همه‌ی تماس‌ها بدون فیلتر عبور کنند، معمولاً برای ساعات شب.
  • Spam Database: تطبیق شماره با پایگاه‌داده‌های عمومی اسپم که قابل یکپارچه‌سازی با این برنامه هستند.
  • Instant Query: استعلام آنی شماره از چند سرویس آنلاین به‌صورت هم‌زمان در لحظه‌ی دریافت تماس یا پیام.
  • Report Spam: امکان گزارش دستی یا خودکار شماره‌های مزاحم برای کمک به پایگاه‌داده‌ی مشترک کاربران.
  • Regex (عبارت باقاعده): قدرتمندترین و منعطف‌ترین فیلتر این برنامه که در ادامه به‌طور مفصل بررسی می‌شود.

دسترسی‌های مورد نیاز و دلیل هرکدام

تمام دسترسی‌های این برنامه اختیاری هستند و فقط در صورت فعال‌کردن قابلیت مرتبط، درخواست می‌شوند:

دسترسیدلیل استفاده
INTERNETدانلود پایگاه‌داده‌ی اسپم، استعلام آنلاین شماره، گزارش شماره مزاحم
RECEIVE_SMS / RECEIVE_MMSدریافت و بررسی محتوای پیامک‌های ورودی
READ_CONTACTSتطبیق شماره با مخاطبین ذخیره‌شده
READ_CALL_LOG / READ_SMSبررسی تکراری‌بودن تماس
ANSWER_PHONE_CALLSرد، پاسخ یا قطع تماس
POST_NOTIFICATIONSنمایش نوتیفیکیشن جایگزین برنامه
PACKAGE_USAGE_STATSقابلیت Recent Apps
READ_PHONE_STATEپایش وضعیت زنگ‌خوردن برای حالت پاسخ خودکار

حریم خصوصی و شفافیت امنیتی

در استفاده از قابلیت‌های آفلاین، هیچ داده‌ای از دستگاه جمع‌آوری یا ارسال نمی‌شود. در قابلیت‌های آنلاین مانند استعلام آنی یا گزارش شماره، فقط آدرس IP، اثرانگشت اتصال شبکه، و شماره‌ی گزارش‌شده در اختیار سرویس مقصد قرار می‌گیرد. این برنامه هیچ ارتباطی با سایر اپلیکیشن‌های نصب‌شده روی گوشی برقرار نمی‌کند. بیلد این برنامه بازتولیدپذیر (Reproducible) است، به این معنا که هرکسی می‌تواند از روی کد منبع، همان فایل نصبی را بسازد و امضای دیجیتال آن را با نسخه‌ی منتشرشده مقایسه کند تا از اصالت فایل مطمئن شود.

روش‌های نصب

این برنامه از سه مسیر قابل دریافت است:

  1. گیت‌هاب: دانلود مستقیم فایل نصبی از بخش Releases مخزن رسمی پروژه؛ معتبرترین منبع برای دریافت نسخه‌ی اصلی بدون واسطه.
  2. F-Droid: فروشگاه اپلیکیشن‌های متن‌باز که این برنامه را نیز پوشش می‌دهد.
  3. Google Play: نسخه‌ای که روی این فروشگاه منتشر شده، توسط ناشر دیگری بر پایه‌ی همان کد متن‌باز بازانتشار شده است. کاربرانی که تمایل دارند مستقیماً از توسعه‌دهنده‌ی اصلی پروژه استفاده کنند، بهتر است از گیت‌هاب یا F-Droid نصب کنند.

می‌توانید آخرین نسخه بدون نیاز به دسترسی اینترنت را از لینک زیر دانلود کنید:
کافی است آخرین نسخه app-release.without-internet-permission.apk را دانلود کنید.
SpamBlocker

نکته‌ی مربوط به نصب مستقیم از گیت‌هاب

از اندروید ۱۳ به بعد، سیستم‌عامل به‌صورت پیش‌فرض دسترسی‌های حساس مانند پیامک را برای اپلیکیشن‌های نصب‌شده خارج از فروشگاه پلی محدود می‌کند. در صورت مواجهه با پیام «App was denied access»، لازم است از مسیر Settings، بخش اطلاعات اپلیکیشن، گزینه‌ی Allow restricted settings را فعال کرد تا امکان دادن دسترسی پیامک فراهم شود. این محدودیت یک اقدام امنیتی استاندارد اندروید است، نه ایرادی از برنامه.

روش فعال سازی

بعد از نصب نیاز است به بخش تنظیمات اپلیکیشن در سیستم عامل موبایل بروید و دسترسی‌های SMS و Notifications را به آن بدهید:
mhkarami97

تنظیمات لازم روی گوشی‌های شیائومی با HyperOS

سیستم‌عامل HyperOS به‌طور پیش‌فرض مدیریت تهاجمی روی برنامه‌های پس‌زمینه اعمال می‌کند و ممکن است پیش از رسیدن پیامک، برنامه را متوقف کرده باشد. برای اطمینان از عملکرد صحیح فیلتر، تنظیمات زیر باید در بخش مدیریت اپلیکیشن‌ها اعمال شود:

  • فعال‌سازی گزینه‌ی Autostart برای برنامه.
  • تنظیم Battery saver مربوط به برنامه روی حالت No restrictions.
    بدون این تنظیمات، حتی سبک‌ترین برنامه‌های فیلترکننده نیز ممکن است پیش از دریافت پیامک توسط سیستم‌عامل متوقف شوند.

جلوگیری از نوتیفیکیشن تکراری

از آن‌جا که این برنامه برای پیامک‌های غیرمسدود، نوتیفیکیشن اختصاصی خود را نمایش می‌دهد، در صورت روشن‌ماندن دسترسی نوتیفیکیشن اپلیکیشن پیام‌رسان پیش‌فرض، هر پیام عادی دوبار به نمایش درمی‌آید. برای جلوگیری از این تکرار، توصیه می‌شود دسترسی نوتیفیکیشن اپلیکیشن پیام‌رسان پیش‌فرض از تنظیمات سیستم غیرفعال شود. لازم به ذکر است دسترسی Notification Access این برنامه، صرفاً برای قابلیت جانبی Push Alert (مرتبط با تماس) کاربرد دارد و ارتباطی به فیلتر اصلی پیامک ندارد.

با انجام کارهای بالا اکنون می‌توانید از بخش بالایی اپلیشکن بخش SMS را فعال نمایید.

mhkarami97

مشکل خط جدید در پیامک‌های چندخطی

بسیاری از پیامک‌های تبلیغاتی، از چند خط تشکیل شده‌اند (عنوان، لینک، و عبارت لغو در خط جداگانه). در بیشتر موتورهای عبارت باقاعده، نماد نقطه به‌صورت پیش‌فرض کاراکتر خط جدید را در بر نمی‌گیرد. بنابراین الگویی مانند .*لغو11 در صورتی که عبارت هدف در خط سوم یا چهارم پیام قرار داشته باشد، ممکن است هرگز مطابقت پیدا نکند. راه‌حل استاندارد این مشکل، جایگزینی نماد نقطه با کلاس کاراکتری [\s\S] است که تمام کاراکترها از جمله خط جدید را پوشش می‌دهد.
در نگارش فارسی، میان یک پیشوند یا پسوند و کلمه‌ی اصلی گاهی فاصله‌ی کامل، گاهی نیم‌فاصله (کاراکتر بدون عرض موسوم به ZWNJ)، و گاهی هیچ‌کدام به‌کار می‌رود. اگر هدف، بلاک‌کردن پیامک‌هایی است که این عبارت را در هر سه حالت نوشتاری دربردارند، الگو باید طوری نوشته شود که هر سه امکان را پوشش دهد:

1
[\s\S]*لغو[\s\u200c]*11

در این الگو، بخش [\s\u200c]* به این معناست که میان دو کلمه می‌تواند صفر یا چند بار فاصله‌ی معمولی یا نیم‌فاصله وجود داشته باشد. استفاده از کد یونیکد \u200c به‌جای درج مستقیم کاراکتر نیم‌فاصله، دقت و قابلیت بازبینی الگو را افزایش می‌دهد، زیرا این کاراکتر به‌صورت بصری نامرئی است.

کافی است دستور بالا را در بخش Messages Rules مشابه زیر وارد کنید:

mhkarami97

تا بصورت زیر بشود:

mhkarami97

تست

برای تست دستور وارد شده کافی است بر روی آیکون سبزرنگ راست پایین کلیک کنید و یک متن پیامک تستی وارد کنید و سپس روی Test کلیک کنید.
این پیامک باید بصورت خودکار بلاک شود.

mhkarami97

پیامک‌های دریافتی

از منو پایین اگر بر روی آیکون SMS کلیک کنید می‌توانید پیامک‌های دریافتی را مشاهده کنید. موارد بلاک شده با رنگ قرمز مشخص می‌شوند.

mhkarami97

نمونه‌های کاربردی دیگر از عبارت باقاعده

مستندات رسمی پروژه، الگوهای متداول زیر را برای فیلتر شماره تلفن معرفی کرده است که با تغییر جزئی برای فیلتر متن پیام نیز قابل استفاده‌اند:

  • هر شماره یا متنی: .*
  • شماره یا متن خالی: ^$
  • تطبیق دقیق: 12345
  • شروع با یک رشته‌ی مشخص: 400.*
  • پایان با یک رشته‌ی مشخص: .*123
  • طول ثابت هفت‌رقمی: .{7}
  • کوتاه‌تر از پنج کاراکتر: .{0,4}
  • بلندتر از ده کاراکتر: .{11,}
  • شامل یکی از چند کلمه: .*(police|hospital|verification).*
  • استخراج کد تأیید از متن پیامک: code.*?(\d+)