TGViewer
اندروید | امنیت و هک اندروید | امنیت و هک @androidsec_fa · 316 subscribers
Post #38 520
🧠 اندروید واقعاً چی اجرا می‌کنه؟
«Android Runs ELF Files — Everything Else Is Just Layers»

تا حالا برات سوال شده:
چطور برنامه‌ای که با
Python
JavaScript
Flutter
Kotlin
یا حتی C++
نوشته شده، روی اندروید اجرا میشه؟
مگه نگفتن اندروید فقط برای Java و Kotlin هست؟
واقعیت خیلی ساده‌تر و جالب‌تره 👇

🧩 حقیقت پایه‌ای
اندروید در اصل یک سیستم‌عامل مبتنی بر لینوکس است.
و لینوکس فقط یک چیز اجرا می‌کند:
فایل‌های ELF (Executable and Linkable Format)
📌 CPU فقط «کد ماشین» می‌فهمد.
نه Java.
نه Python.
نه JavaScript.
هر زبانی که استفاده کنی، در نهایت باید تبدیل شود به:

Machine Code → ELF → CPU
همین.


🚪 دو راه واقعی اجرای کد در اندروید
اندروید فقط دو مسیر اصلی دارد:

مسیر اول: Java / Kotlin → DEX → ART → Native

روند اجرای اپ‌های معمولی:
1️⃣ شما با Java یا Kotlin کد می‌نویسی
2️⃣ تبدیل می‌شود به DEX (Dalvik bytecode)
3️⃣ هنگام نصب، ART آن را کامپایل می‌کند
4️⃣ خروجی نهایی: کد native در قالب ELF

ART چیست؟
ART همان Android Runtime است.
خود ART هم یک فایل ELF است به نام:

libart.so
📌 نکته مهم:
وقتی اپ اجرا می‌شود، در واقع دیگر bytecode اجرا نمی‌شود؛
بلکه کد native واقعی اجرا می‌شود.

مسیر دوم: Native Code با NDK
در این روش:
با C یا C++ کد می‌نویسی
با NDK کامپایل می‌شود
خروجی .so می‌دهد
.so یک ELF است
مستقیم توسط CPU اجرا می‌شود

این روش برای:
🎮 بازی‌ها (Unity, Unreal)
⚡ موتورهای JavaScript
🐍 اجرای Python
💙 Flutter
و کتابخانه‌های سنگین
استفاده می‌شود.

🐍 پس Python روی اندروید چطور کار می‌کند؟
جادو نیست.
کاری که انجام می‌شود:
مفسر CPython را به صورت native کامپایل می‌کنند
تبدیل به یک فایل .so
اپ آن را load می‌کند
حالا می‌توانی Python اجرا کنی

همین اتفاق برای JavaScript هم می‌افتد:
V8 یا Hermes کامپایل می‌شوند
به صورت native اجرا می‌شوند
کد JS را اجرا می‌کنند
Flutter هم همین‌طور:
Dart VM به صورت native اجرا می‌شود
📌 همه چیز در نهایت به ELF ختم می‌شود.

🚀 وقتی روی آیکون اپ می‌زنی چه اتفاقی می‌افتد؟

اینجا بخش جذاب ماجراست 👇
1️⃣ Launcher یک Intent می‌فرستد
2️⃣ ActivityManager بررسی می‌کند
3️⃣ اگر پروسه وجود نداشته باشد، از Zygote می‌خواهد یکی بسازد
4️⃣ Zygote خودش را fork می‌کند
5️⃣ اپ جدید در واقع یک کپی از Zygote است
6️⃣ ActivityThread.main() اجرا می‌شود
7️⃣ lifecycle شروع می‌شود

Zygote چیست؟
Zygote یک پروسه خاص است که هنگام بوت اجرا می‌شود و:
ART را preload می‌کند
کلاس‌های framework را لود می‌کند
آماده است تا سریع اپ جدید بسازد
📌 اپ شما از صفر ساخته نمی‌شود؛
یک fork از Zygote است.

🧠 چرا مستقیم executable نمی‌سازیم؟
چرا مثل لینوکس دسکتاپ فقط یک ELF ندهیم اجرا شود؟
چند دلیل مهم:
🔐 امنیت
📦 سازگاری با چند معماری (ARM / x86)
⚙️ بهینه‌سازی هنگام نصب
♻️ Garbage Collection
📱 مدیریت lifecycle اپ
ART این مزایا را فراهم می‌کند.
🧬 جمع‌بندی مهندسی
اندروید فقط ELF اجرا می‌کند.
بقیه چیزها فقط لایه هستند.
React Native؟
لایه.
Flutter؟
لایه.
Python؟
لایه.
Java/Kotlin؟
لایه.
همه‌شان در نهایت:

Your Code
↓
Runtime (ART / V8 / Dart / CPython)
↓
Native Machine Code
↓
ELF
↓
CPU
🎯 نتیجه مهم
اندروید یک سیستم‌عامل عمومی است که executable اجرا می‌کند.
هیچ جادویی وجود ندارد.
فقط لایه‌های انتزاعی وجود دارد.
و هرچه لایه‌ها را بهتر بفهمی،
درک عمیق‌تری از معماری اندروید و اجرای اپ‌ها خواهی داشت.

🔗لینک مقاله:
https://blog.azzahid.com/posts/android-runs-elf-files-everything-else-is-just-layers/

@androidSec_fa
Zahid’s Blog Android Runs ELF Files: Everything Else Is Just Layers If you’ve ever wondered how apps written in Python, JavaScript, or C++ can run on Android when everyone says “Android is for Java and Kotlin,” you’re asking the right question. The answer isn’t complicated, but it does require understanding what Android actually…
  • 👍 4
  • ❤ 1
  • 👎 1
More from @androidsec_fa
  1. Oct 17, 2026سلام بچه‌ها این یه مقاله جدیده که ThreatFabric منتشرش کرده که درباره یک RAT اندرویدی به نا…
  2. Oct 16, 2026سلام بچه‌ها این یه ابزار تخصصی برای بانک‌های هندی هستش. به صورت دراپر نصب میشه و اینکه از…
  3. Oct 15, 2026سلام بچه‌ها بعد یه مدت خیلی طولانی تقریباً اومدیم با یه مقاله که به این صورته که دیگه بد ا…
  4. Oct 5, 2026سلام بچه ها روی یه اپ سیستمی سامسونگ یه الگوی خطرناک مشاهده شد و رفتیم برای تست تا exploit…
  5. Oct 4, 2026اون تنظیمات اولش به این صورته که به صورت کلی فعال می‌شه و نیازی نیست که برای هر اپ فعالش ک…
  6. Oct 4, 2026توضیحات ویدیو رو کلیک کن تا بتونی ببینی 📢 آیدی کانال: @androidSec_fa
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →