Xakep

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

396 posts in this topic

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

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

1 person likes this

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

bucefal82,

Деодекс?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

1 person likes this

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Пытаюсь портировать леву на А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" что стоковый, что донорский - ничего не менялось.

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

Share this post


Link to post
Share on other sites

          GoldRenard

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Все модули поставил родные, либы кодеков вернул на донорские. Включил 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

Share this post


Link to post
Share on other sites

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

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 person likes this

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

1 person likes this

Share this post


Link to post
Share on other sites

Поиск в ФС по "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
А права-то разные, хоть и добавлено на запись. Может имеет смысл пройтись по обоим бутам и выставить у своего права на модули аналогично донорскому?

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

Edited by Lens_flare
упс
1 person likes this

Share this post


Link to post
Share on other sites

M4U_L нашел в:

\system\lib\modules\m4u.ko

\system\lib\libmhaldrv.so

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

Share this post


Link to post
Share on other sites

M4U_L нашел в:

\system\lib\modules\m4u.ko

\system\lib\libmhaldrv.so

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

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

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

1 person likes this

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

DualSimRinger_rus.apk

3 people like this

Share this post


Link to post
Share on other sites

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

 

Можно ли 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, кто в него пишет, а кто использует/читает?

Share this post


Link to post
Share on other sites

Можно ли 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, кто в него пишет, а кто использует/читает?

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

Edited by Lens_flare
цитат вийти ли много, ух..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.