Добавляем пункт "Автозагрузка" в меню "Настройки" (Android 4.0.4, 4.1.2, 4.2.2, 4.3.1, 4.4.2)

Рейтинг:   / 2
ПлохоОтлично 

ApkTool: ???
Android: ???
Проверено на: ??? 

Методика несколько отличается от уже предложенных (они у меня не сработали на Android 4.2.2, 4.3.1):
http://___forum.china-iphone.ru/post1054268.html#p1054268
http://___4pda.ru/forum/index.php?showtopic=251071&view=findpost&p=23207344

Информация частично была взята с xda, исправлены некоторые ошибки и немного доработана.

Декомпилируем Settings.apk (или SecSettings.apk, далее будем его называть просто Settings.apk),
из скачанного архива Settings_Autostarts_Res.rar копируем файлы из Settings/res в соответствующие директории.

Settings_Autostarts_Res.rar

Далее открываем Settings/res/values/ids.xml:

Добавляем в конце строки

<item type="id" name="autostarts_settings">false</item>
<item type="id" name="appName">false</item>

Далее открываем Settings/res/values/strings.xml:
Добавляем в конце строки:

<string name="autostarts_title">Autostarts</string>
<string name="autostarts_ ed">Has allowed</string>
<string name="autostarts_prohibited">Has Prohibited</string>
<string name="autostarts_allow_progress_msg">Being restored boot, please wait...</string>
<string name="autostarts_prohibit_progress_msg">Prohibit boot, please wait...</string>
<string name="autostarts_empty_msg">No installation boot applications</string>
<string name="autostarts_optimize_empty_msg">No optimize the startup items</string>
<string name="autostarts_optimize_btn_title">Optimize the startup items</string>
<string name="autostarts_all_btn_title">All autostarts items</string>

Далее открываем Settings/res/values-ru/strings.xml:
Добавляем в конце строки:

<string name="autostarts_title">Автозагрузка</string>
<string name="autostarts_allowed">Разрешено</string>
<string name="autostarts_prohibited">Запрещено</string>
<string name="autostarts_allow_progress_msg">Восстановление автозагрузки, пожалуйста подождите...</string>
<string name="autostarts_prohibit_progress_msg">Отключение автозагрузки, пожалуйста подождите...</string>
<string name="autostarts_empty_msg">Нет приложений в автозагрузке</string>
<string name="autostarts_optimize_empty_msg">Все отключенные приложения в автозагрузке скрыты</string>
<string name="autostarts_optimize_btn_title">Скрыть отключенные приложения в автозагрузке</string>
<string name="autostarts_all_btn_title">Отобразить все приложения в автозагрузке</string>

Если необходим еще какой-нибудь язык, производим аналогичные действия и для него.

Компилируем Settings.apk, далее в папке dict переименовываем Settings.apk в Settings_1.apk и извлекаем его в APKTools, далее декомпилируем его и из Settings_1/res/values/ копируем файл public.xml в исходную папку Settings по тому же пути, удаляем из Settings папки dict и build.
Таким образом мы прописали добавленные ресурсы.

Далее открываем Settings/res/xml/settings_headers.xml:
После строки:

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

добавляем:

<header android:icon="@drawable/ic_settings_autostarts" android:id="@id/autostarts_settings" android:title="@string/autostarts_title" android:fragment="com.android.settings.autostarts.LewaManageAutostarts" />

Далее из скачанного архива Settings_Autostarts_Res.rar копируем папку autostarts из
Settings/smali/com/ android/settings в соответствующую директорию.

Далее открываем Settings/smali/com/android/settings/autostarts/LewaManageAutostarts$AppAdapter.smali:
Заменяем идентификаторы на свои из public.xml (индификаторы прописаны в той же последовательности, как в файле .smali)

- находим line 164 и меняем "0x7f040088", на индификатор из "public.xml" в
строке

<public type="layout" name="manage_autostarts_item"

- находим line 174 и меняем "0x7f080028", на код из "public.xml" в строке

<public type="id" name="icon"

- находим line 195 и меняем "0x7f08020a", на код из "public.xml" в строке

<public type="id" name="appName"

- находим line 217 и меняем "0x7f080018", на код из "public.xml" в строке

<public type="id" name="status"

- находим line 236 и меняем "0x7f0800ac", на код из "public.xml" в строке

<public type="id" name="app_on_sdcard"

Далее открываем Settings/smali/com/android/settings/autostarts/LewaManageAutostarts.smali:
Заменяем идентификаторы на свои из public.xml (индификаторы прописаны в той же последовательности, как в файле .smali)

- находим line 190 и меняем "0x7f0b06b2", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_prohibit_progress_msg"

- находим line 305 и меняем "0x7f0b06af", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_allowed"

- находим line 401 и меняем "0x7f0b06b0", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_prohibited"

- находим line 584 и меняем "0x7f0b06b6", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_all_btn_title"

- находим line 612 и меняем "0x7f0b06b5", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_optimize_btn_title"

- находим line 632 и меняем "0x7f040087", на индификатор из "public.xml" в
строке

<public type="layout" name="manage_autostarts"

- находим line 688 и меняем "0x7f0b06b3", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_empty_msg"

- находим line 765 и меняем "0x7f0b06b5", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_optimize_btn_title"

- находим line 772 и меняем "0x7f0b06b3", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_empty_msg"

- находим line 792 и меняем "0x7f0b06b6", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_all_btn_title"

- находим line 799 и меняем "0x7f0b06b4", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_optimize_empty_msg"

- находим line 831 и меняем "0x7f0b06b1", на индификатор из "public.xml" в
строке

<public type="string" name="autostarts_allow_progress_msg"

Компилируем папку Settings, копируем из build/apk редактированные ресурсы в Settings.apk,
все копируемые файлы без сжатия, кроме classes.dex с обычным сжатием.

Для отображения в пункте "Автозагрузка" системных приложений был применен метод, описанный в
Компилируем папку Settings, копируем из build/apk редактированные ресурсы в SecSettings.apk,
все копируемые файлы без сжатия, кроме classes.dex с обычным сжатием.

Для отображения в пункте "Автозагрузка" системных приложений был применен метод, описанный в
http://___4pda.ru/forum/index.php?showtopic=251071&view=findpost&p=27501309

В нашем случае, надо из файла Settings.apk/smali/com/android/settings/autostarts/LewaManageAutostarts.smali
удалить этот код (line 522 - line 538):

iget-object v4, p0, Lcom/android/settings/autostarts/LewaManageAutostarts;->pm:Landroid/content/pm/PackageManager;

iget-object v5, v3, Landroid/content/pm/PackageInfo;->packageName:Ljava/lang/String;

const/4 v6, 0x0

invoke-virtual {v4, v5, v6}, Landroid/content/pm/PackageManager;->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;

move-result-object v4

iget v0, v4, Landroid/content/pm/ApplicationInfo;->flags:I

.line 79

.local v0, appFlags:I

and-int/lit8 v4, v0, 0x1

if-nez v4, :cond_0

то будут показываться и системные приложения

Комментарии  

 
0 #1 Kindra 22.08.2015 00:17
What i do not understood is in fact how you're not actually a lot more neatly-favored than you might be
right now. You're very intelligent. You understand therefore significantly
in terms of this topic, made me individually believe it from a lot
of numerous angles. Its like men and women are not fascinated
except it's something to do with Lady gaga! Your own stuffs great.
All the time maintain it up!

Here is my blog post: medicament france cialis: http://www.cialispharmaciefr24.com/medicament-france-cialis
Цитировать
 

Добавить комментарий


Защитный код
Обновить