آموزش پورت رامهای اندروید 5 و6 برای تمام دستگاهای کوالکام

استاندارد

با یک آموزش پورت دیگه در خدمتتون هستیم

این آموزش کلی و شامل تمام دستگاهای دارایی پردازنده کوالکام می شود

در این آموزش منظور از پورت رامی که می خواهید پورت کنید

منظور از بیس رام نیز رامی که اکنون روی دستگاه شما اجرا می شود

در مرحله اول بیس را در یک پوشه استخراج کنید(cm یا AOSP )

رام پورت را نیز در یک پوشه استخراج کنید

فایلهای زیر را نیز دانلود کنید

[button color=”green” size=”medium” link=”http://www.gsm-developers.com/wp-content/uploads/2017/02/Gsm-Port.zip ” icon=”” target=”true”]Gsm Port[/button]

فایلها را درون دو پوشه بیس و پورت بگذارید

فایلهای که دارید

boot.img
file_contexts
META-INF
system.new.dat (compressed /system)
system.patch.dat
system.transfer.list

آموزش بر روی اوبنتو می باشد

باید فایل dat را به ext4 imgتغییر بدیم

ترمینال را باز کنید و کد زیر را وارد کنید

./sdat2img.py system.transfer.list system.new.dat system.img

حالا ext4 img را استخراج میکنیم

فایل system.img را مونت کنید با کد زیر

sudo mount -t ext4 -o loop system.img output/

اکنون فایل آماده می باشد همین کار را برای پورت رام نیز انجام بدهید

آغاز پورت رام

پوشه های زیر را از بیس پاک کنید

base/system/app
base/system/fonts
base/system/framework
base/system/media
base/system/priv-app

پوشه های زیر را از پورت به بیس کپی کنید

port/system/priv-app
port/system/app 
port/system/fonts 
port/system/framework 
port/system/media

فایلهای مهم زیر را کپی کنید

port/system/etc/permissions
platform.xml
handheld_core_hardware.xml
handheld_hardware.xml

و در مسیر /base/system/etc/permissions کپی کنید

اکنون به مسیر port/system/etc/init.d بروید

کپی کنید

00banner

در مسیر  base/system/etc/init.d

فایل build.prop را در هر دو پورت و بیس باز کنید

خطهای زیر را از پورت به بیس تغییر بدهید

ro.build.id=
ro.build.display.id=
ro.build.version.release=
ro.product.model=
ro.config.ringtone=
ro.config.notification_sound=
ro.config.alarm_alert=

بریم برای مرحله آخر

مرحله آخر پورت

به مسیر metainf/com/google/android بروید

فایل updater-script را باز کنید

کد زیر را می توانید اضافه کنید

ui_print (" ur text");

ذخیرش کنید

در مرحله آخر باید فایل رو دوباره بسازیم

با کد زیر آن را به img تبدیل می کنیم

./make_ext4fs -T 0 -S file_contexts -l 1073741824 -a system system_new.img output/

اکنون فایل system_new.img خود را می بینید

حالا باید فرمت فایل را به dat. تغییر دهیم

کد زیر را وارد کنید

./rimg2sdat my_new_system.img

فایل system.new.dat ساخته می شود

فایل را زیپ کنید و فلش تمام

هر گونه کپی برداری از متن بدون ذکر منبع شرعا و مورد پسند نویسنده نمی باشد

معرفی ASSAYYED KITCHEN

استاندارد

با سلام همیشه ابزارهای وجود دارد که کار را برای توسعه دهندگان آسانتر و سریعتر می کنند

امروز ابزاری را که برایتان معرفی می کنم با جرات می توان گفت کاملترین برنامه برای ویرایش APK ،رامهای اندروید و فایلهای سیستمی می باشد

این آشپزخانه به نام ASSAYYED KITCHEN دارایی قابلیتهای بسیار زیاد می باشد

قابلیتهای برنامه

پشتیبانی از ورژنهای رام زیر:

  • رامهای استوک سامسونگ (tar)  (tar.md5)
  • فایلها ایمیج استوک (system.img, boot.img, cache.img)
  • رام استوک سونی (ftf)
  • فایلهای استوک سونی (system.sin, kernel.sin)
  • زیپ دارای فایل tar
  • زیپ دارایی فایل ftf
  • زیپ دارایی فایلهای سیستم
  • رامهای موتورولا
  • رامهای System.yaffs2 با کرنل
  • فایل System.ext4 با کرنل
  • فایلهای زیپ دارایی ext4 system.img با کرنل
  • زیپ حاوی system.new.dat با کرنل
  • پشتیبانی از برداشتن هدر اضافه موتورولا
  • هر گونه رامی که در پوشه کار آشپزخانه قرار بگیرید

استخراج رام اصلی با کرنل

  • دستگاه روت شده یا نشده حاوی اندروید
  • دستگاهی که به کاستوم ریکاوری بوت شود
  • قابلیت گرفتن symlinks از دستگاه با دستور (ls -Rl /system حتی بدون روت

قابلیت دئودکس کردن

  • تمام ورژنهای اندروید از ابتدا تا نوقا
  • تمام رامهای شرکتی مانند سامسونگ سونی و غیره
  • هر نوع معماری دستگاه (arm, mips, x86)
  • هر نوع چیپ دستگاهی 32 و64 بیت
  • قابلیت سریع نشان دادن تعداد فایلهای APK در حال دئودکس

قابلیت اضافه کردن آخرین ورژن SuperSU

  • تمام رامهای اندروید از ابتدا تا نوقا
  • تمام رامهای CM/AOSP
  • اضافه کردن روت 5.1.1/6.0.1 بصورت سیستمی و با پچ sepolicy

و قابلیتهای راوان دیگر که بطور خلاصه می شوند

ساخت زیپ (META-INF) ریکاوری کاستوم

ساخت فایل زیپ قابل فلش برای انواع رامها

قابلیت debloating تمام رامها

قادر به ریپک و آنپک کردن انواع کرنل و ریکاوری

استخراج فایل ار فرمتهای (cache.img/hidden.img/userdata.img)

استخراج فایلهای بکاپ TWRP

تبدیل انواع فرمت فایلها

پشتیبانی از APKTOOL و انواع ویرایشهای APK

طریقه استفاده

بعد از دانلود برنامه یک فایل ASSAYYED.exe و یک پوشه TOOLS می بینید

با اجرای برنامه پوشه های (PLACE, WORK, READY FOLDERS) بوجود می آیند

اکنون می توانید تا بی نهایت رام و کرنل قرار بدهید

در برنامه 1 بزنید تا تمام رامها یا کرنلهای که قرار دادید لیست شوند

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد

معرفی ابزاری برای ساخت فایل zip قابل فلش(آموزش ویدیویی)

استاندارد

قبلا آموزشی در خصوص ساخت فایل زیپ قابل فلش در سایت قرار داده بودم

اکنون براتون یک برنامه تحت ویندوز معرفی میکنم که خیلی راحت هر فردی یک فایل قابل فلش درست کند

با استفاده از این برنامه شما قادر خواهید بود فایلهای زیپ زیر را درست کنید

برنامه های مختلف

فایل انیمیشن بوت

کرنل

از قابلیتهای جالب این برنامه ساخت فایل فلش عادی و فایل آروما می باشد

همچنین می توانید فایلها را به گروهای خاصی تقسیم کنید

مثلا می توان چند کرنل را قرار داد تا موقع نصب یکی را انتخاب کرد

برنامه Android Flashable Zip Creator را از فایل زیر می توانید دانلود کنید

 

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد

آموزش اضافه کردن نام رام و توسعه دهنده در about

استاندارد

برای اضافه کردن نام خود و نام رام در تنظیمات با ما همراه باشید

ممکن قبلا چنین اموزشی گذاشته باشیم ولی بخاطر تنوع بالا در رامهای اندروید و ورژنهای مختلف اندروید ممکن کمی فرق داشته باشند

فایل Settings.apk را دیکامپایل کنید

به مسیر res\xml بروید و فایل device_info_settings.xml را باز کنید

اکنون مکانی که می خواهید نام خود و رام را بگذارید انتخاب کنید

برای راحتر انجام دادن کار می توانید یکی از گزینه ها را کپی کنید و ویرایشش کنید

به android:title و android:summary نیاز داریم که در strings.xml دیده شوند

ما به android:key نیاز داریم که برای راحتی کار همون android:title را نگه دارید

به عنوان نمونه کد زیر را براتون میذارم

<Preference android:title="@string/rom_header" android:key="rom_header" android:summary="@string/rom_name" style="?android:preferenceInformationStyle" />
    <Preference android:title="@string/author_header" android:key="author_header" android:summary="@string/author_name" style="?android:preferenceInformationStyle" />

پس  device_info_settings.xml ما به شکل زیر در می آید

فایل خود را ذخیره کنید

اکنون به  res\values\strings.xml بروید تا ورودی ها را قرار دهید

دو ورودی برای نام رام نیاز داریم

یکی “@string/rom_header” و دیگری “@string/rom_name” می باشد

همچنین برای نام توسعه دهنده به دو ورودی نیاز داریم

یکی “@string/author_header” و دیگری “@string/author_name” می باشد

پس ورودی ها به سکل زیر در می آیند

<string name="rom_header">Rom Name</string>
    <string name="rom_name">X Rom</string>
    <string name="author_header">Developed By</string>
    <string name="author_name">Saqib Nazm</string>

شما می توانید هر نامی دلتان خواست بنویسید

فایل را ذخیره کنید

در آخر فایل ستینگ خود را کامپایل کنید

تمام

هرگونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد

آموزش اضافه کردن برنامه یا گزینه به تنظیمات(بخش دوم)

استاندارد

در بخش اول آموزش به چگونگی قرار دادن یک برنامه در تنظیمات بعنوان یک گزینه پرداختیم

در این بخش قرار دادن گزینه در منو فرعی تنظیمات می پردازیم

در این آموزش ما در منوی فرعی  display settings برنامه On-screen-buttons را اضافه می کنیم

در اینجا ما به یک منبع اضافی نیاز داریم به نام android:key که کلید اصلی هر برنامه ای است

اگر android:key اصلی را نیافتید،مقدار android:key را در مرجع ids.xml می دهیم

برای شروع اول برنامه  On screen button را دیکامپایل کنید

دنبال منابع میریم در AndroidManifest.xml

همان طور که می بینید ما android:targetPackage=”cn.kyle.gn.NavBar را به آسانی پیدا کردیم

تنها یک خط با <activity شروع می شود پس پیدا کردن android:targetClass=”cn.kyle.gn.NavBar.GnNavBarAct ivity”. android:action=”com.android.intent.MAIN”به آسانی است

اکنون نیز به android:title داریم که می تواند هر چیزی باشد که در strings.xml می باشد

android:key می تواند هر چیزی باشد که در ids.xml مراجعش می دهیم

چیز دیگری که بعنوان ورودی نیاز داریم android:summary می باشد، که زیر هدر برنامه می باشد

نمونه ما به شکل زیر در می آید

android:title="navienable_title"
android:key="on_screen"
android:summary="on_screen_summary"

وقتی تمام منابع و مقدار انها را درست کردید اکنون ورودی را در res\xml in display_settings.xml وارد می کنیم

<PreferenceScreen android:title="@string/navienable_title" android:key="on_screen" android:summary="@string/on_screen_summary">
        <intent android:targetPackage="cn.kyle.gn.NavBar" android:action="android.intent.action.MAIN" android:targetClass="cn.kyle.gn.NavBar.GnNavBarActivity" />
    </PreferenceScreen>

در آخر display_settings باید مانند زیر باشد

فایل را ذخیره کنید

اکنون به res/values بروید و فایل strings.xml را باز کنید

در اینجا نیاز به وارد کردن دو ورودی داریم

یکی برای android:title=”@string/navienable_title”

و دیگری برای android:summary=”@string/on_screen_summary

مانند زیر دو ورودی را درست می کنیم

<string name="navienable_title">On-Screen-Buttons</string>
    <string name="on_screen_summary">Enable/Disable On-Screen-Buttons</string>

به جایی On-Screen-Buttons شما نام برنامه یا هر چیزی که می خواهید را وارد کنید

فایل strings.xml ما مانند زیر می باشد

فایل خود را ذخیره کنید

اکنون به مسیر res\values\ids.xml بروید و فایل را باز کنید

اینجا نیاز داریم تا یک ورودی در display_settings بعنوان android:key ایجاد کنیم

ورودی ما به شکل زیر می باشد

<item type="id" name="on_screen">false</item>

پس ids.xml ما به شکل زیر در می آید

فایل خود را ذخیره و کامپایل کنید

نمونه کار ما در آموزش نیز در عکس زیر می باشد

کار تمام شد

برای کاملتر شدن آموزش نکته زیر را نیز اضافه کنم

اگر بخواهید که برنامه ای که در تنظیمات قرار می دهید مخفی شود و در لانچر نمایان نشود

در فایل Androidmanifest.xml قسمت زیر را در نظر بگیرید

<activity android:label="@string/app_name" android:name=".GalleryActivity" android:taskAffinity="android.task.pictures" android:configChanges="keyboardHidden|orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />

و خط زیر را پاک کنید

<category android:name="android.intent.category.LAUNCHER" />

گاهی ممکن در برخی برنامه ها کد بالا همیشه جواب ندهد

از روش زیر استفاده کنید

<activity android:label="@string/app_name" android:name=".GalleryActivity" android:taskAffinity="android.task.pictures" android:configChanges="keyboardHidden|orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />

کد بالا را به شکل زیر دربیارید

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />

موفق باشید

همچنین اگر موقع کامپایل با اشکال مواجه شدید

در مسیر smali/com/android/settings یک فایل به نام Maddy.smali درست کنید و کدهای زیر را در آن قرار دهید

.class public Lcom/android/settings/Maddy;
.super Lcom/android/settings/SettingsPreferenceFragment;
.source "Maddy.java"

# direct methods
.method public constructor <init>()V
    .locals 0

    .prologue
    .line 17
    invoke-direct {p0}, Lcom/android/settings/SettingsPreferenceFragment;-><init>()V

    return-void
.end method

# virtual methods
.method public onCreate(Landroid/os/Bundle;)V
    .locals 1
    .param p1, "savedInstanceState"    # Landroid/os/Bundle;

    .prologue
    .line 21
    invoke-super {p0, p1}, Lcom/android/settings/SettingsPreferenceFragment;->onCreate(Landroid/os/Bundle;)V

    .line 23
    const v0, 0x7f050054

    invoke-virtual {p0, v0}, Lcom/android/settings/Maddy;->addPreferencesFromResource(I)V

    .line 24
    return-void
.end method

موفق باشید

در اندروید 5 بجای settings_headers.xml دنبال فایل dashboard_categories.xml باشید

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد

آموزش اضافه کردن برنامه یا گزینه به تنظیمات(بخش اول)

استاندارد

در خیلی از رامها می بینید که در تنظیمات گوشی یک گزینه یا یک برنامه بصورت منو اضافه شده است

با ما باشید تا چگونگی این کار را به شما آموزش دهیم

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

یک برنامه برای کامپایل و دیکامپایل

برنامه Notepad++

اضافه کردن گزینه یا برنامه در منوی اصلی

برای اضافه کردن برنامه به تنظیمات شما به منابع آن برنامه نیاز دارید

این منابع را در دیکامپایل برنامه در فایل AndroidManifest.xml می توان پیدا کرد

برای اضافه کردن به منابع زیر نیاز داریم

android:targetPackage: نام اصلی برنامه

android:action: مرتبط با یکبار کلیک کردن روی برنامه برای اجرای آن

android:targetClass : عملگری که هنگام کلیک بر برنامه برنامه را اجرا می کند

android:title : هدر و همچنین strings.xml برنامه

android:icon : این هم آیکون برنامه هست

در بعضی برنامه ها  android:targetClass در مسیر AndroidManifest نمی باشد،باید آن را خودتان جستجو کنید

خوب بریم سراغ آموزش

ما برنامه Rom Toolbox را بعنوان نمونه در نظر می گیریم

1- اول از همه نیاز به دیکامپایل Rom Toolbox داریم،برای پیدا کردن منابعمون در AndroidManifest.xml

همان طور که در تصویر بالا می بینید،دو منبع  android:targetPackage و android:targetClass را علامت زدم

پیدا کردن انها آسان است اگر نتوانستید آنها را پیدا کنید در جستجو دنبال خطهای با شروع <activity باشید

گاهی android:targetClass را فقط در یک عبارت پیدا می کنید

بعنوان نمونه برنامه Serajr’s SystemUI Preference را SystemUIPreferencesActivity پیدا می کنید

در این حالت باید android:targetPackage را قبل از targetClass اضافه کنیم

برای مثال بالای ما میشه android:targetPackage=”com.serajr.systemui.prefere nces به android:targetClass=”com.serajr.systemui.preferences.SystemUIPreferencesActivity پس

برای Rom Toolbox میشه

android:targetPackage="com.jrummy.liberty.toolbox"
android:targetClass="com.jrummy.apps.rom.toolbox.RomToolboxActivity"
android:action="android.intent.action.MAIN"

android:action همیشه نیاز نیست اضافه شود

می توان به جایش از android.intent.action.MAIN استفاده کرد

2- اکنون Settings.xml را دیکامپایل کنید

به مسیر res\xml بروید و فایل settings_header.xml را با notepad++ باز کنید

اکنون در اینجا مکانی که ورودی برنامه را می زارید پیدا کنید

اگر می خواهیم یک هدر بسازیم به نام advanced settings نیاز به ساخت android:title و android:icon برای برنامه داریم

کد زیر settings_header ما می شود

</header>
    <header android:title="@string/header_category_advanced" />
    <header android:icon="@drawable/ic_settings_rom" android:title="@string/rom_toolbox">
        <intent android:targetPackage="com.jrummy.liberty.toolbox" android:action="android.intent.action.MAIN" android:targetClass="com.jrummy.apps.rom.toolbox.RomToolboxActivity" />

در هدر اولی برای advanced settings نیاز به ساخت ورودی نام برنامه در strings.xml داریم

در هدر دومی نیز نام و آیکون برنامه قرار دارند،درست مانند اسمی که در strings.xml وجود دارد

ما rom_toolbox نوشتیم شما هر برنامه ای که می خواهید بنویسید

در آخر settings_header ما به شکل زیر در می آید

اکنون فایل را ذخیره کنید

3- اکنون به مسیر res\values بروید و فایل strings.xml را باز کنید

در اینجا نیاز به ساخت دو رشته داریم

یکی برای advanced settings و دیگر برای خود برنامه

نام هر دو رشته header_category_advanced و rom_toolbox می شود

پس ورودی strings.xml ما به شکل زیر می شود

<string name="header_category_advanced">ADVANCED SETTINGS</string>
    <string name="rom_toolbox">ROM Toolbox</string>

شما می توانید هر نامی را انتخاب کنید تا در تنظیمات نمایان شود

پس strings.xml مانند تصویر زیر می شود

فایل را ذخیره کنید

4- اکنون نیاز به قرار دادن یک png برای برنامه در پوشه drawable داریم با نام ic_settings_rom که درheader of android:icon داده می شود

بسته به دستگاهتان نام پوشه شما drawable hdpi  یا drawable mdpi می شود

برای ما hdpi می باشد

برای شروع اول نیاز به رزولوشن png که با نام ic_settings شروع می شود نیاز داریم

برای drawable hdpi می شود 48×48 و برای drawable mdpi می شود 32×32 پس ما نیاز داریم که اندازه png را به همان اندازه درست کنیم

برای ما اندازه را 48×48 کردیم و در پوشه drawable-hdpi قرار دادیم

5- در آخر نیاز به کامپایل فایل خود دارید

در زیر نمونه کاری که ما انجام دادیم را میتوانید ببینید

در بخش دوم چگونگی قرار دادن گزینه در منو های فرعی تنظیمات را آموزش می دهیم

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد

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

استاندارد

با سلام اندروید مانند یک دریایی بی کران می ماند و فردی که بخواهد برای وارد شدن به این دریا و تبدیل شدن به یک ناخدا(توسعه دهنده) شود ممکن است کمی گیج شود چون آموزشهای بسیار متنوعی وجود دارند و هر چیزی که یاد میگیرید میبینید که بازم یک چیز کم است
در این پست تصمیم گرفتم که آموزشهای مختلف انجمن Gsm-Developers را جمع آوری و دسته بندی بکنم تا منبع باشد برای یک شروع از نقطه صفر تا توسعه دهندگی اندروید تقریبا آموزشها از چگونگی فلش یک رام تا ساخت خود رام هستند و بیشتر آموزشها را بنده سعی می کنم قرار بدهم

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

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

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

آموزشها نیز به مرور زمان و همیشه قرار می گیرند

آموزش اضافه کردن آیتم به Settings.apk/تعویض طرح

استاندارد

با سلام امروز با آموزشی دیگر در خدمتتان هستیم،با ما همراه باشید

در این آموزش انواع ویرایش های مورد نیاز برای فایل Settings.apk را قرار می دهم ولی یک توسعه دهنده نباید فقط به این کدها بسنده کند با دیدن انواع فایلهای ستینگ در کاستوم رامهای دیگر می توان از نبوغ خود استفاده و تغییرات زیادی را بدهید.

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

یک برنامه ویرایش متن: برای ویندوز توصیه بنده Notepad++ و برای لینوکس Geany

برای سهولت کار این برنامه را نیز بر روی گوشی نصب کنید Zipsigner

برای شروع کار اول فایل Settings.apk را دیکامپایل کنید.(طبق آموزش سایت فایل را دیکامپایل کنید)

ویرایش فایل Strings

به پوشه دیکامپایل Settings بروید و در مسیر res/xml/settings_headers.xml فایل مورد نظر را با ویرایشگر متن باز کنید.

در فایل مورد نظر شما هر گزینه که نیاز دارید را ویرایش کنید ما بعنوان نمونه گزینه “Developer settings” را به “Noobs keep out” تغییر می دهیم در خط زیر

<header android:icon= @drawable/ic_settings_development" android:id="@id/development_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />

برای این کار و تغییر عنوان فایل Strings.xml زبان مورد نظر خودتان را باز کنید و با استفاده از جستجو (Ctrl+F) گزینه خود را پیدا کنید.

ما گزینه “development_settings_title” را جستجو کردیم.

<string name="development_settings_title">Developer options</string>

برای تغییر عنوان بالا آن را مانند زیر ویرایش کنید.

<string name="development_settings_title">Noobs keep out</string>

فایل را ذخیره و تمام یک عنوان را تغییر داده اید.

ویرایش آیکونهای Settings

به این مسیر بروید res/xml/settings_headers.xml و فایل را با ویرایشگر متن باز کنید.

دنبال هدر مورد نظر خود که قصد تغییر آن را دارید بگردید.

ما در اینجا برای ویرایش “Development Settings” می رویم که به شکل “ic_settings_advanced” در بیایید.(این نوع فقط در رامهای با بیس سیانوژن می باشد)

<header android:icon= @drawable/ic_settings_development"  android:id="@id/development_settings"  android:title="@string/development_settings_title"  android:fragment="com.android.settings.DevelopmentSettings" />

برای تغییر آیکون آنها را در مسیر res/drawable-hdpi, mdpi, ldpi and xhdpi  میتوانید پیدا کنید.(طبق رام شما متفاوت می باشد نامشان)

برای تغییر ic_settings_advanced کد ما به شکل زیر در می آید.

<header android:icon= @drawable/ic_settings_advanced" android:id="@id/development_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />

برای تغییر آیکون می توانید از مجموعه آیکون خود گوگل نیز کمک بگیرید.

آیکون مورد نظر خود را انتخاب کنید و مطمئن شوید که با رزولوشن صفحه شما یکی باشد.(رزولوشن را می توان در ic_settings icons پیدا کنید)

آن را در پوشه درست کپی کنید.(hdpi, mdpi, xhdpi, ldpi)

نام آن را مانند این نمونه بگذارید.(ic_settings_<name>)

بعد در کد مانند اسمی که انتخاب کردید @drawable/ic_settings_<name> آن را تغییر بدهید.

اضافه کردن گزینه به هدرsettings

برای این کار فایل settings_headers.xml را باز کنید.

جایی که نیاز دارید یک گزینه جدید اضافه کنید کد زیر را کپی کنید.

<header android:icon= @drawable/ic_settings_name" android:id="@id/id" android:title="@string/title">
        <intent android:targetPackage="pkgName" android:action="android.intent.action.MAIN" android:targetClass="pkgName.Activity" />
    </header>

خوب برای تغییر آیکون android:icon را آنگونه که می خواهید تغییر بدهید.

برای عنوان آن را در values/strings.xml وارد کنید و به android:title ارجاع دهید.

گزینه android:targetPackage را هم به نام برنامه ای که می خواهید اجرا شود تغییر دهید.

گزینه android:targetClass را نیز به نام برنامه تغییر دهید.

گزینه android:id را طبق ایدی که در values/ids.xml  می دهید تغییر دهید.(اگر هم میل دارید میشود این گزینه را پاک کرد)

تمام

مرتب سازی Settings

برای مرتب سازی گزینه ها فایل settings_headers.xml را باز کنید.(یا منو فرعی مورد نظر خودتان)

برای تغییر و مرتب سازی هر گزینه ای که می خواهید را کات کنید و در مکان مورد نظرتان بگذارید.

همین تمام

اضافه کردن گزینه به منوهای فرعی

ما به عنوان نمونه می خواهیم گزینه “Credits” را به “About device” اضافه کنیم.

فایل منو فرعی مورد نظر را باز کنید.(برای ما device_info_settings.xml می باشد)

مکان مورد نظر برای گزینه را پیدا کنید و خط زیر را اضافه کنید.

<Preference android:title="@string/title" android:key="key" android:summary="@string/summary" style="?android:preferenceInformationStyle" />

گزینه android:title را به عنوانی که در values/strings.xml قرار داده اید تغییر بدهید.

گزینه android:key را آن جور که می خواهید تغییر دهید.

گزینه android:summary را به متن طولانی مورد نظر خود تغییر دهید.(در values/strings.xml)

تمام

قرار دادن جدا کننده در بین تنظیمات

برای قرار دادن جدا کننده در صفحه تنظیمات اصلی

فایل settings_headers.xml را باز کنید

بگردید و جایی که می خواهید یک جداکننده قرار دهید را پیدا کنید و کد زیر را قرار دهید

<header android:id="@id/id" android:title="@string/title" />

گزینه android:id را طبق مقداری که در values/ids.xml داده اید وارد کنید.

گزینه android:title را نیز مانند مقدار خودتان در strings.xml عوض کنید.

اضافه کردن جدا کننده به منوهای فرعی

فایل منوی فرعی مورد نظر خودتان را باز کنید

جای که می خواهید جداکننده بگذارید را پیدا و کد زیر را قرار دهید

<PreferenceScreen android:title="@string/title" android:key="key">

قبل از اضافه کردن جداکننده دیگر نیز کد زیر را بگذارید

</PreferenceScreen>

گزینه android:title  را به مقداری که در strings.xml قرار داد ه اید تغییر دهید

نوشته key را نیز به هر چی دلتان می خواهد تغییر نام دهید.

آموزش نمایان ماندن گزینه Developer settings

فایل settings_headers.xml را باز کنید

دنبال کد زیر بگردید

<header android:icon= @drawable/ic_settings_development" android:id="@id/development_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />

گزینه id from development_settings را به development_settings_force تغییر دهید

<header android:icon= @drawable/ic_settings_development"  android:id="@id/development_settings_force"  android:title="@string/development_settings_title"  android:fragment="com.android.settings.DevelopmentSettings" />

بعد فایل values/ids.xml را باز کنید و کد زیر را قرار دهید

<item type="id" name="development_settings_force">false</item>

تمام

ریکامپایل فایل Settings.apk

عملیات ریکامپایل را با APKTOOL یا هر برنامه دارید انجام دهید

برنامه Zipsigner را در گوشی خود باز کنید فایل Settings.apk را از in/out button انتخاب کنید

گزینه “platform” را انتخاب کنید و بر روی sign بزنید

وقتی تمام شد از فایل Settings.apk اصلی خود یک پشتیبان تهیه کنید و فایل ویرایش شده را انتقال دهید به مسیر /system/app/Settings.apk یا با ADB در ویندوز  یا لینوکس کدهای زیر استفاده کنید

adb remount
adb shell cp /system/app/Settings.apk /system/app/Settings.bak
adb shell cp /sdcard/Settings-signed.apk /system/app/Settings.apk

در آخر گوشی را ریستارت کنید.

عیب یابی

اگر apk شما ریکامپایل نشد به کدهای خود دقت کنید یا از برنامه APK Easy Tool استفاده کنید که آموزش و لینک برنامه را در زیر برایتان قرار داده ایم.

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

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد

آموزش اضافه کردن نوشته در منوی اطلاعات گوشی

استاندارد

حتما در تمام کاستوم رامها مشاهده کردید که در منوی درباره گوشی اطلاعات سازنده و رام را اضافه می کنند.

امروز نیز ما در این آموزش چگونگی اضافه کردن این اطلاعات را توضیح می دهیم با ما همراه باشید.

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

برنامه NOTEPAD++

برنامه 7-ZIP

فایل Settings.apk  مورد نظر گوشی

برنامه apktool که در لینک زیر آموزش بهمراه لینک دانلود قرار دارد

شروع کار

فایل SETTINGS.APK را دیکامپایل کنید.

به مسیر /res/values/strings.xml بروید و فایل را با NOTEPAD++ باز کنید.

در آخر کد زیر را اضافه کنید.

<string name ="header_rom_name">ROM NAME</string>
<string name ="header_rom_version">ROM VERSION</string>
<string name ="header_rom_release_date">ROM RELEASE DATE</string>
<string name ="header_rom_maker">ROM MAKER</string>

کدهای بالایی نام بالایی گزینه ها را تعیین می کنند هر نامی مد نظرتان بود بنویسید.

در زیر کدهای بالا کد زیر را اضافه کنید برای نام زیرین

<string name ="rom_name">YOUR ROM NAME</string>
<string name ="rom_version">YOUR ROM VERSION</string>
<string name ="rom_release_date">YOUR ROM RELEASE DATE</string>
<string name ="rom_maker">YOUR NAME</string>

خوب اکنون فایل ما تا حدودی شبیه به زیر می باشد.

<string name ="header_rom_name">ROM NAME</string>
<string name ="header_rom_version">ROM VERSION</string>
<string name ="header_rom_release_date">ROM RELEASE DATE</string>
<string name ="header_rom_maker">ROM MAKER</string>
<string name ="rom_name">YOUR ROM NAME</string>
<string name ="rom_version">YOUR ROM VERSION</string>
<string name ="rom_release_date">YOUR ROM RELEASE DATE</string>
<string name ="rom_maker">YOUR NAME</string>

فایل را ذخیره کنید و ببندید.

اکنون فایل res/xml/device_info_settings.xml را باز کنید.

کد زیر را به پایان اضافه کنید.

< Preference android:title="@string/header_rom_name" android:key="rom_name" android:summary="@strings/rom_name" style="?android:preferenceinformationStyle />
< Preference android:title="@string/header_rom_version" android:key="rom_version" android:summary="@strings/rom_version" style="?android:preferenceinformationStyle />
< Preference android:title="@string/header_rom_release_date" android:key="rom_release_date" android:summary="@strings/rom_release_date" style="?android:preferenceinformationStyle />
< Preference android:title="@string/header_rom_maker" android:key="rom_maker" android:summary="@strings/rom_maker" style="?android:preferenceinformationStyle />

این کدها باعث می شوند که نامهای اولی که نوشتید در تنظیمات نمایان شوند.

فایل را ذخیره و ببندید.

در آخر Settings.apk را ریکامپایل کنید تمام

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد.

آموزش دئودکس فایلهای jar با گوشی(همراه با آموزش ویدیویی)

استاندارد

با سلام به درخواست کابران این آموزش آماده شده است.

قبلا آموزش کامل چگونگی دئودکس کردن یک رام را گذاشتیم در اینجا فقط آن فایل مورد نظر خودمان را دئودکس می کنیم.

آموزش کامپایل و دیکامپایل فایلهای jar در پست زیر

همین آموزش بصورت تصویری

برای انجام این کار در گوشی  شما اول به یک گوشی روت شده و نصب بودن Busybox نیاز دارید.

به برنامه Mobile apktool نیز نیاز دارید برای دانلود برنامه

ورژنهای مختلف از منبع اصلی

برای نصب برنامه ابتدا هر نسخه ای دارید را پاک کنید.

برنامه Apktool Installer را نصب کنید.

سپس برنامه ApkTOOl را نصب کنید.

برای شروع کار یک پوشه درون حافظه گوشی خود ایجاد کنید.

بعنوان مثال دو فایل framework.jar و framework.odex را درون آن کپی کنید.

با استفاده از apktool فایل framework.odex را دیکامپایل کنید.

بعد از پایان دوباره آن را ریکامپایل کنید.

میبینید که فایل به framework.dex تبدیل شده است،بر روی آن زده و گزینه add to apk with same name را انتخاب کنید.

اکنون فایل jar  شما بصورت کامل دئودکس شده است.

هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد.