Xakep

Создание и редактирование прошивок Андроид - Общие вопросы.

В этой теме 391 сообщение

Здесь задаем общие вопросы - и надеемся что получим на них ответы.
 
Не забываем что Общие правила форума распространяются и на эту тему, т.ч. не курим, пиво не пьем, не материмся, и не деремся.

Код на стенах не пишем, а обрамляем тегом code и выкладываем в постах. Большой код прячем под тег spoiler.
 
Надеюсь общее обсуждение пойдет на пользу простым пользователям и форуму, в виде хороших прошивок.

1 пользователю понравился пост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот получение рута и прочие плюшки, типа deodex'еров etc?

В принципе jBART написан на Java и одинаково работает что на Windows, что на Linux...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В субботу попробую запустить на пингвине. О результатах отпишусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А есть ли у кого-нибудь опыт работы над прошивками за пределами Microsoft Windows?

компилил под линупс, портировал miui. Так к чему вопрос?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возникла проблема

Есть установленная прошивка, прошиваем патч с новыми изменённым apk -
все работает. Если же ставить прошу с новыми изменённым apk с нуля, то
эти apk не работают?

В частности касательно contacts.apk исчезают ярлыки телефона и контактов.

В чём причина и как это возможно исправить.

Заранее спасибо за ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

bucefal82,

Деодекс?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Dr.Freezer,естественно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте заново с нуля отредактировать apk, сменить apktool или smali. Мне помогало это в таких проблемах. Как вариант - заюзайте AFT, если вы его не используете.

1 пользователю понравился пост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть установленная прошивка, прошиваем патч с новыми изменённым apk - все работает. Если же ставить прошу с новыми изменённым apk с нуля, то эти apk не работают?

Android.manifest менялся в этих apk?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Android.manifest менялся в этих apk?

Нет не менялся но дело то в том что пытался подсунуть другие contacts.apk и Phone.apk

Они работают но ярлыки наглухо отсутствуют.
Потом пробовал поменять заголовок с названием пакета в Android.manifest тоже не привело к результату пришлось пилить родные контакты.
Есть вопрос как реализовать русский Т9 для SemiAosp ну и сответственно для всех портов с A789.
У меня пока не получилось этого сделать.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пытаюсь портировать леву на А390 (MT6577, 6628). Вроде все завелось кроме адекватного воспроизведения видео. Такая беда была на всех прошивках, что я запускал.

При попытке воспроизведения h264 - девайс начинает жутко лагать до полного зависания.

При попытке воспроизведения чистого mp4v - получаю искаженные цвета.

Что я вижу:

post-18-0-13701300-1365405672_thumb.png

Что должен видеть:

post-18-0-60124600-1365405662_thumb.png

D/CallStack(100): MDP#10 0x0x40956504: <_ZN7android14SurfaceTexture16convertToAuxSlotEb>+0x0x409562ed

D/CallStack(100): MDP#11 pc 0002178c /system/lib/libsurfaceflinger.so

D/CallStack(100): MDP#12 0x0x40956006: <_ZN7android14SurfaceTexture22convertToAuxSlotLockedEb>+0x0x40955fed

DCallStack(100): MDP#13 0x0x400a6dcc: <_ZNK7android5Layer6onDrawERKNS_6RegionE>+0x0x400a6d41

D/CallStack(100): MDP#14 0x0x400a7910: <_ZNK7android9LayerBase4drawERKNS_6RegionE>+0x0x400a78f9

D/CallStack(100): MDP#15 0x0x400ad7b2: <_ZN7android14SurfaceFlinger15composeSurfacesERKNS_6RegionE>+0x0x400ad6e9

D/CallStack(100): MDP#16 0x0x400add0a: <_ZN7android14SurfaceFlinger13handleRepaintEv>+0x0x400adc59

D/CallStack(100): MDP#17 0x0x400af1d4: <_ZN7android14SurfaceFlinger10threadLoopEv>+0x0x400af131

D/CallStack(100): MDP#18 0x0x4019441c: <_ZN7android6Thread11_threadLoopEPv>+0x0x401943a9

D/CallStack(100): MDP#19 pc 00023a62 /system/lib/libutils.so

D/CallStack(100): MDP#20 0x0x401026d0: <__thread_entry>+0x0x4010269c

E/MDP (100): uInBufferCnt=1

E/MDP (100): 1/1:

E/MDP (100): src_img_yuv_addr.y=0x41B9E000

E/MDP (100): src_img_yuv_addr.u=0x41BE9000

