ANDROID--модернизация,улучшения и т.д. для смартфонов

Модераторы: Lunat, pvsurkov, AlexG1, masson, KSAT

Куратор темы: masson

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#1 » masson » 29 янв 2012, 22:25

Подфорумы

ANDROID--модернизация,улучшения и т.д. для смартфонов - - - - Модернизация андроида.Обсуждение - - - - Заявки на модернизацию - - - - - Нюансы портирования прошивок - - - - Вспомогательный софт


Здесь выкладываем мануалы по модернизации телефонов на ОС ANDROID !!!Остальные вопросы задаём в соответствующих подфорумах!Приветствуется любая инструкция воплощённая в жизнь.
Решения с других форумов необходимо использовать с собственным описанием,указав название источника и автора (без ссылок,чтобы не противоречило правилам форума).
Ну и если описание процесса помогло-не стесняемся,жмём жёлтый пальчик.Автору текста или автору мануала будет приятно-не зря старался!
Весь материал выложен в ознакомительных целях.Не правильное использование может вывести телефон из строя,помните об этом.Как обычно говорят
-всё используется на свой страх и риск.

При публикации модернизаций соблюдаем следующие правила:

  • Картинки,коды и длинный текст помещаем в спойлер.Это поможет тем,кто пользуется лимитированным трафиком интернета
  • Указываем версию андроида для которой предназначена модификация
  • Пост должен содержать информацию о модернизации только для системных приложений!!Для вспомогательных программ и готовых(универсальных) патчей есть тема "Вспомогательный софт"
  • Мануал должен быть проверен на работоспособность хотя бы на одном аппарате.Сообщения не подтверждённые практикой будут удаляться.

 Для начала

 Набор инструментов

Мануалы и рекомендации выложенные в этой ветке
 

Последний раз редактировалось masson 20 ноя 2012, 20:15, всего редактировалось 50 раз(а).
  • 177

Аватара пользователя
masson

Суперкуратор
 
Сообщения: 4098
Зарегистрирован: 28 фев 2010, 21:05
Репутация: 3149

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#41 » sergpn » 24 июл 2012, 12:40

Как подружить индикатор батареи (светодиод) и уведомления о пропущенных звонках и о СМС-ках.
Когда ZP100 (ICS 4.0.3) находится на заряднике, совершенно не работает нотификация, т.е. не видно пропущенных звонков.
Выяснил, что сервисы нотификации и батареи запускаются каждый со своим ID номером, и чья цифра ниже тот и имеет приоритет.

Тут таблица ID
 LightsService.smali

Тут инициализация сервиса уведомлений с ID = 4
 NotificationManagerService.smali

Тут инициализация сервиса батареи с ID = 3
 BatteryService$Led.smali

Пробовал менять местами ID - работает, но теперь нотификация перебивает зарядник, а хочется чтобы и то и это.

В общем так. Светодиод включают методы setColor(I)V (светится), setFlashing(IIII)V (мерцает) в LightsService$Light.smali и вызывают один и тот же метод setLightLocked(IIIII)V, только с разными параметрами, а выключает turnoff() - вызывает тот же setLightLocked(IIIII)V с нулевыми параметрами. Там же есть и pulse(II)V - им можно воспользоваться. У нее два входных ненулевых параметра, если первый параметр сделать нулевым, то вторым параметром можно модифицировать алгоритм индикации и передать туда например тайминг мерцания.
Итак:
 В LightsService$Light.smali добавим новую переменную mNot:I

 Там же, в методе pulse(II)V добавим код - если первый параметр = 0 то второй сохраняем в mNot:I, иначе как обычно

 Там же модифицируем setColor(I)V. Если mNot:I не ноль, то мерцает, если ноль то просто горит. Параметр тайминга рассчитывается из mNot:I.

 Теперь в NotificationManagerService.smali так же делаем новую переменную mNotService

 Там же инициализируем сервис с ID=3 (тот что работает на батарею) и запоминаем его в mNotService

 Далее там же расставляем команды модификации свечения через pulse(II)V, тут в регистре v2 отправляем тайминг ledOnMS

 Тут то же на всякий случай

 А тут отправляем 0 - т. е. отключаем модификацию свечения

 И тут то же выключаем


Теперь когда телефон на заряднике светодиод подмаргивает при наличии уведомлений.

И еще небольшое изменение работы алгоритма индикации заряда

Немного о уровнях заряда. Изначально авторы задумали трехцветный индикатор, но то ли недоглядели, то ли специально сделали только два цвета.
Если пробежаться поиском по BatteryService$Led.smali то найдется три уровня mBatteryFullARGB, mBatteryMediumARGB и mBatteryLowARGB.
В ресурсах (integers) им присвоены соответствующие значения цветов 0xFF00FF00 - зеленый, 0xFFFFFF00 -красный и 0xFFFF0000 - то же красный, поэтому и работает так:
с 0% - 14% - красный, с 15% - 89% - красный, с 90% - 100% - зеленый. Пробовал ставить синий 0xFF0000FF в mBatteryMediumARGB работает как трехцветный.

В общем еще можно сделать что бы при 100% заряда индикатор погас.
 В BatteryService$Led.smali добавим проверку на 100%-й заряд, и если да, то отправим в сторону turnoff() (на :cond_64)- на отключение

 И вот тут восстановить константу


Ресурсы которые задействуются и которые можно покрутить:
 Ресурсы integers для батареи и уведомлений, параметры в десятичной форме

 Ресурсы colors для уведомления, тут уже поставлен синий


В приложенных файлах прокомментировано немного подробнее.
__________________________________________________________________________________________________________________________

Добавил то же самое на примере Android 2.3.6
Отличия - методы раскиданы по другим файлам.
Вложения
Notif_Bat_Led.zip
Модифицированные файлы с комментариями ICS 4.0.3
(19.06 КБ) Скачиваний: 453
Notif_Bat_Led_236.zip
Модифицированные файлы с комментариями Android 2.3.6
(20.61 КБ) Скачиваний: 93
Последний раз редактировалось sergpn 27 июл 2012, 11:10, всего редактировалось 1 раз.
  • 28

Аватара пользователя
sergpn
Пользователь
 
Сообщения: 101
Зарегистрирован: 26 июл 2010, 09:28
Репутация: 295

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#42 » sergpn » 31 июл 2012, 10:04

Про температуру батареи и надоедливые уведомления о перегреве

На форуме полно вопросов про это, и как это лечить.
В распакованном services несложным поиском найдена заветная цифра.
 BatteryService.smali


0x2a8 это 680 в десятичном виде. Очевидно это температура в десятых долях градуса. Проверим.
На момент проверки тело в инженерке показывало 27-28 гр.С, поэтому сделано две заготовки с 26 гр.С (0x104) и 30 гр.С (0x12C).
С 30 - тело вело себя нормально, а вот с 26 тело не догрузившись уходило в отключку. Теория про десятые доли градусов скорее верна, чем нет.
Вывод - телефоны начинают предупреждать при 68 гр.С.

П.С. Это все верно и для ICS 4.0 и для Android 2.3.6
  • 12

Аватара пользователя
sergpn
Пользователь
 
Сообщения: 101
Зарегистрирован: 26 июл 2010, 09:28
Репутация: 295

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#43 » ink08 » 03 авг 2012, 21:18

Если программы из маркета не ставятся (не совместимо с вашим устройством)

В некоторых устройствах невозможно установить программы из маркета (angry birds, google maps, whatsapp и другие), на некоторых в качестве решения предлагается изменить модель телефона в build.prop, но в ICS это уже не работает.
Решение найденное на просторах 4pda:
1. ищем файл /system/etc/permissions/handheld_core_hardware.xml
2. убираем комментарии с <feature name="..."/>
3. сохраняем и стираем данные маркета (параметры - приложения - маркет - стереть данные). возможно потребуется перезагрузка

PS: прилагаю готовый патч для примера
HTC Hero -> Samsung Galaxy Ace -> THL v9(IMEI: 35...) -> THL W3 black (2xIMEI: 35...) продан -> THL W3+ black продан -> Huawei D9500
  • 10

Аватара пользователя
ink08
Пользователь
 
Сообщения: 122
Зарегистрирован: 26 июн 2012, 15:26
Откуда: Moscow
Репутация: 372

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#44 » zeezooz » 19 авг 2012, 20:02

Номеронабиратель с русскими буквами и поиском по имени и фамилии для Android 4.0 на примере THL W2
Рисунки с кнопками в Contacts.apk в файлах res/drawable-hdpi/dial_num_*.png. Их найти было проще всего :-):.

Соответствие букв и цифр задается в коде ContactsProvider в smali/com/android/providers/contacts/BirdDialerSearch.smali в первом же методе. Код между парой .line задает одно соответствие, буквы и цифры записываются в виде их кодов, сначала код буквы, потом код соответствующей ей цифры. Для русских букв прекрасно подошел юникод (например, 0x0410 для А). Если сделать, чтоб пробел и запятая соответствовали кнопке 0, тогда после имени можно будет ввести 0 и продолжить поиск по фамилии (или после фамилии 00 и имя). Чтоб система подхватила изменения в этом файле, после замены ContactsProvider нужно переключить язык на любой другой и обратно.

На этом можно остановиться, а можно сделать еще поиск по имени и фамилии независимо от настроек отображения. Поиск проводится в ContactsProvider в smali/com/android/providers/contacts/ContactsProvider2.smali. Для поиска используется база данных и ее функция BIRD_DIALER_SEARCH_MATCH, которая возвращает индексы начала и конца найденных строк. В таблице, по которой ведется поиск, не зависимо от настроек хранится цифровое представления как "имя фамилия" так и "фамилия, имя". Так что, подправив запросы, можно сделать поиск по обоим полям.

Подсветка найденного текста находится в Contacts в smali/com/mediatek/contacts/dialpad/DialerSearchAdapter.smali. В методе highlightString проводится подсветка, там можно посмотреть, какие данные она ожидает. В методе getNameHighlight загружаются данные для highlightString. По умолчанию там просто загружается результат функции BIRD_DIALER_SEARCH_MATCH, но можно сделать и дополнительную подсветку по данным из запросов в ContactsProvider2.smali.

dialer_original.zip
Оригинальные файлы
(136.74 КБ) Скачиваний: 236
dialer.zip
Измененные файлы
(166.99 КБ) Скачиваний: 451
  • 23

Аватара пользователя
zeezooz
Новичок
 
Сообщения: 12
Зарегистрирован: 04 авг 2012, 14:40
Репутация: 39

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#45 » alexey arsenev » 22 авг 2012, 06:31

Последнее время много жалуются что кухня для 4.0 не работает.
Как без помощи кухни сделать батарейку от 1-100 в статус баре для 4.0- 4.2
Нам достаточно SystemUI, деодексировать не обязательно так как в смали ни чего делать не будем, разбираем (декомпелируем).
    1. в папку \SystemUI\res\drawable-hdpi для 4.2 в \SystemUI\res\drawable-xhdpi закидываем свою батарейку с названием
    stat_sys_battery_0.png - stat_sys_battery_100.png и stat_sys_battery_charge_anim0.png - stat_sys_battery_charge_anim100.png
    2. Берём 2 файла (stat_sys_battery.xml и stat_sys_battery_charge.xml) - прикрепил ниже (drawable.rar) и вставляем их с заменой в папку \SystemUI\drawable.
ВСЁ собираем.
Теперь из получившегося файла который находится в папке \SystemUI\build\apk можно перенести все изменения в исходный файл картинки и resources.arsc без зжатия ,stat_sys_battery.xml и stat_sys_battery_charge.xml как есть, либо в папке \SystemUI\dist\SystemUI.apk получившийся файл подписать и закинуть любым удобным способом в телефон я пользуюсь QtADB. либо в архиве batery.zip заменить мой SystemUI на свой и установить через мод рековери.

http://4pda.ru/forum/index.php?showtopic=179871&st=0 - здесь много готовых батареек, можно скачать архив и вытащить готовые файлы
stat_sys_battery_0.png-stat_sys_battery_100.png и
stat_sys_battery_charge_anim0.png - stat_sys_battery_charge_anim100.png
в свой мод.
Подходит для всех версий.
drawable.rar
(2.59 КБ) Скачиваний: 618

Для телефонов на процессоре 6575 для других редактировать updater-script
batery.zip
(784.81 КБ) Скачиваний: 507


Эксперименты проводил
Телефон N8000 , Dapeng 9230+ 4.0.3
STAR N9589 (MTK6589) 4.2.1
Последний раз редактировалось alexey arsenev 30 май 2013, 15:00, всего редактировалось 4 раз(а).
Star X18i с датчиками (e1109_v73_gq1002_ctp) продал STAR N8000 4.0.6 5' продал dapeng A9230+ продал STAR N9589 5.7 продал Elephone P8, 5,7 продал Jiayu-S3SW ребёнок играет в игрушки VIVO X5PRO
 
  • 21

Аватара пользователя
alexey arsenev

Разработчик
 
Сообщения: 1291
Зарегистрирован: 27 ноя 2011, 06:37
Откуда: Д.В. Приморский край
Репутация: 2608

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#46 » Druidblack » 29 авг 2012, 20:19

Как присваивать идентификаторы, на примере framework-res.apk.
Сами идентификаторы должны быть уникальны и не повторяться,при чём следующий по порядку(с верху в низ) должен быть на единицу больше.
Для того что бы самому не придумывать эти идентификаторы, я расскажу как это сделать автоматически. Данный метод можно применить при модификации Power Menu или если вы вручную делаете индикатор батарейки с процентами и т.д.
И так начнем.
1)Для начала подготавливаем рисунок reset.png.
2)Потом открываем framework-res.apk архиватором (WinRAR) и добавляем подготовленный ранее рисунок в res\drawable-hdpi
3)Декомпилируем файл framework-res.apk (для других файлов, нужно чтобы они были предварительно деодексированы).
4)В папке куда мы добавляли наш reset.png, будет отсутствовать. нужно еще раз скопировать reset.png в res\drawable-hdpi
5) Теперь обратно компилируем ramework-res.apk.
6) Что бы удостовериться что идентификатор присвоился, снова декомпилируем ramework-res.apk. Теперь видим, что reset.png лежит в папке res\drawable-hdpi, а в файле \res\values\public.xml по названию reset, можно найти строчку " <public type="drawable" name="reset" id="0x010805f0" />"
Таким образом мы смогли без лишних усилий присвоить новому рисунку идентификатор, который теперь можно использовать в дальнейших модификациях.
THL W3 (4.0.3)
Combo Patch Zopo Zp900 (4.0.4)
Combo Patch Zopo Zp910 (4.2.1)
 Для благодарностей
  • 20

Аватара пользователя
Druidblack

Суперкуратор
 
Сообщения: 777
Зарегистрирован: 28 авг 2011, 17:32
Откуда: Москва
Репутация: 1931

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#47 » kuz00 » 03 сен 2012, 03:35

steelunicorn писал(а) on 14 май 2012, 22:06:На большой и умный мануал не потянет, но я победил противный звук при "занято". Оказалось на удивление просто.
Разбираем Phone.apk (я брал модифицированный от kosha_ua, низкий ему поклон)
В \com\android\phone\CallNotifier.smali находим вот такую строчку const-string v5, "- need to play BUSY tone!". И ниже в строке const/16 v34, 0x5 меняем 5 на 0.
 

Кстати, почему-то в apktool Phone.apk потом не собирается, выдает ошибки. Поэтому я разбирал с помощью backsmali и потом просто подменял classes.dex в Phone.apk

Звук "занято" и "завешение вызова" я убрал, как я писал тут:A7272+\W7272 - Прошивки. И заменил отсутствие этих звуков вибрацией при помощи приложения "ProXimity Talk". Но может кто знает как заменить эти звуки вибрацией без сторонних приложений, редактированием каких либо файлов.
Может надо заменить 0x2 на какието другие значения кроме 0х0
 Как редактировал. Боролся со звуком "занято" в файле CallNotifier.smali
Xiaomi Redmi 2 [2Gb + 16Gb]
  • 1

Аватара пользователя
kuz00
Интересующийся
 
Сообщения: 29
Зарегистрирован: 03 сен 2011, 02:31
Репутация: 16

Вибра при "линия занята","вызов завершен" и пр., в звонилке.

Сообщение Ответ:#48 » Go! » 03 сен 2012, 21:50

Вибра при "линия занята", "вызов завершен" и пр.
Разбираем Phone.apk . Нас интересует класс CallNotifier.smali .
Ищем в методе onDisconnect строковую константу , содержащую
 "CALL_ENDED tone"

вот, после этих строк будем писать нужный нам код, а именно - вызовем
метод vibrate(J)V , передав ему в качестве параметра, время вибрации в миллисекундах.
Должно получиться примерно так:


const-string v5, "- need to play CALL_ENDED tone!"

move-object/from16 v0, p0

move-object v1, v5

invoke-direct {v0, v1}, Lcom/android/phone/CallNotifier;->log(Ljava/lang/String;)V

# Дальше наш код.

new-instance v0, Landroid/os/Vibrator; # Создаем

invoke-direct {v0}, Landroid/os/Vibrator;-><init>()V # объект Vibrator.

if-eqz v0, :cond_67 # Проверяем успешность предыдущей операции. На всяк случай.

const-wide/16 v1, 0x32 # Задаем время вибрации в мС . 0x32 - это 50 миллисекунд.

const-wide/16 v5, 0x0 # нада... )))

invoke-virtual {v0, v1, v5}, Landroid/os/Vibrator;->vibrate(J)V # Вызываем метод, запускающий вибру.

:cond_67



Обращаю внимание на выбор регистров (у вас они, скорей всего, будут другими) , я специльно выделил цветом,
какие регистры рекомендуется выбрать для использования в своем коде.
Можно, конечно, взять любые , но тогда есть вероятность, особенно в таких немаленьких методах, как onDisconnect, наплодить ошибок(хорошо,если сразу проявится),
если, вдруг, в них хранились данные , используемые дальше по-коду.
Внимательно относитесь к выбору регистров, а также меток (cond_..) и переходов (goto_..) :-):


В таком духе делаем и для других событий "на линии", если нужно.
Например, для "линия занята" - ищем "BUSY tone" (кто фиксил противные звуки, уже знаком) и дописываем

 свой код



Как бонус , в архиве класс CallNotifier.smali, где окончание звонка сопровождается короткой виброй, а при "линия занята" - тройная вибрация.
Последнее может быть чуть-чуть сложнее, т.к. создается еще массив с паттерном(вибр-рисунком) для вибры, но кто захочет - без труда разберется. :-):
Вложения
Vibra_Phone.rar
(31.65 КБ) Скачиваний: 219
  • 30

Аватара пользователя
Go!
Пользователь
 
Сообщения: 291
Зарегистрирован: 20 фев 2012, 17:17
Откуда: Днепропетровск
Репутация: 281

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#49 » nkz » 12 сен 2012, 07:43

Я не знаю нужно или нет, но вот подробная инструкция для отображения полных фоток "без обрезания головы" (zp100, mt6575, android 4.0.3) + замена картинки для звонящих без установленной фотографии(ну это так за компанию).

Может у кого-то будут еще идеи, как переделать звонилку. По-хорошему еще бы вот, что доделать:
-номер телефона нужно оставить на том же месте, но добавить полупрозрачную полоску(типа как рядом с надписью набор номера) сзади для лучшей видимости на светлом фоне
-собственно надпись "набор номера" поднять и разместить под самим номером
-название оператора оставить на том же месте, ну или сместить чуть-чуть ниже.

Если кто подскажет, где это можно подредактировать (может какой-нибудь конфиг-файлик), буду очень благодарен.


Уточнение, чего бы хотелось. Заранее спасибо всем, кто откликнется.
Последний раз редактировалось nkz 12 сен 2012, 08:23, всего редактировалось 1 раз.
  • 0

Аватара пользователя
nkz
Пользователь
 
Сообщения: 152
Зарегистрирован: 27 июн 2012, 19:22
Откуда: Новокузнецк
Репутация: 41

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#50 » savyol » 15 сен 2012, 00:45

Изначально ещё с 2.3.х т9 правил в HanziToPinyin.smali, вот только в 2.3.х он находился в framework, a в 4.0.3 он в ContactsProvider
Для 4-ки, на примере zp100 достаточно заменить файл HanziToPinyin.smali в ContactsProvider.apk по пути com/android/providers/contacts/HanziToPinyin
и кнопки в Contacts.apk по пути res\drawable-hdpi .
нужные файлы тут Надеюсь кому-то поможет!
Последний раз редактировалось savyol 15 сен 2012, 01:05, всего редактировалось 1 раз.
 Мои смартфоны
0610 0818
  • 20

Аватара пользователя
savyol
Гуру
 
Сообщения: 2250
Зарегистрирован: 04 сен 2011, 23:52
Откуда: г.Александров, Владимирская обл.
Репутация: 1993

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#51 » booroondook » 03 окт 2012, 14:42

Еще один способ распаковки EXT4-образов system.img и userdata.img, входящих в состав прошивки (через SP Flash Tool) телефонов на процессорах MTK6575/6577 (и возможно, 6588/6583).
В отличие от известного всем способа с SGS2_IMG.exe, этот способ работает только под Линуксом.
Но... зато есть способ обратной упаковки распакованного образа для создания кастомизированной прошивки
Для начала рекомендую прочитать информацию по этой ссылке (там же найдете и ссылку на скачивание утилит).
А теперь мои комментарии.
С распаковкой все понятно:
simg2img system.img system.ext4 - полученный файл system.ext4 будет являться "нормальным" образом EXT4-раздела.
Затем следует его примонтировать к какой-нибудь заранее созданной пустой папке файловой системы вашего Линукс-компьютера:
mount -o loop -t ext4 system.ext4 /mnt/mysystem
Теперь можно перейти в папку /mnt/mysystem и сделать там нужные изменения в будущем разделе "system" вашего телефона - например, добавить какие-то приложения, подправить конфигурационные файлы и т.д., и т.п.
Но... Перед этим настоятельно рекомендуется узнать объем, который будет занимать этот раздел в телефоне согласно разметке прошивки. Потому что если мы переборщим (например, понапихаем APK'шек на полгигабайта), то пересобранный раздел просто не поместится в отведенное ему место.
В принципе, система и так не позволит вам превысить объем - ведь папка, в которой мы работаем, на самом деле является смонтированным образом, имеющим фиксированный размер.
Но нам все равно понадобится знать этот объем для последующей сборки.
Итак, узнать размер раздела просто - это размер в байтах файла system.ext4 - т.е., образа, который мы получили после первичного конвертирования
По окончании внесения изменений нужно собрать образ для прошивки.
Делается это с помощью второй утилиты - make_ext4fs
Команда следующая:
make_ext4fs -s -l 367001600 new_system.img /mnt/mysystem
Обратите внимание - после параметра "-l" указывается размер раздела, в который будет распакован наш новый образ при перепрошивке.
В показанном примере мы указываем именно то число байт, которое узнали ранее.

P.S. запуск утилиты make_ext4fs без параметров выдает следующее:
Код: Выделить всё
make_ext4fs [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]
    [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]
    [ -L <label> ] [ -f ] [ -a <android mountpoint> ]
    [ -z | -s ] [ -t ] [ -w ] [ -c ] [ -J ]
    <filename> [<directory>]

Информации о том, что означают эти параметры, мне пока найти не удалось. Единственное, что я знаю:
-l : указание размера создаваемого раздела в килобайтах (K после числа), мегабайтах (M после числа) или байтах (без буквы)
-a: указание имени раздела, куда будет прошиваться образ (например, -a system)
-s: если не указать этот параметр, то образ получится не сжатым (как в заводском комплекте прошивки), а распакованным - и Flash Tool сочтет его неверным.
Последний раз редактировалось booroondook 09 ноя 2012, 07:43, всего редактировалось 1 раз.
WBR, booroondook
UMI X2 (MTK6589T, 2/32)
Freelander PX2 (MTK8389, 1/8)
Keneksi Zeta (MTK6589, 1/4)
  • 12

Аватара пользователя
booroondook
Специалист
 
Сообщения: 799
Зарегистрирован: 17 фев 2011, 16:46
Откуда: Москва
Репутация: 544

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#52 » Миха35 » 18 окт 2012, 11:50

Полное отображение даты на экране блокировки,шторке на андроид 4.0.,на примере TianJi GT-I9220 MTK6577.
Дополнение к инструкции от Druidblack(но на 4.0,немного не так).
Декомплелируем framework-res.apk и идем по пути framework-res.apk\res\values-ru\strings.xml

 месяца и дни дописываем полностью

 изменяем строку

 Результат
Последний раз редактировалось Миха35 20 окт 2012, 16:12, всего редактировалось 1 раз.
  • 17

Аватара пользователя
Миха35

Разработчик
 
Сообщения: 387
Зарегистрирован: 23 сен 2011, 15:23
Откуда: ×x Ruššιа x×
Репутация: 548

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#53 » Миха35 » 26 окт 2012, 12:33

Добавляем пункт инженерное меню в меню настроек телефона.(на примере i9220 MTK6575 и TianJi GT-I9220 MTK6577).
В системных приложениях есть такое приложение как EngineerMode.apk(инженерное меню).
Для входа нужно вводить определённый код,чтобы облегчить эту задачу добавим его в меню настроек телефона,в пункт Параметры разработчика.
Для этого разбираем файл Settings.apk и идем по пути Settings\res\xml\development_prefs.xml
 добавляем такой код

 для примера

Далее редактируем settings\res\values\strings.xml добавляем внизу такой код.
 код

Для русского языка редактируем settings\res\values-ru\strings.xml добавляем внизу такой код.
 код
На этом редактирование закончили,собирам обратно.В исходном Settings.apk меняем из папки build>apk> файлы
res и classes.dex обычное сжатие.
resources.arsc без сжатия.
 скриншот меню
  • 36

Аватара пользователя
Миха35

Разработчик
 
Сообщения: 387
Зарегистрирован: 23 сен 2011, 15:23
Откуда: ×x Ruššιа x×
Репутация: 548

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#54 » savyol » 31 окт 2012, 14:48

Убираем поле "Настроить профиль" из контактов (прошивка 4.0.х)

 было

Contacts.apk/smali/com/android/contacts/list/DefaultContactBrowseListFragment.smali
ищем
 

и меняем на
 

 стало
 Мои смартфоны
0610 0818
  • 16

Аватара пользователя
savyol
Гуру
 
Сообщения: 2250
Зарегистрирован: 04 сен 2011, 23:52
Откуда: г.Александров, Владимирская обл.
Репутация: 1993

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#55 » fazerg » 09 ноя 2012, 02:33

booroondook писал(а) on 03 окт 2012, 14:42:С распаковкой все понятно:
simg2img system.img system.ext4 - полученный файл system.ext4 будет являться "нормальным" образом EXT4-раздела.

Не совсем понятно. Вернее не совсем так. Скорее всего зависит от того как и чем сделан образ. :nez-nayu:
simg2img system.img system.ext4 выдает в ответ: Bad Magic :ps_ih: simg2img кажется ищет ED 26 FF 3A и не находит в том что у меня получается
НО! simg2img для ICS на MTK65ХХ и не нужна!?
если получить образы в Windows с помощью MTKdroidTools или в Linux напрямую с помощью adb:
 backup system.img userdata.img with adb

То такие образы прекрасно монтируются и редактируются в Линуксе, только надо сделать
Код: Выделить всё
chmod a +rwx -R  /mnt/mysystem
ибо у некоторых папок странные права.
  • 0

Аватара пользователя
fazerg
Пользователь
 
Сообщения: 247
Зарегистрирован: 15 сен 2012, 22:13
Репутация: 52

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#56 » alexey arsenev » 09 ноя 2012, 07:52

masson писал(а) on 03 фев 2012, 14:14:Деодексируем прошивку.
Когда процесс остановится,заходим в папку _framework и видим,что не все файлы деодексировались ,
остались файлы,для деодексации которых нужны привязки к системе(вот почему при удалении казалось не нужных приложений перестают работать другие),поэтому
Находим в AutoDEOTool текстовичёк custom_bootclasspath.txt ,в нём есть описание для какого файла какой соответствует

При деодексации 4.0.4 от 6575 затыков не было , а вот при деодексации 4.0.4 6577 ну не в какую не захотело перебрал все bootclasspath ,поискав немного в инете наткнулся на информацию ,что нужно деодексировать со всеми bootclasspath а не по отдельности ,там же были bootclasspath для 6575 при подставлении так же ни чего не деодексировалось, подумал дай разберу boot.img и посмотрю какой bootclasspath в данном телефоне ,выяснилось что на один файл больше. И так запускаем AutoDEOToolMain.bat , в блокноте выделить все bootclasspath скопировать Ctrl+C ,а в окне AutoDEOToolMain.bat правой кнопкой мыши вставить после этого жмём 6 или 4 в зависимости что деодексируем, вот только после этого у меня всё деодекировалось без ошибок.
 MTK 6575
 MTK 6577
Star X18i с датчиками (e1109_v73_gq1002_ctp) продал STAR N8000 4.0.6 5' продал dapeng A9230+ продал STAR N9589 5.7 продал Elephone P8, 5,7 продал Jiayu-S3SW ребёнок играет в игрушки VIVO X5PRO
 
  • 19

Аватара пользователя
alexey arsenev

Разработчик
 
Сообщения: 1291
Зарегистрирован: 27 ноя 2011, 06:37
Откуда: Д.В. Приморский край
Репутация: 2608

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#57 » Никита85 » 09 ноя 2012, 11:38

При модернизации прошивки LeWaOs столкнулся с проблемой просмотра кода java. в утилите jd-gui-0.3.3 и jd-gui-0.3.5 не показывало и половины классов. помогла новая версия dex2jar-0.0.9.11.
Для просмотра кода java нужно распаковать dex2jar-0.0.9.11.zip,
classes.dex из разбираемого apk перенести на файл dex2jar.bat
полученный файл classes_dex2jar.jar перенести на jd-gui.exe из распакованного архива jd-gui-0.3.5.windows.zip

просьба архивы во вложении перенести в инструменты! :-):
Вложения
dex2jar-0.0.9.11.zip
(1.61 МБ) Скачиваний: 363
jd-gui-0.3.5.windows.zip
(770.97 КБ) Скачиваний: 328
AMOI N808 LeWa Os 4 stable rus mod [20.02.2013]
AMOI N808 MIUI 4 rus mod [10.12.2012]
  • 9

Аватара пользователя
Никита85
Специалист
 
Сообщения: 951
Зарегистрирован: 21 июн 2012, 12:13
Откуда: Магнитогорск
Репутация: 246

Перепаковка Boot, Recovery средствами Андроид.

Сообщение Ответ:#58 » Go! » 30 ноя 2012, 16:26

Терпеть не могу, когда для разовой необходимости требуется установка каких-то монструозных и далеко не безглючных пакетов, исполняемых сред и т.п., когда потом весь этот апофигей девелоперской мысли приходится выскребать в и без того (бес)порядочно захламленной , хрупкой и падкой системы Окон.

Скрипты рождаются, когда ты чего-то сильно не хочешь.
Я не хотел CygWin...

 Андроид - тоже Линукс, хоть и изрядно закомуфлированный.



В архиве repack_util.zip содержатся необходимые скрипты и утилиты.
Описание:
unpack.sh - скрипт достает из телефона бут и, создав подпапку boot_unpacked/ , распаковывает его туда. Если же в папку со скриптом положить образ boot.img, то распаковываться будет уже он.
Ключ -ex - экспорт архива распакованного образа на карту памяти(для редактирования на PC, н-р).

pack.sh - упаковывает содержимое папки boot_unpacked/ в boot.img (в директории, где лежит скрипт).
Ключ -ex - импорт распакованного образа из архива boot_unpacked.tar на карте памяти (разрешения 777 импортируемому присваиваются автоматом).
Ключ -w - заливает собранный boot.img в аппарат (да, да, - прямо на работающем девайсе и без всякой анестезии) Это возможно за счет того, что ядро работает из RAM , а не ROM(NAND).

unpackR.sh и packR.sh - все тоже самое, только уже для Рекавери.

unpackbootimg , mkbootimg и mkrecoveryimg - бинарные утилиты.


Как пользоваться, на примере перепаковки boot.img.
Подготовка:
Root Explorer'oм создать, к примеру, директорию repack_boot/ в разделе /data , распаковать туда файлы из архива repack_util.zip . Выставить этим файлам (всем) разрешения на выполнение - долгий тап по файлу -> Разрешения , поставить три галки в столбике "выполнение". Положить в эту папку образ boot.img , если нужно распаковать конкретный. Если не ложить, то скрипт распаковки скопирует в эту папку образ из телефона.

Работа.
Запускаем консоль (Необходимо установить в телефон Эмулятор Терминала, Better и т.п. , запустить его),
набираем
Код: Выделить всё
 su
и нажать ввод (энтер, загнутая стрелка) - выскочит Запрос Суперпользователя - ставим галку "запомнить" и тапаем "Разрешить".

Дальше набираем
Код: Выделить всё
 cd /data/repack_boot/
и ввод - этим мы выбрали папку, в которой будем работать.

Код: Выделить всё
./unpack.sh
и ввод - запустится скрипт распаковки.
В папке /data/repack_boot появится папка boot_unpacked - это и есть распакованный образ boot.img .
Делаем с ним , что хотели.:)

После чего упаковываем обратно:
Код: Выделить всё
./pack.sh
и ввод - стартует скрипт запаковки.
boot.img в папке repack_boot - это и есть наш , уже перепакованный образ.
Если запустить pack.sh c ключом -w , то новый образ будет также прошит в телефон (изменения вступят в силу после перезагрузки).
Пример запуска с ключами:
Код: Выделить всё
./pack.sh -ex -w
и ввод - запаковка из внешнего архива на карте памяти(ключ -ex) с прошивкой в телефон(ключ -w).

 Можно запускать скрипты и из Root Explorera


+++

 В качестве бонуса.


 Для тех, кому какие-либо, в т.ч. и религиозные, убеждения не позволяют пользоваться консолью, для простоты пользования, сделал "обертки" под GScript - архив repack_util_GScript.zip .



p.s.
В телефоне должны быть рут и busybox.
Утилиты предназначены для Mt6516, Mt65x3.
Как будет на других платформах - понятия не имею.

И не забывайте делать бекап.:)


UPDT
Перезалил repack_util.zip , была мелкая ошибка в скриптах.
Вложения
repack_util_GScript.zip
Скрипты-обертки для GScript
(34.86 КБ) Скачиваний: 641
repack_util.zip
(704.83 КБ) Скачиваний: 1227
Последний раз редактировалось Go! 11 дек 2012, 12:50, всего редактировалось 2 раз(а).
  • 26

Аватара пользователя
Go!
Пользователь
 
Сообщения: 291
Зарегистрирован: 20 фев 2012, 17:17
Откуда: Днепропетровск
Репутация: 281

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#59 » michфуд » 06 дек 2012, 08:52

UPD - при работе в Win8 любой разрядности возникают проблемы с правами доступа к папкам. Связано с особенностями винды, т.е. несмотря на отключение UAC и якобы администраторской учетки, на самом деле вы не являетесь полным администратором. Сделать этом можно только правкой реестра, но при этом перестают работать метро приложения, в которых встроена проверка. Поэтому варианты такие:
1) папку со скриптами класть прямо на рабочий стол, а не на диск С например - ей по идее присвоятся нужные права
2) на папку со скриптом сменить владельца с назначением полных прав. по этой методе я разобрал и собрал свой boot на win8, единственное не шил в тело - но 90% что должно работать

И в продолжение предыдущего поста: для совсем ленивых.
Утилита для распаковки/упаковки boot.img или recovery.img под WINDOWS!

Отныне не требуется установка дополнительных сторонних программ типа Cygwin или VM с убунтой для осуществления этого по-сути несложного процесса. Подключение телефона и проведение каких-либо манипуляций с ним также не требуется (в отличии от предыдущего способа).

Все исполняемые файлы (половина *.exe от Cyqwin) лежат в папочке bin + 2 батника. Как использовать - написано в файлике readme.txt
 Немного теории и вообще о процессе создания.

Пробуйте, тестируйте.
Замечания и предложения - в личку или в беседке в аналогичной теме. :ya_hoo_oo:
 Пара скриншотов:

ps - довесок - скрипт Get_boot - забирать и заливать обратно в тело boot и recovery для 657x.
- стягивает с тела и кладет образа в эту же папку, откуда запущен скрипт.
- обратно заливает то, что лежит в этой папке и СТРОГО называется boot.img или recovery.img
- постоянн хвататься за FLASTool тоже надоело... а уж update делать и шить - через рековери - вообще муторно :-)
но как всегда - бекап никто не отменял :a_g_a:
pps:
- баг для XP пофиксен
- добавлена библиотека для архиватора 7z

updated:
- возможность перепаковки boot и рековери от других моделей (не MTK) - пока не проверено на телефоне, но пересобрано:
- от Samsung Galaxy S i9001
- от HTC Desire V sense 4
Вложения
get_boot.rar
(839 байт) Скачиваний: 1798
MTK_Boot_Recovery_Repack_Tool_for_Windows.rar
(2.48 МБ) Скачиваний: 4004
ALL_phones_Boot_Recovery_repack_util_for_WINDOWS.rar
(2.48 МБ) Скачиваний: 2911
Последний раз редактировалось michфуд 22 фев 2013, 10:51, всего редактировалось 7 раз(а).
  • 106

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

ANDROID--модернизация,улучшения и т.д. для смартфонов

Сообщение Ответ:#60 » michфуд » 10 дек 2012, 14:44

Еще один способ T9 в диалере (леново a789 - прошивка S228 andr 4.0.4)
(после установки нового файла я удалил все базы contactsprovider РУКАМИ и ребутнул телефон, после чего провел синхру с гуглом)
- надо отмететить что метод не совершенен - ищет только по 1м буквам (и некоторые контакты не находит напрочь - хз почему)
Ищем файл в ContactsProvider.apk - DataRowHandlerForStructuredName.smali
там есть вот такой метод:
Код: Выделить всё
  private char changeCharToNum(char paramChar)
  {
    if ((paramChar >= '0') && (paramChar <= '9'));
    while (true)
    {
      return paramChar;
      if (((paramChar >= 'a') && (paramChar <= 'c')) || ((paramChar >= 'A') && (paramChar <= 'C')))
        paramChar = '2';
      else if (((paramChar >= 'd') && (paramChar <= 'f')) || ((paramChar >= 'D') && (paramChar <= 'F')))
        paramChar = '3';
      else if (((paramChar >= 'g') && (paramChar <= 'i')) || ((paramChar >= 'G') && (paramChar <= 'I')))
        paramChar = '4';
      else if (((paramChar >= 'j') && (paramChar <= 'l')) || ((paramChar >= 'J') && (paramChar <= 'L')))
        paramChar = '5';
      else if (((paramChar >= 'm') && (paramChar <= 'o')) || ((paramChar >= 'M') && (paramChar <= 'O')))
        paramChar = '6';
      else if (((paramChar >= 'p') && (paramChar <= 's')) || ((paramChar >= 'P') && (paramChar <= 'S')))
        paramChar = '7';
      else if (((paramChar >= 't') && (paramChar <= 'v')) || ((paramChar >= 'T') && (paramChar <= 'V')))
        paramChar = '8';
      else if (((paramChar >= 'w') && (paramChar <= 'z')) || ((paramChar >= 'W') && (paramChar <= 'Z')))
        paramChar = '9';
      else
        paramChar = '\000';
    }
  }

как выяснилось - это и есть хитрый t9.
полностью корректно делать я не стал - т.е. чтобы и англ сохранить и кириллицу приделать, а просто заменил буквы на наши.
 выглядит примерно так в смали:

во вложении - до и после.
может это кому пригодится и на других телефонах

 в плане бонуса - если кому интересно:
Вложения
T9.rar
(9.24 КБ) Скачиваний: 150
  • 11

Аватара пользователя
michфуд

Разработчик
 
Сообщения: 3423
Зарегистрирован: 10 окт 2011, 12:55
Откуда: Н.Новгород
Репутация: 3323

Пред.След.

Вернуться в ANDROID--модернизация,улучшения и т.д

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

x

#{title}

#{text}