آموزش اضافه کردن آیتم به Settings.apk/تعویض طرح
با سلام امروز با آموزشی دیگر در خدمتتان هستیم،با ما همراه باشید
در این آموزش انواع ویرایش های مورد نیاز برای فایل Settings.apk را قرار می دهم ولی یک توسعه دهنده نباید فقط به این کدها بسنده کند با دیدن انواع فایلهای ستینگ در کاستوم رامهای دیگر می توان از نبوغ خود استفاده و تغییرات زیادی را بدهید.
برنامه های مورد نیاز
برای شروع کار اول فایل 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 شما بعد از پایان کار نمایان نشد احتمالا مشکل از ساین کردن باشد دوباره اقدام به ساین کنید،اگر بازم نمایان نشد فقط می توان گفت به بد شانسی خورده اید از اول مراحل را با دقت انجام دهید.
هر گونه کپی برداری از متن بدون ذکر منبع شرعا حرام و مورد پسند نویسنده نمی باشد
سلام ممنون بابت همه پست هایی که گزاشتی کارت واقعا عالیه من هم بسیار علاقه مند به موبایل هستم چند سوال دارم
1 چه جوری رنگ نوار وضیت رو توی نرم افزار ها باید تغییر داد(منظورم نوار بالای نرم افزار که شکل باطری وای فای بلو توث و…) مثلا تو نرم افزار کافه بازار که رنگش سبزه میخوام رنگشو عوض کنم
سلام و ممنون از حمایتتون واقعا باعث دلگرمی میشه
برای تغییر نوار در بالا در ورژنهای جدید اندروید بصورت اتوماتیک همسان با رنگ خود نرم افزار میشن مثل همون مثال بازار که خودتون فرمودید …برای این تغییرات بهترین گزینه ماژول App Settings در برنامه Xposed هست
یا از برنامه Material Status Bar هم راحت میشه استفاده کرد
ولی کلا توصیه نمیشه این رنگ دستکاری بشه باعث بهم ریختگی و گاهی باعث دیده نشدن علامت باتری و ساعت میشه
برای تغییر در کد نرم افزار هم فایل res/values/styles.xml باید ویرایش بشه قسمت ActionBar
موفق باشید
سلام ممنون بابت راهنمایی
آیا امکانش هست رامی رو که ساختم یا ویرایش کردم و به صورت زیپ هست روی pcاجرا کنم مثل ماشین مجازی ؟
آموزش Decompileکردن نرم افزار ستینگ. فریم ورک .و سیستم یو ای اندروید 4و5 کجاهست؟ یه اموزش کامل باشه برای همه نرم افزار ها
اموزش تغییر ویا عوض کردن کامل نوتی فیکیشن بار رو هم بزارید از توی سیستم یو ای
ببخشید زیاد سوال پرسیدم
خسته نباشید
با سلام
ماشین مجازی برای اجرای رامها وجود ندارد
یک پست جدید هست در رابطه با APKTOOL تقریبا همه چیز آنجا قرار داده شده از اون کمک بگیرید نسخه جدید هم قرار داده شده با پشتیبانی از اندروید 7 به پایین
http://www.gsm-developers.com/apktool/
آموزشهای اندروید خیلی زیاد هستن سعی دارم در آینده یک پست جامع یادگیری از یک مبتدی تا توسعه دهنده قرار بدم برای تغییر نوتیفیکیشن نیز اضافه میکنیم
برای دکمه های ناوبری در فایل build.prop کد زیر را اضافه کنید بالا فعال می شوند
qemu.hw.mainkeys=0
عدد بالا را یک کنید غیر فعال می شوند گاهی هم به اسم ro.show.navigationbar= هستن که با enable و disable فعال و غیر فعال می شوند
ببخشید چند سوال جزعی هم دارم اول اینکه رنگ پایین ActionBar(مثلا در تصویر بالا (اسکرین شات از ستینگ)که روش نوشتهsettingsو رنگ زمینه که سفید هست رو باید چجوری تغییر داد؟
دوم این که چه تغییری تو کد های یک نرم افزار باید بدیم که کلید های مجازی گوشی پنهان بشه؟
ممنون
سلام و خسته نباشید
من وقتی میخوام فایل xml رو باز کنم با notepad++
فایل درست باز نمیشه و بصورت نوشته های ناخوانا باز میشه
با سلام دوست عزیز
فایلهای درون APK کلا کد شده هستن با APKTOOL باید دیکامپایل کنید که بعدا باز کنید بدون کدشده باز بشن اگه این مراحل رو رفتید بازم مشکل داره سیستم یو ای رو هم با فریمورک گوشی نصب کنید دو تا با هم