E/MDP (100): src_img_yuv_addr.v=0x41BFBC00

E/MDP (100): src_img_yuv_addr.y_buffer_size=0x0004B000

E/MDP (100): src_img_yuv_addr.u_buffer_size=0x00012C00

E/MDP (100): src_img_yuv_addr.v_buffer_size=0x00012C00

E/MDP (100):

E/MDP (100): src_img_size.w=640

E/MDP (100): src_img_size.h=480

E/MDP (100): src_img_roi.x=0

E/MDP (100): src_img_roi.y=0

E/MDP (100): src_img_roi.w=640

E/MDP (100): src_img_roi.h=480

E/MDP (100): src_color_format=12

E/MDP (100): bHWTrigger=0

E/MDP (100): bContinuous=0

E/MDP (100): bCamIn=0

E/MDP (100): bEISEn=0

E/MDP (100): u4EISCON=0x00000000

E/MDP (100): 0/1:

E/MDP (100): src_img_yuv_adapt_addr.y=0x41B9E000

E/MDP (100): src_img_yuv_adapt_addr.u=0x41BE9000

E/MDP (100): src_img_yuv_adapt_addr.v=0x41BFBC00

E/MDP (100): src_img_yuv_adapt_addr.y_buffer_size=0x0004B000

E/MDP (100): src_img_yuv_adapt_addr.u_buffer_size=0x00012C00

E/MDP (100): src_img_yuv_adapt_addr.v_buffer_size=0x00012C00

E/MDP (100): adapt_m4u_flag_bit_=0x00000000

E/MDP (100): src_img_buffer_size_total_=0x00070800

E/MDP (100): sysram_.address=0x00000000

E/MDP (100): sysram_.size=0x00000000

E/MDP (100): 0/1:

E/MDP (100): desc_src_img_yuv_addr_.y=0x00000000

E/MDP (100): desc_src_img_yuv_addr_.u=0x00000000

E/MDP (100): desc_src_img_yuv_addr_.v=0x00000000

E/MDP (100): desc_src_img_yuv_addr_.y_buffer_size=0x00000000

E/MDP (100): desc_src_img_yuv_addr_.u_buffer_size=0x00000000

E/MDP (100): desc_src_img_yuv_addr_.v_buffer_size=0x00000000

E/MDP (100): desc_sw_write_index_=0

E/M4U_L (100): m4u_query_mva failed

E/MDP (100): [MDP E](241): MdpM4u_Start(): mediatek/source/external/mhal/src/core/drv/6575/mdp/mdp_m4u.cpp@139: m4u_query_mva error:auto allocate mva failed?

D/CallStack(100): MDP#00 0x0x404119cc: <_Z20MdpDrv_DumpCallStackPKc>+0x0x404119b5

D/CallStack(100): MDP#01 0x0x40413df8: <_Z12MdpM4u_Start18M4U_MODULE_ID_ENUM16M4U_PORT_ID_ENUMmmPmPi>+0x0x40413cc5

D/CallStack(100): MDP#02 0x0x404131e6: <_Z17_MdpDrv_AdaptAddrmiPmm>+0x0x4041307d

D/CallStack(100): MDP#03 0x0x404133c2: <_Z27MdpDrv_AdaptMdpYuvAddrArraymP10MdpYuvAddriS0_PmS1_>+0x0x4041334d

D/CallStack(100): MDP#04 0x0x4041cf1e: <_ZN6RDMA_I7_ConfigEv>+0x0x4041ca99

D/CallStack(100): MDP#05 0x0x40414862: <_ZN12MDPELEMENT_I6ConfigEv>+0x0x4041484d

D/CallStack(100): MDP#06 0x0x4041e8c0: <_Z17_MdpPathTriggerHwPP12MDPELEMENT_IiP18MdpCustTriggerHw_tPv>+0x0x4041e759

D/CallStack(100): MDP#07 0x0x40420446: <_Z26MdpPathImageTransformYuv_3P30MdpPathImageTransformParameter>+0x0x40420251

D/CallStack(100): MDP#08 0x0x40425704: <_Z26MdpPipeImageTransform_FuncP30MdpPipeImageTransformParameter>+0x0x40425211

D/CallStack(100): MDP#09 0x0x4042b920: <_Z17Mt6575_mHalBitbltPv>+0x0x4042b57d

D/CallStack(100): MDP#10 0x0x4041174e: <mHalMdp_BitBlt>+0x0x40411749

