تاریخ امروزپنج شنبه , ۸ خرداد ۱۳۹۹

آشنایی با مدل امنیتی سیستم عامل اندروید

همه چیز با یک مرحله آشنا آغاز می شود ، من قصد ندارم خیلی روی این قسمت تمرکز کنم. اما من معرفی مختصری برای اشنایی با معماری و مدل امنیت سیستم عامل اندروید انجام می دهم.

معماری سیستم عامل اندروید

برنامه های سیستم: برنامه هایی که ما ان ها را روزانه استفاده میکنیم مانند پیام رسان ها.

فریم ورک API جاوا: API هایی که برنامه نویس ها برای توسعه در جاوا و کاتلین استفاده میکنند.

زمان اجرای اندروید: بایت کد های دالویک (Android JVM) را به دستور العمل های بومی ترجمه میکند.

کتاب خانه های بومی ++C,C: این کتاب خانه ها بیشتر در اجرای اندروید مورد استفاده قرار می گیرند و به جز توسعه دهندگان NDK کار زیادی با توسعه دهندگان برنامه ندارند.

API :HAL های سطح بالایی برای مدیریت سخت افزار فراهم میکند.

SDK و ابزار های اندروید

هرکسی که می خواهد یک برنامه بنویسد ، به کیت توسعه نرم افزار اندروید(SDK) نیاز دارد. می توانید اندروید SDK را به تنهایی یا توسط اندروید استودیو نصب کنید .من ترجیح می دهم هر دو را با هم نصب کنم. برنامه های زیر مفید خواهند بود و بیشتر آنها را در مسیر عملکرد سیستم اضافه می کنند. پس از افزودن این مکان ها به مسیر خود ، تست کنید تا مطمئن شوید که آنها به درستی کار می کنند.

adb – Android SDK Path/platform-tools/adb
aapt – Android SDK Path/build-tools/<VERSION>/aapt
aapt2 – Android SDK Path/build-tools/<VERSION>/aapt2
apksigner – Android SDK Path/build-tools/<VERSION>/apksigner
zipalign – Android SDK Path/build-tools/<VERSION>/zipalign

ورژن های مختلف SDK

از ورژن های ۱ الی ۲۲ فقط در زمان نصب اجازه دسترسی های مورد نیاز برنامه از سیستم گرفته می شد ولی در ورژن های ۲۳ به بعد اجازه دسترسی ها به دو قسمت تقسیم شدند.

  1. دسته اول دسترسی های معمول مثل ACCESS_WIFI_STATE، ACCESS_NOTIFICATION_POLICY که خطری برای اطلاعات کاربر ندارند.
  2. دسته دوم دسترسی های خطرناک هستند مثل ACCESS_FINE_LOCATION، SEND_SMS که در حین اجرا اجازه دسترسی را گرفته و در تنظیمات امکان تغییر این دسترسی ها وجود دارد.

کامپوننت های اندروید

چهار کامپوننت اصلی برنامه اندروید وجود دارد:activities و services و content providers و broadcast receivers .

Activities

آنها UI را دیکته می کنند و رابطه کاربر را با ظاهر تلفن هوشمند اداره می کنند.

Activity نشان دهنده یک نما یا ظاهر منفرد با یک رابط کاربری است ، به طور خلاصه Activity در صفحه نمایش عملکردهایی را انجام می دهد. به عنوان مثال ، یک برنامه ایمیل ممکن است یک Activity داشته باشد که لیستی از ایمیل های جدید ، Activity دیگری برای نوشتن ایمیل و Activity دیگر برای خواندن ایمیل را نشان دهد. اگر یک برنامه دارای بیش از یک Activity باشد ، باید یکی از آنها به عنوان Activity که هنگام راه اندازی برنامه ارائه می شود ، علامت گذاری شود.

Activity به عنوان زیر کلاسی از کلاس Activity به شرح زیر اجرا می شود

services

آنها پردازش های بک گراند مرتبط با یک برنامه را کنترل می کنند.

یک service مؤلفه ای است که برای انجام عملیات طولانی مدت در پس زمینه اجرا می شود. به عنوان مثال ، ممکن است یک service در حالی که کاربر در برنامه دیگری است ، موسیقی را در پس زمینه پخش کند ، یا ممکن است داده ها را از طریق شبکه بارگیری کند بدون اینکه مانع تعامل کاربر با یک فعالیت شود.

service به عنوان کلاسی از کلاس service به شرح زیر اجرا می شود –

broadcast receivers

آنها ارتباط بین سیستم عامل اندروید و برنامه های کاربردی را کنترل می کنند.

broadcast receiver به سادگی به پیام های پخش شده از برنامه های دیگر یا از سیستم پاسخ می دهند. به عنوان مثال ، برنامه ها همچنین می توانند پخش را آغاز کنند تا سایر برنامه ها broadcast receiver است که این ارتباط را رهگیری می کند و اقدامات مناسب را آغاز می کند.

broadcast receiver به عنوان کلاسی از کلاس BroadcastReceiver اجرا می شود و هر پیام به عنوان یک موضوع هدف مند پخش می شود.

content providers

آنها مسائل مربوط به مدیریت داده و بانک اطلاعاتی را بر عهده دارند.

کامپوننت content provider در صورت درخواست ، داده ها را از یک برنامه به دیگر برنامه ها می دهد. این چنین درخواست ها با روش های کلاس ContentResolver انجام می شود. داده ها ممکن است در سیستم فایل ، بانک اطلاعاتی یا مکانی دیگر به طور کامل ذخیره شود.

content provider به عنوان کلاسی از کلاس ContentProvider پیاده سازی می شود و باید یک مجموعه استاندارد API ها را اجرا کند که سایر برنامه ها را قادر به انجام تراکنش کند.

کامپوننت های اضافی

کامپوننت های دیگری وجود دارد که در ساخت موجودیت های فوق از منطق و ارتباط بین آنها استفاده خواهد شد.

  1. Fragments: بخشی از رابط کاربری را در یک activity نشان می دهد.
  2. Views: عناصر UI که شامل دکمه ها ، فرم های لیست و غیره روی صفحه نمایش می شوند.
  3. Layouts: سلسله مراتبی را مشاهده کنید که قالب صفحه و ظاهر نمایش ها را کنترل می کنند.
  4. Intents: پیام های ارتباطی کامپوننت ها با هم.
  5. Resources: عناصر خارجی ، مانند رشته ها ، ثابت ها و تصاویر قابل ترسیم.
  6. Manifest: فایل پیکربندی برای برنامه.

آشنایی بیشتر با مدل امنیتی اندروید در پست های بعدی در مورد مطالب زیر خواهد بود:

  1. نرم افزار های برنامه نویسی اندروید
  2. ترفند های مختلف مهندسی معکوس برای برنامه های اندروید
  3. نرم افزار های مختلف مورد نیاز برای مهندسی معکوس
اشتراک‌گذاری

3 نظر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *