طريقة حساب EMMC User Data يدوياً CALCULATE EMMC USER SIZE MANUAL BY Shorbagy

طريقة حساب كود الذاكرة الداخلية يدوياً



METHOD: CALCULATE EMMC USER SIZE MANUAL BY Shorbagy



wol error هذه الصورة تم اعادة تحجيمها . الحجم الافتراضي لها هو 1024x106.
star line break 1024x106


أهلاً بكم جميعاً أعضاء المنتدى الكريم

المراد من هذا الموضوع هو أن يكون كل علمنا في البرمجة والسوفت مبني على الفهم..

اليوم سنتحدث عن موضوع مهم جداً مخصص للاستطلاع والاكتشاف وفي نفس الوقت يهتم بتحديد وقراءة مساحة الذاكرة الغير محسوبة أو ظاهرة، وغالباً تكون على هيئة:
HEX Code

في الموضوعات السابقة منذ 8 سنوات مضت كنت قد طرحت موضوع عن الملفات المخصصة لمسح الفلاش بالكامل وكان من ضمنها شرح طريقة معرفة المساحة أو الذاكرة الداخلية لاختيار الملف المناسب للمسح ، في هذا الموضوع للإطلاع.. رابط الموضوع


المعادلة هي:
HEX Convert to DEC /1024=Events


اليوم بنفس الطريقة المذكورة آنفاً سوف نبدأ العمل..
هذه الطريقة تعمل فقط مع جميع أجهزة ميدياتك أو إم تي كي
MTK MediaTek CPU Android
في بعض البوكسات المختصة لتصليح هذه الأنواع تعرض لنا مساحة الذاكرة الداخلية للجهاز بدون حساب أو إيضاح ويظهر لنا كود صغير غير محسوب بحجم الذاكرة .. وهناك بوكسات تظهرها..


وقد تسبب للمستخدمين أخطاء كثيرة أثناء عملية التفليش الخاطيء في هذه الأحوال مما يسبب في فصل الجهاز نهائياً.
والسبب هو عدم مطابقة مساحة الفلاشة الموجودة بالفيرموير مع مساحة الجهاز الأساسية..

الذاكرات الداخلية المتاحة اليوم لأنظمة الأندرويد هي:

2 جيجا - 4 جيجا - 8 جيجا - 16 جيجا - 32 جيجا - أو ربما 64 جيجا و 128 جيجا و 256 جيجا .. إلخ

wol error هذه الصورة تم اعادة تحجيمها . الحجم الافتراضي لها هو 1024x106.
star line break 1024x106
المهم نستكمل الموضوع
طبعاً كثير من المهندسين المختصين في البرمجة يلاحظون أن الإنفو الخاص بالهاتف أثناء قراءته على واجهة الأداة أو البوكس يظهر كود دون معرفة المساحة ودون حسابها وتظهر بهذا الشكل أثناء البوت الأول:

EMMC_USER_SIZE : 0x1C8000000

الآن كيف يمكنني حساب هذا الكود وتحويله إلى أرقام ؟ ومن خلال الأرقام سوف نعرف المساحة التي يشكلها هذا الكود..

بكل بساطة ننسخ الكود :

0x1C8000000

ونذهب إلى الآلة الحاسبة في الكمبيوتر

View >> Programmer >> HEX

Past Code

then Press DEC

سيظهر لك أرقام بهذا الشكل:

7650410496

هذا الرقم المفروض أنه بالبايت

نقسمه على 1024

سيظهر لك الرقم التالي:

7471104

هذا الرقم المفروض أنه أصبح بالكيلوبايت

نقسمه ثان على 1024

سيظهر لك الرقم التالي:

7296

الآن هذا الرقم المفروض أنه أصبح بالميجابايت

لو قمنا بتقريب الأرقام حتى يصبح رقم صحيح واثنان رقم عشري سيكون هكذا

7.12 G

إذن الذاكرة الداخلية لهذا الجهاز هي 8 جيجا

ونقوم بتطبيق هذه الطريقة على الباقي ..


wol error هذه الصورة تم اعادة تحجيمها . الحجم الافتراضي لها هو 1024x106.
star line break 1024x106

أمر آخر في هذه الأنواع أو الذاكرات عموماً لها عناوين بداية وعناوين نهاية لو قمت بتجميعها بنفس الطريقة ستظهر لك نفس النتيجة أيضاً.

على سبيل المثال:

قمنا بسحب نسخة كاملة لجهاز

Tecno W3

وبعد سحب النسخة ظهر لنا أكواد بداية ونهاية الذي يهمنا فيها الآن هو هذا الكود التالي:

Userdata: add:0xBA800000 -- length: 0x10c780000

لو جمعنا الكود الأول + الثاني بطريقة التحليل أعلاه وقسمناه على 1024

سيظهر لك هذا الرقم:

7279.5

وهذا بالميجابايت

ولو قمنا بتقريبه سيظهر نفس النتيجة أعلاه وهي :

7.12

طيب يبقى المعادلة هنا:

الأدريس الأول + الثاني = الكود الظاهر في الاسفل :D


0xBA800000

+
0x10c780000
=


0x1C8000000

===================

أيضاً قمنا بعمل إنفو لجهاز

TECNO L8

EMMC_USER_SIZE: 0x3A3E00000

ومن الإنفو لاحظنا هذا الكود الذي يحتوي على عناوين البداية والنهاية:

userdata:>>addr:0xEA000000 -- length:0x2B8D80000

المفروض لو حسبت الكود الأول بالطريقة أعلاه سيظهر لك في النهاية:

14.56 GB

وأيضاً لو جمعت العنوان الأول والثاني في السطر الثاني سيظهرلك نفس النتيجة في النهاية، أي أن الذاكرة الداخلية هي 16 جيجا بايتس


wol error هذه الصورة تم اعادة تحجيمها . الحجم الافتراضي لها هو 1024x106.
star line break 1024x106

طيب كيف يمكننا حساب الذاكرة الداخلية من خلال ملف السكاتر

SCATTER EMMC_USER_SIZE CALCULATE

بكل بساطة نقوم بفتح ملف الساكتر ونبحث عن الكلمات التالية:

partition_name: userdata

سوف يظهر لك بيانات هذه المنطقة من عناوين البداية والنهاية وعنوان المنطقة ، لو طابقت العناوين فيها ستلاحظ أنها متوافقة مع العنوان أعلاه..
ستكون شكلها كالتالي:
- partition_index: SYS21
partition_name: userdata
file_name: userdata.img
is_download: true
type: EXT4_IMG
linear_start_addr: 0xea000000
physical_start_addr: 0xea000000
partition_size: 0x2b8d80000
region: EMMC_USER
storage: HW_STORAGE_EMMC
boundary_check: true
is_reserved: false
operation_type: UPDATE
reserve: 0x00
الذي يهمنا في هذه المعلومات من الساكتر هو العنوان التالي:

physical_start_addr: 0xea000000

partition_size: 0x2b8d80000

ولو قمنا بجمعهم بنفس الطريقة سنجد نفس النتيجة

في المرفقات بعض الصور الهامة التي تدعم الشرح أيضاً

أتمنى في النهاية أن يكون هذا الشرح مفيد وقد أضفت شيئاً جديداً في التعامل مع خفايا هذه الأنواع ولدي كالكوليت لملفات أخرى سيتم الشرح عنها فيما بعد.
ملحوظة: يمنع النقل دون ذكر المصدر للأمانة

مع أطيب الأمنيات
Mahmoud H. Elshorbagy
Shorbagy