D/CallStack(100): MDP#11 0x0x40956504: <_ZN7android14SurfaceTexture16convertToAuxSlotEb>+0x0x409562ed

D/CallStack(100): MDP#12 pc 0002178c /system/lib/libsurfaceflinger.so

D/CallStack(100): MDP#13 0x0x40956006: <_ZN7android14SurfaceTexture22convertToAuxSlotLockedEb>+0x0x40955fed

D/CallStack(100): MDP#14 0x0x400a6dcc: <_ZNK7android5Layer6onDrawERKNS_6RegionE>+0x0x400a6d41

D/CallStack(100): MDP#15 0x0x400a7910: <_ZNK7android9LayerBase4drawERKNS_6RegionE>+0x0x400a78f9

D/CallStack(100): MDP#16 0x0x400ad7b2: <_ZN7android14SurfaceFlinger15composeSurfacesERKNS_6RegionE>+0x0x400ad6e9

D/CallStack(100): MDP#17 0x0x400add0a: <_ZN7android14SurfaceFlinger13handleRepaintEv>+0x0x400adc59

D/CallStack(100): MDP#18 0x0x400af1d4: <_ZN7android14SurfaceFlinger10threadLoopEv>+0x0x400af131

D/CallStack(100): MDP#19 0x0x4019441c: <_ZN7android6Thread11_threadLoopEPv>+0x0x401943a9

D/CallStack(100): MDP#20 pc 00023a62 /system/lib/libutils.so

D/CallStack(100): MDP#21 0x0x401026d0: <__thread_entry>+0x0x4010269c

E/MDP (100): [MDP E](241): MdpM4u_Start(): mediatek/source/external/mhal/src/core/drv/6575/mdp/mdp_m4u.cpp@141: m4u_id=8 por_id=9 va_addr=0x41B9E000 va_size=0x0004B000 mva_addr=0x00000000 mav_end_addr=0x0004AFFF

D/CallStack(100): MDP#00 0x0x404119cc: <_Z20MdpDrv_DumpCallStackPKc>+0x0x404119b5

В общем, часто в логе красуются ошибки m4u_query_mva failed, m4u_alloc_mva failed и некоторые другие, связанные с m4u.

Что пытался делать:

Оставлял "донорский" "\system\lib\modules\vcodec_kernel_driver.ko", в итоге получал вышеописанное.

Ставил стоковый от девайса vcodec_kernel_driver - уже при попытке открытия видеоплеера девайс впадал в ребут.

Менял на стоковые от моего девайса либы libh264*, libmp4* - ничего не менялось в обоих случаях.

"\system\lib\modules\m4u.ko" что стоковый, что донорский - ничего не менялось.

Может кто сталкивался с таким?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

          GoldRenard

во первых, что бы ни было, вся папка modules должна быть от устройства, в конце концов чье ядро используется, свое или их?!

давайте тот ребут посмотрим, может там что интересное есть..

но вообще такие вещи обычно совпадают и полностью перекладываются на ядро.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ядро родное от А390. Сейчас возьму лог до ребута.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все модули поставил родные, либы кодеков вернул на донорские. Включил logcat сразу до запуска видеоплеера.

Лог со старта приложения плеера начинается с

I/ActivityManager(  255): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.mediatek.videoplayer/.MovieListActivity} from pid 525

logcat.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно.. ядерная функциональность отсутствует..

E/ActivityManager(  255): mtprof entry can not found!E/ActivityManager(  255): java.io.FileNotFoundException: /proc/mtprof/status: open failed: ENOENT (No such file or directory)E/ActivityManager(  255):     at libcore.io.IoBridge.open(IoBridge.java:448)E/ActivityManager(  255):     at java.io.FileInputStream.<init>(FileInputStream.java:78)E/ActivityManager(  255):     at java.io.FileInputStream.<init>(FileInputStream.java:105)E/ActivityManager(  255):     at com.android.server.am.ActivityRecord.mtProf(ActivityRecord.java:852)E/ActivityManager(  255):     at com.android.server.am.ActivityRecord.windowsDrawn(ActivityRecord.java:653)E/ActivityManager(  255):     at com.android.server.am.ActivityRecord$Token.windowsDrawn(ActivityRecord.java:225)E/ActivityManager(  255):     at com.android.server.wm.WindowManagerService$H.handleMessage(WindowManagerService.java:7046)E/ActivityManager(  255):     at android.os.Handler.dispatchMessage(Handler.java:99)E/ActivityManager(  255):     at android.os.Looper.loop(Looper.java:154)E/ActivityManager(  255):     at com.android.server.wm.WindowManagerService$WMThread.run(WindowManagerService.java:756)E/ActivityManager(  255): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)E/ActivityManager(  255):     at libcore.io.Posix.open(Native Method)E/ActivityManager(  255):     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)E/ActivityManager(  255):     at libcore.io.IoBridge.open(IoBridge.java:432)E/ActivityManager(  255):     ... 9 more

а теперь пробуем использовать папку lib от левы (кроме вложенных modules и egl).

1 пользователю понравился пост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а теперь пробуем использовать папку lib от левы (кроме вложенных modules и egl).

Всмысле? lib уже сейчас родной от левы, я менял лишь hw и modules на свои. egl, кстати, не трогал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всмысле? lib уже сейчас родной от левы, я менял лишь hw и modules на свои. egl, кстати, не трогал.

ок, тогда нужно смотреть в сторону зависимостей mtprof (в логе даже путь к нему есть) и M4U_L.

например поискать их по файлам

1 пользователю понравился пост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поиск в ФС по "M4U":

\proc\irq\107\M4U_device\

\proc\irq\109\M4U_device\

\proc\irq\111\M4U_device\

\proc\irq\122\M4U_device\

\sys\module\m4u\

\dev\M4U_device

\system\lib\modules\m4u.ko

Поиск в ФС по "mtprof":

\proc\mtprof\ (внутри только два текстовых файла cputime и sched).

Сейчас разобрал свой бут и бут донорского девайса. Вижу такое в init.rc:

У себя:

    # M4U    insmod /system/lib/modules/m4u.ko    mknod /dev/M4U_device c 188 0    chmod 0444 /dev/M4U_device    chown system media /dev/M4U_device
У донорского:
    # M4U    insmod /system/lib/modules/m4u.ko    mknod /dev/M4U_device c 188 0    chmod 0666 /dev/M4U_device    chown system media /dev/M4U_device
А права-то разные, хоть и добавлено на запись. Может имеет смысл пройтись по обоим бутам и выставить у своего права на модули аналогично донорскому?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поиск в ФС по "M4U":

а как насчет M4U_L? И я имел в виду поиск по бинарным файлам, в хекскоде остаются такие вещи как методы, лог таги и прочие прелести, возможно такой поиск проявит больше зависимостей.

Поиск в ФС по "mtprof":

\proc\mtprof\ (внутри только два текстовых файла cputime и sched).

угу, а status нету.. не мудрено что ругается...

Может имеет смысл пройтись по обоим бутам и выставить у своего права на модули аналогично донорскому?

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

Отредактировал Lens_flare
упс
1 пользователю понравился пост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

M4U_L нашел в:

\system\lib\modules\m4u.ko

\system\lib\libmhaldrv.so

Попробовать последний подменить на родной? Но тут тогда уж все libmhal* менять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

M4U_L нашел в:

\system\lib\modules\m4u.ko

\system\lib\libmhaldrv.so

Попробовать последний подменить на родной? Но тут тогда уж все libmhal* менять?

попробовать стоит..

вот, уже как минимум 2 варианта.

1 пользователю понравился пост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема решена, Lens_flare'у спасибо за наводки :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного не в тему, но думаю, многим может пригодиться DualSim Ringer - программка, дающая отсутствующую во многих прошивках возможность задавать для каждой SIM-карты свои мелодии звонка, СМС и т.д. Причем программа должна правильно работать с назначенными на контакт мелодиями - это еще буду проверять, есть отзывы и о правильной работе, и о неправильной.

Попалась она мне сегодня на глаза, руки сразу зачесались ее русифицировать. Написано сие чудо на Basic4Android, форма жестко задается в бинарном файле, пока сделал под исходное масштабируемое разрешение 320х480. Повожусь еще с ней, попробую подогнать под qHD и т.д.

Если сразу перевести кнопку поиска, то поиск не запускается - оставил пока так.

DualSimRinger_rus.apk

3 пользователям понравился пост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть вопросики... общие... ответьте, пожалуйста, кому не лень. :)

 

Можно ли cwm бэкап передавать другим людям?

В data есть папка nvram... Это копия(?) раздела nvram  с моего телефона, её ведь не надо передавать другим людям? Если развернуть бэкап на другом телефоне то что произойдёт? У него станет мой EMEI?

Как тогда поступить? Из data.ext4 просто удалить папку nvram? CWM после этого нормально восстановит? (файл чексуммы удалю, конечно)

Какие ещё папки с личными данными нужно удалить если передавать cwm бэкапы? (элементарные вещи типа журнала звонков, смс, адреса в браузере естесственно почищу)

 

Если можно передавать только system, то какой файл поправить чтобы не загружался на китайском языке? Т.е. чтобы после фактори ресета грузился на русском.

Пробовал в build.prop подставлять куда-то ru RU, всё равно грузит на китайском.

 

 

В каком файле настройка максимальной частоты процессора? Хочется 6577 ограничить на 750Мгц.

При разных частотах подается разное напряжение на процессор? Как добраться до этой таблички, если она есть?

 

 

Какой формат раздела logo.bin? Или подскажите программку, которая играется с этим лого.

 

 

Какой шрифт поставить вместо фаллбак, чтобы отображался русский язык везде? Слышал про некий ариал юникодовый, но нашел что попало, кракозябры рисуются.

 

 

На сколько программ, примерно, хватит 250Мб раздела data? Если не ставить триДЕсупермупер игровую чепуху.

 

На сколько процентов меньше сажается батарейка если запускаются одексированные файлы? Хотя бы в 1% выигрыш будет?

Или небольшой выигрыш будет только в мегабайтах? (apk без классов + odex < apk с классом + далвик кэш этого apk)

И быстрее ли одексы из систем запускаются чем с дата с кэша далвика?

Загадка. Apk размером 5Мб, а в нем лежит класс на 4Мб, одекс получается тоже около 4Мб. Но вот этот же apk в 5Мб с удаленным классом на 4Мб, тоже занимает 4Мб, вместо 1Мб. Почему?

 

Какой формат раздела PMT, кто в него пишет, а кто использует/читает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно ли cwm бэкап передавать другим людям?

можно.

В data есть папка nvram... Это копия(?) раздела nvram  с моего телефона, её ведь не надо передавать другим людям? Если развернуть бэкап на другом телефоне то что произойдёт? У него станет мой EMEI?

Как тогда поступить? Из data.ext4 просто удалить папку nvram? CWM после этого нормально восстановит? (файл чексуммы удалю, конечно)

Какие ещё папки с личными данными нужно удалить если передавать cwm бэкапы? (элементарные вещи типа журнала звонков, смс, адреса в браузере естесственно почищу)

да удалите data.ext4 и все.

Если можно передавать только system, то какой файл поправить чтобы не загружался на китайском языке? Т.е. чтобы после фактори ресета грузился на русском.

Пробовал в build.prop подставлять куда-то ru RU, всё равно грузит на китайском.

у вас вообще русский в прошивке есть? ru-RU вывозит..

В каком файле настройка максимальной частоты процессора?

а setCPU его знает..

При разных частотах подается разное напряжение на процессор? Как добраться до этой таблички, если она есть?

в ядре она. Вольтаж динамический

Какой формат раздела logo.bin? Или подскажите программку, которая играется с этим лого.

например http://lenovo-forums.ru/topic/1216-смена-логотипа/

Какой шрифт поставить вместо фаллбак, чтобы отображался русский язык везде? Слышал про некий ариал юникодовый, но нашел что попало, кракозябры рисуются.

шрифт тут причем? Если нет локали - хоть 300 раз его вставляйте, русский от этого не появится.

На сколько программ, примерно, хватит 250Мб раздела data? Если не ставить триДЕсупермупер игровую чепуху.

нуу 50 наверно вытянет.

На сколько процентов меньше сажается батарейка если запускаются одексированные файлы? Хотя бы в 1% выигрыш будет?

в автономности не будет выигрыша. Конечно если основное занятие вашего телефона - перезагружаться, то да :D

Или небольшой выигрыш будет только в мегабайтах? (apk без классов + odex < apk с классом + далвик кэш этого apk)

да где-то так

И быстрее ли одексы из систем запускаются чем с дата с кэша далвика?

быстрее.

Загадка. Apk размером 5Мб, а в нем лежит класс на 4Мб, одекс получается тоже около 4Мб. Но вот этот же apk в 5Мб с удаленным классом на 4Мб, тоже занимает 4Мб, вместо 1Мб. Почему?

а кто вам сказал что вы вынесли оттуда класс? ;)

Какой формат раздела PMT, кто в него пишет, а кто использует/читает?

китайцев спросите, архитектура закрытая..

Отредактировал Lens_flare
цитат вийти ли много, ух..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу