jueves, 18 de septiembre de 2014

reapareciendo

Xperia TX Desarrollo de Android


some business day away,now im back,wait for news soon hope been today

reapareciendo

Xperia TX Desarrollo de Android


some business day away,now im back,wait for news soon hope been today

viernes, 29 de noviembre de 2013

3.11.29 MiuiV5 xperia tx

Xperia TX Desarrollo de Android


update de miui uff muchos cambios,pero tiempo reducido,les dejo el update me informan


3.11.29

sábado, 23 de noviembre de 2013

DEsarrollo y portar roms miui para cualquier dispositivo

Xperia TX Desarrollo de Android



Etapa 1 . puerto inicial
Vamos a empezar con el primer paso - la elección bases.
Bajo la base voy a decir rom que podrían ser utilizados para MIUI puerto y también MIUI liberar a elegir .
Asumamos - sólo "Base" significará rom para el dispositivo con Jelybean 4.1.2/4.2.2 , como cianógeno Mod, AOKP o AOSP y sus variaciones ( no sé si es posible para usar stock rom para portar y no lo recomendaría ) , "base MIUI " significa cualquier rom MIUI que prefiera ( mi preferencia y asesoramiento - MiuiAndroid Mako [ Nexus 4 ] o MiuiAndroid maguro (Galaxy Nexus ) la liberación ) . O si en 4.1.2 utilizar un dispositivo como MiuiAndroid Crespo ( Nexus S )
En la guía voy a describir los pasos adecuados para usted con la marca " 4.1.2 o 4.2.2 con " .
Si para usted el número de versión es crucial - dejar de leer esta guía y sólo tiene que utilizar PatchROM (aunque rom se basará en Stock rom ) .
Hay tercera variante, pero es necesario un dispositivo con casi mismas especificaciones :
que sólo podría reemplazar algunos archivos en el dispositivo de rom MIUI apoyados con los archivos de su población rom.

Cuando la base elegida , comenzará a puerto :
Copia rom base de desempaquetado (para un conjunto de carpetas ) a cualquier carpeta que prefieras (vamos a llamarlo " MIUI ") , por lo general contiene:
sistema - carpeta en la que vamos a trabajar con mayor frecuencia
datos - puede contener algo necesario, como los guiones de arranque primero , archivos de configuración , etc
META- INF - contiene los certificados y firma para signcheck , updater -script ( también vamos a trabajar en él ) ( procesador de comandos de actualización -script ) - actualización binaria
boot.img , kernel y ramdisk embalarse en común.
Comenzando con el sistema :
eliminar:
aplicación
marco
medios de comunicación
fuentes
y archivar MIUI abierta y extraer esas carpetas en el sistema . No cierres archivo .
Abra la carpeta lib en el sistema para agregar Del mismo archivo comprimido :

content- types.properties
libFreqFilter.so
libaudiofp.so
libffmpeg_xm.so
libffplayer_jni.so
libimageutilites_jni.so
libjni_resource_drm.so
liblbesec.so
liblocSDK_2.5OEM.so
liblocSDK_2_5OEM.so
libmp3lame.so
libpatcher_jni.so
libphotocli.so
libshell * . así

Abrir carpeta etc en el sistema para agregar Del mismo archivo comprimido :

telocation.idf
     yellowpage.db
     secomxregistry
     pintinindex.idf
     unicode_py_index.td
     permission_config.json
     SPN -config

ir a la carpeta permisos en etc añadir :

com.nxp.mifare.xml [ NFC ]
com.google.android.media.effects.xml [ galería]
com.google.widevine.software.drm.xml [ algo también relacionado con google puede afectar mercado play]
com.google.android.maps.xml [ gmaps ]


Abra xbin carpeta en el sistema de agregar en el mismo archivo comprimido :
do [ reemplazar , ni siquiera utilizar la base uno! ]
shelld [ Importante para los servicios de shell ] también dispositivos que no cuentan con la tecnología NFC ( Near Field Communication chips ) tampoco debería tener Nfc.apk en la carpeta de aplicación! Los dispositivos que hacen uso de su propio !
Vamos a modificar build.prop a continuación , añadir :
ro.build.id = MIUI
ro.build.display.id = MIUI
ro.build.version.incremental = 2.x.x

ro.config.ringtone = MI.ogg
ro.config.notification_sound = FadeIn.ogg
ro.config.alarm_alert = GoodMorning.ogg
ro.config.sms_received_sound = FadeIn.ogg
ro.config.sms_delivered_sound = MessageComplete.ogg



puntos ro.build.version.incremental para MIUI que el puerto , así lo especifican .
En su base lo más probable es ver estas líneas
ro.config.ringtone =
ro.config.notification_sound =
ro.config.alarm_alert =
ro.config.sms_received_sound =
ro.config.sms_delivered_sound =



están llenos de tonos que sólo tienen la base , soo, sólo cambia como MIUI tienen un conjunto diferente tono .
Puerto inicial realizado , en parte del sistema, vamos a hablar de Updater -script :
cualquier versión de MIUI que el puerto debe tener esa línea :
set_perm ( 0 , 0, 06755 , " / system / xbin / shelld ");



por ejemplo, tiene ese montón de código [que es sobre todo común para las versiones CM10/10.1 ] :
set_perm_recursive ( 0 , 0, 0755 , 0644 , " / system ");
set_perm_recursive ( 0 , 2000 , 0755 , 0755 , " / system / bin" );
set_perm ( 0 , 3003 , 06755 , " / system / bin / IP ");
set_perm ( 0 , 3003 , 02750 , " / system / bin / netcfg ");
set_perm ( 0 , 3004, 02755 , " / system / bin / ping ");
set_perm ( 0 , 2000 , 06750 , " / system / bin / run -as ");
set_perm_recursive ( 1002 , 1002, 0755 , 0440 , " / system / etc / bluetooth ");
set_perm ( 0 , 0, 0755 , " / system / etc / bluetooth ");
set_perm ( 1000 , 1000, 0640 , " / system / etc / bluetooth / auto_pairing.conf ");
set_perm ( 3002 , 3002 , 0444 , " / system / etc / bluetooth / blacklist.conf ");
set_perm ( 1002 , 1002, 0440 , " / system / etc / dbus.conf ");
set_perm ( 1014, 2000 , 0550 , " / system / etc / dhcpcd / dhcpcd - ganchos ejecutar ");
set_perm ( 0 , 2000 , 0550 , " / system / etc / init.goldfish.sh ");
set_perm_recursive ( 0 , 0, 0755 , 0555 , " / system / etc / ppp" );
set_perm_recursive ( 0 , 2000 , 0755 , 0644 , " / system / vendor ");
set_perm_recursive ( 0 , 2000 , 0755 , 0755 , " / system / xbin ");
set_perm ( 0 , 0, 06755 , " / system / xbin / librank ");
set_perm ( 0 , 0, 06755 , " / system / xbin / procmem ");
set_perm ( 0 , 0, 06755 , " / system / xbin / procrank ");
set_perm ( 0 , 0, 06755 , " / system / xbin / su ");
set_perm ( 0 , 0, 06755 , " / system / xbin / tcpdump ");
set_perm_recursive ( 0 , 0, 0755 , 0644 , " / system / vendor / firmware ");
set_perm ( 0 , 2000 , 0755 , " / system / vendor / firmware ");
set_perm_recursive ( 0 , 0, 0755 , 0555 , " / system / etc / init.d ");



Así line señalé debe estar en algún lugar allí, por ejemplo :
set_perm ( 0 , 0, 06755 , " / system / xbin / librank ");
set_perm ( 0 , 0, 06755 , " / system / xbin / procmem ");
set_perm ( 0 , 0, 06755 , " / system / xbin / procrank ");
set_perm ( 0 , 0, 06755 , " / system / xbin / shelld ");
set_perm ( 0 , 0, 06755 , " / system / xbin / su ");
set_perm ( 0 , 0, 06755 , " / system / xbin / tcpdump ");


Si tiene problemas con la UB , esa línea puede ayudar:
symlink ( " / system / xbin / su", " / system / bin / su ");



pegarlo en algún lugar después

symlink ( " busybox " [ código más tarde gran ramo como " / system / xbin / [" etc]

pero antes

desmontar ( " / system ");

Finalmente el boot.img ( Diferente para 4.1.2 y 4.2.2)

Para 4.1.2 y 4.2.2 , tendrá que saber cómo desembalar y vuelva a embalar el boot.img para que puedas editar tu disco RAM .
Utilice Android cocina del dsixda encuentra aquí : http://forum.xda-developers.com/showthread.php?t=633246 . Una vez desempaquetado , usted tendrá que hacer cambios en su archivo init.rc y default.prop

Para 4.1.2 y 4.2.2 , hay dos ediciones comunes que se necesitan . Uno es la adición shelld a su clase principal ubicado al final del archivo. Otra es la edición de su default.prop . Va a ver a dónde va cuando se abre el archivo. Agregue lo siguiente a su init.rc al final con las otras clases principales :

shelld servicio / system / xbin / shelld
        clase principal

Para la segunda edición , que tendrá que modificar su default.prop . Cambie la linea ro.secure a:

ro.secure = 0

A continuación, tendrá que borrar la línea siguiente:

ro.adb.secure = 1

Eso es todo por 4.1.2 ! ! Vuelva a embalar el boot.img y su buena para ir !
Si usted es 4.2.2 tendrá una edición más en su bootclasspath init.rc .
Usted tendrá que añadir la siguiente entre dos referencias:

:/ system / framework / framework_ext.jar

^ ^ ^ ^
Añade que entre :/ system / framework / política androide y :/ system / framework / mms- común

por lo que debe tener este aspecto:

:/ system / framework / política android :/ system / framework / framework_ext.jar :/ system / framework / mms- común

Y tu 4.2.2 boot.img Hecho está !

** Recuerde que usted necesita dos ediciones en 4.1.2 y tres ediciones en 4.2.2 **
Su propia MIUI ya está listo para ser flasheado , pero sólo si el dispositivo es taaan cerca por parte de hardware con base de MIUI .
Para los que no cumplir con la regla que preparé la siguiente parte - mods marco y de la depuración y solución de problemas comunes .



Etapa 2 . Mods marco para hacer que arranque
Rom no arranca ? - Que es más probable un problema de marco , que se mantuvieron desde Nexus S / Galaxy Nexus. Pero no corras a la base de agarrar todo marco y pegarlo a la base, de lo contrario tendrá un rom base en lugar de MIUI
Mi sugerencia es puerto.
Para aquellos que son nuevos en apktool desmontaje , le sugiero leer algo así http://forum.xda-developers.com/show....php?t=1511730 o que http://forum.xda-developers . com / show....php ? t = 1752201 o google para entender los principios comunes de trabajo.
Para mods - marco res.apk usaremos Connor - apktool y guiones para la facilidad de uso : http://code.google.com/p/android-apktool/downloads/list . Sin embargo, usted necesitará el nuevo AAPT MIUI encuentra aquí http://miui.connortumbleson.com/other/aapt/ . Siempre elige últimas apktools !
Supongamos de nuevo :
desmontar algo - por lo general significa la emisión
apktool d [ nombre completo del apk o frasco ]



comando en el archivo que especifica si mas no especificada
montar algo - por lo general significa la emisión
apktool b [ apk desmontado o carpeta jar sin . apk en nombre o con " . out" al final para frascos ]



comando en el archivo especifico
mejor manera de montar es arrastrar classes.dex montado ( o resources.arsc y xmls en carpetas de descanso en caso de montaje de marco - res.apk ) desde [ archivo que ha modificado ] / build / apk al archivo original , abierto como archivo ( en las ventanas usted también tiene que echa un vistazo a una tasa de compresión para que sea el mismo que había antes de arrastrar , que impulsa a usted como método de compresión como "Normal" y "Tienda")
smali - pedazo de código en Dalvik lenguaje bytecode , forman parte de casi cualquier archivo desmontado
árbol smali / sólo " árbol " / " * smali . " - por lo general significa conjunto de archivos con el mismo nombre al principio, pero con diferentes fines ( por lo general con $ antes ), por ejemplo
RIL . * Promedios smali :

RIL.smali

RIL $ 1.smali

RIL $ RILReceiver.smali

RIL $ RILSender.smali



Vamos a empezar con los mods del marco :
Todos los marcos se encuentran en el sistema / marco .
framework.jar
Sobre todo cuestiones se producen allí.
Desmonte framework.jar del puerto MIUI está trabajando por lo que verá framework.jar.out . Ir a la carpeta smali en ella. Posteriormente todas las acciones que se producen a partir de ahí (excepto montaje ) .
En primer lugar sustituir algunos archivos de su framework.jar base ( framework.jar desmontar el puño de rom base y mover todos los archivos voy a especificar, reemplazar si se le pide ) .
Listar toda smali tuve que sustituir en framework.jar :

4.1.2 Jellybean :
android / bluetooth / HeadsetBase * . smali

android / content / res / PackageRedirectionMap * . smali

android / hardware / cámara * . smali

android / media / AudioFormat.smali

android / net / wimax / Wimax * . smali ( DISPOSITIVO SI WiMAX basada SOLAMENTE)

android / net / wifi / wifinative.smali

android / nfc ( normalmente utilizo la carpeta entera . Esto significa que su nfc corresponde con sus bibliotecas de NFC, necesita nfc.apk y com.android.nfc_extras.jar . Mi método, sin embargo . )

android / os / SystemProperties.smali

android/server/BluetoothA2dpService * . smali

android/view/Gles20 * . smali

android / view / InputMethod / inputmethodinfo * . smali

android/webkit/html5 * . smali

android / webkit / selectactionmodecallback.smali

com / android / interior / app / ActivityTrigger.smali


4.2.2 JellyBean :
android / content / res / PackageRedirectionMap * . smali

android / hardware / cámara * . smali

android / media / AudioFormat.smali

android / net / wimax / Wimax * . smali ( DISPOSITIVO SI WiMAX basada SOLAMENTE)

android / net / wifi / wifichannel.smali

android / net / wifi / wifinative.smali

android / nfc ( normalmente utilizo la carpeta entera . Esto significa que su nfc corresponde con sus bibliotecas de NFC, necesita nfc.apk y com.android.nfc_extras.jar . Mi método, sin embargo . )

android / os / SystemProperties.smali

android/view/Gles20 * . smali

android / view / InputMethod / inputmethodinfo * . smali

android/webkit/html5 * . smali

android / webkit / selectactionmodecallback.smali

com / android / interior / app / ActivityTrigger.smali

Destaqué los que podrían ser comunes para todas las fichas, no sólo para los de Qualcomm .
Pero algunos de SMALIS no están siguiendo las reglas comunes.
La excepción más extraño de eso - WebviewCore . Si reemplaza único árbol WebViewCore , Gmail , Facebook , navegador , visor de HTML y todo lo que es el uso de esta clase no funcionará. Cuál fue mi solución es reemplazar Webview * . Smali árbol , por lo que cumplió con todas las dependencias de esa clase puede trabajar.

>> Observación común acerca de parcheo SMALIS
Parches ( diffing usualmente llamado , diff , que significa "encontrar las diferencias y los elimina ") en nuestro contexto es un proceso de comparar dos archivos y la adición de contenido de una de ellas a otra y no reemplazar nada. Nuestro proceso de diff consistirá en la base -> content MIUI Además así smali modificamos podría vivir en la doble vida - para su base y para MIUI permanecieron marco . Para el arranque de diff usted debe tener la base y archivos MIUI que desea modificar , y una herramienta de diferencias ( en las ventanas - más allá de comparar , Total Commander , winmerge o Notepad + +) , mi preferencia - Meld visor de diferencias [ realmente simple y orientada visual ] , la única cosa - que se está ejecutando en el entorno de linux y no sé si hay una versión para Windows . Luego sólo tienes que abrir los archivos de la herramienta y empezar a añadir . A veces hay que añadir todas las entradas no están presentes en MIUI uno desde la base , a veces debe ser lo suficientemente inteligente como para mod única parte que necesita y nada más y también a veces para sustituir piezas de código que son realmente seguro hacerlo . Eso es todo un proceso .
>>
Ejemplo - nuestra SystemProperties.smali :
En realidad después de la apertura que se ve que está lleno de diferencias con respecto a la base:
http://minus.com/mbmfprmG4K/
ves esos bloques de color verde ? Cada uno de ellos firma una parte faltante de código se debe añadir , en Meld es sólo acerca de hacer clic en la flecha pequeña que representa ese bloque. En cuanto a las ventanas de herramientas , debería tener algo como "add all" y muchas otras cosas podrían hacerlo de un modo por lotes.
Un pequeño pedazo de la elegancia :
ese archivo es el único que descubrí que permiten sustituir la línea con grandes trozos de código, vea eso. :
http://minus.com/mdnAholnL/
es lo que ves " . línea 126 " y el bloque de código ENORME en contra de ella ? usted puede olvidarse de " . línea 126 ", y copiar el bloque en contra de ella , sin duda. Tenga en cuenta que los números de línea , etc podría cambiar , siempre verifique antes de hacer algo .
Esa línea también se convirtió en un motivo de ruptura en JellyBean , es por eso que decidimos que sería mejor simplemente reemplazarlo. Ecample le dará una pista justo sobre el proceso de revisión común.
>>
Otro archivo tiene que ser modificado de la misma manera - AssetManager.smali , que se encuentra en el contenido / res / android .
Tenga cuidado con la sustitución de cualquier cosa en él [sólo añadir , como estar delante ] , si algo salía mal , podría producir horrible Logcat nadie podía entender lo que tiene que re- rom puerto nuevo para coger un causante .
Otro parche interesante que debe realizar si usted tiene diferente a la clase de telefonía RIL .
Para determinar qué ril clase que tiene, busque la siguiente línea en su build.prop :
ro.telephony.ril_class =



Si usted no tiene este tipo, sobre todo , significa que usted está usando la clase RIL y no necesita un parche.
en mi caso fue :
ro.telephony.ril_class = LGEQualcommRIL



así que voy a describir un proceso para ello , señalando lo que es común .
Todas las clases ril ubicados en com / android / interior / la telefonía , por lo que van a la misma.
LGEqualcommRIL tener una sola smali , para copiar sólo que uno [ si su clase también tiene otro smali con el mismo nombre , por ejemplo LGEStarRIL $ 1.smali , copiarlos también] , también , a diferencia de la mayoría de las clases en CM , LGEQualcommRIL tiene una dependencia - QualcommSharedRIL , que el árbol también debe mover a esa carpeta cerca de LGE uno .
Las clases que se tienen también que la dependencia :
LGEQualcommUiccRIL
HTCQualcommRIL
SamsungQualcommUiccRIL
Otros están dervied de RIL y no tienen ninguna dependencia así. Como CM implica más y más dispositivos , para determinar qué dependencias que realmente necesita, pregunte el código fuente :
public class LGEQualcommRIL extiende QualcommSharedRIL implementa CommandsInterface



extiende significa que su dependencia tiene que añadir también a MIUI , si es " EIR " , seguir adelante y continuar portar .
Para continuar con su trabajo de clase en lugar de RIL , debe modificar PhoneFactory.smali MIUI ' ubicados en la misma carpeta en la siguiente forma :
. línea 136
    nueva instancia v8 , FCM / android / interior / telefonía / EIR ;

    invocar directa { v8 , p0 , v4 , v0 } , FCM / android / interior / telefonía / EIR ; -> <init> ( Landroid / content / Contexto ; II) V



- >
. línea 136
    nueva instancia v8 , FCM / android / interior / telefonía / LGEQualcommRIL ;

    invocar directa { v8 , p0 , v4 , v0 } , FCM / android / / telefonía / LGEQualcommRIL interna; -> <init> ( Landroid / content / Contexto ; II) V



cambia un constructor de clase a clase RIL LGEQualcommRIL . Si mis líneas incorrectas, sólo tienes que escribir RIL en busca de Phonefactory , se le mostrará exactamente 2 define con " RIL " involucrados.

Muchos dispositivos tienen ahora LTE. La siguiente es necesaria para conseguir con éxito LTE :

android / telefonía / TelephonyManager.smali
com / android / interior / telefonía / TelephonyProperties.smali

Usted debe buscar define de :
LteOnGSM

** NOTA: SI 4.2.2 LO SIGUIENTE SÓLO SE NECESITA EN FRAMEWORK.JAR Y NO NECESITA EN TELEFONÍA - common.jar **

Otro caso de aplicación de parches es android / media / AudioFormat.smali .
Copie todas las líneas que faltan en la base de MIUI , sería suficiente. He decidir no reemplazarla coz del constructor que es diferente y algún día podría convertirse en una bomba.
El caso smali más complicado, WebSettingsClassic . Se hacen contiene líneas que se deberían añadir , también las líneas que deben ser ligeramente modificados .
Vamos a tratar de hacer que el bit de proceso más fácil con estos pasos:
en primer lugar, encontrar a esos campos:
. campo mMediaPreloadEnabled privado
. campo mWebGLEnabled privado : Z



que son al comienzo de archivo , marcados como bloques verdes . Atención: a continuación hay una lista que te pregunta sobre el valor por defecto , al igual que:
. línea 91
    v2 iput - boolean , p0 , Landroid / webkit / WebSettingsClassic ; -> mMediaPreloadEnabled : Z



Ni siquiera toque ELLOS! Incluso si sabes lo que estás haciendo - se producirá un error en el arranque si ha colocado que las líneas en el archivo de MIUI .
lugar interesante aquí .. cuando vas a buscar WebGL desde el principio, que llegará a dicho bloque , marcado como azul ( incompatibles ) :
goto/16 : goto_1
. fin del método

. Método nativeIsWebGLAvailable nativo ( ) Z privado
. fin del método



mientras archivo MIUI mostrará exactamente eso :
Ir a: goto_1



y " . fin del método " después . " Usted f *** n kiddng ? " - Se puede pedir .. sí, tramposo puro. Vamos a arreglarlo hasta :
pegar sólo :
. fin del método

. Método nativeIsWebGLAvailable nativo ( ) Z privado



antes " . end_method ", pero después de " Ir a: goto_1 " , de modo que el bloque completo será al instante volvió a WHIE :
Ir a: goto_1
. fin del método

. Método nativeIsWebGLAvailable nativo ( ) Z privado
. fin del método



excepto "Ir a" , que se mostrará como se diferencia , pero a quién le importa ?
Después de buscar " WebGL " en el archivo de la base , es muy posible ver a un bloque de código que empieza con :
. Método público sincronizado declarado isWebGLAvailable ( ) Z



añadirlo sin pensar. Usted debe hacer lo mismo con los siguientes métodos :
. Método public sincronizado declarado setMediaPreloadEnabled (Z ) V
. Método public sincronizado declarado setWebGLEnabled (Z ) V



por cierto , esos métodos son llamados " emisores " - los métodos de la clase que la intención de ajustar el valor al campo de clase .
NO AÑADIR ALGO MÁS , SERÁ POSIBLE ROTURA a reiniciar de nuevo ! Usted ha sido advertido .

Puerto Framework.jar hecho!
la única cosa que hacer - ensamblarlo .
NOTA IMPORTANTE : PARA AQUELLOS DE PORTABILIDAD 4.2.2 TODA LA TELEFONÍA / RIL PORTING HAY QUE HACER EN AMBOS FRAMEWORK.JAR Y TELEFONIA - common.jar

telefonía common.jar
A diferencia de 4.1.2 , telefonía - common.jar está presente en 4.2.2 bases. Simplemente puerto sus SMALIS telefonía / ril como lo han hecho anteriormente en otros puertos con el framework.jar . DONDE SE INDIQUE TODOS EDITS EN TELEFONÍA - COMMON DEBE HACER PARA FRAMEWORK.JAR ASÍ O VICEVERSA menos que lo indique . : P

services.jar
A diferencia framework.jar , hay cosas menores que hacer. Pero también son importantes para el proceso de portabilidad .

En portar 4.1.2/4.2.2 jellybean es más trivial :

PARA COMENZAR :
com / android / servidor / input / InputManagerService * . smali

A continuación encontrará nativeCPUBoost falta . Usted tendrá algunos define en el archivo de base. Usar la búsqueda por palabra clave " cpuboost " en el archivo de base para determinar dónde están y hay que añadirlas a MIUI uno .
define serán:



. método private static nativa nativeCpuBoost ( I) V

- método de definición .
. Método cpuBoost público ( I) V



- método de bloques de código.
y nada más.
Monte la nueva services.jar.out a services.jar cuando haya terminado.

marco - res.apk
para algunos roms que tendrá que hacer algo de portabilidad a su marco - res.apk

Abra el apk , y entrar en res / xml. Utilice los siguientes archivos de base de que :

apns.xml
eri.xml ( sólo debe ser necesaria para los dispositivos CDMA )
power_profiles.xml
storage_settings.xml

Recuerde que para obtener una MIUI en pleno funcionamiento , ensayo y error es la clave con MIUI . No todos los dispositivos son las mismas .

Puede que tenga que descompilar su marco - res.apk también para conseguir pequeñas cosas fijas, como deshacerse de la barra de navegación , consiguiendo mms de trabajo, etc, especialmente con los dispositivos CDMA como no soportado oficialmente por MIUI . Esto será cubierto en la sección de ajustes de la guía .

Hecho aquellos , pero todavía no las botas o botas , pero funciona mal ? veo al lado Etapas 3 y 4 , voy a iluminar a todos los momentos de la depuración de lo que está mal y también ajustes adicionales para dispositivos específicos que enfrentan problemas con la portabilidad [ Es simplemente imposible hacer eso para cada dispositivo , por lo que hay un gran hilo siempre se puede pedir ¿qué pasa si mis consejos no ayudaron ] .


Tercera parte toca sobre todo los casos en que tuto anterior no resuelve los problemas de arranque , también los casos en que no hay confianza segunda etapa funcionará / casos en los que la gente está tratando de investigar a sí mismos , pero sobre todo no xperienced de tal ( el caso más respetable ) . Para entender lo que está pasando con su construcción sería mejor estar CM / AOSP / AOKP dev, así que lo más probable es saber dónde encontrar una respuesta. Pero si no se trata de ustedes , permítanme señalar en algunos momentos podrían ayudar .





Etapa 3 . Comprender los registros y depuración
Sí , exactamente la comprensión . La mayoría de las personas que probablemente van a foro y sólo publicar Logcat ( que podrían contener error común). Mi objetivo es mostrar que - Logcat no es cosa shuch debéis temer investigar !
En primer lugar, vamos a suponer algo :
adb - herramienta de gran alcance , en nuestro caso la tiene que tener algo para hacer un registro. Artículo sobre los desarrolladores de Android muy probablemente se describen todos los momentos sobre el poder adb : http://developer.android.com/tools/help/adb.html
Logcat / log - una de las ventajas de Android que permite depurar lo que está pasando con el sistema. por " hacer login " Voy a suponer la emisión de

adb logcat > log.txt

comando , último argumento - log.txt es un archivo de texto con el sistema de registro proporcionado a usted (puede usar cualquier nombre) .
a veces necesitamos una respuesta acerca de las cosas que están sucediendo con la banda base ( llamada radio) . En aquellos casos en que suelo pedir a tomar radiolog . Esa es la forma en que se podría producir :

adb logcat -b de radio > log.txt

lectura puede ser un dolor , como términos de la misma son demasiado específica del hardware , pero cumple de todos modos con los principios voy a poner a continuación.
debug / depuración - proceso de análisis de código que ayuda a eliminar los errores (por eso de- bug )
Algunas personas experimentan problemas con registro , más comunes son :
- equivocada base de MIUI que impide subsistema usb para empezar ( nexo de base S más probable le permite utilizar log)
controladores USB en el PC -no/corrupted/wrong
Windows más probable es sobre los nuevos subsistemas usb , etc, así que consejo es el único - probar en ubuntu (no funciona sin reglas udev )
- un tanto dañado puerto usb / incoherente
- falta de " persist.sys.usb.config = mass_storage , adb " en build.prop , específicamente " adb " en esta línea.
Nota: si su registro sólo se compone de :

sistema de enlace de / bin / sh fracasó : no existe el fichero o directorio

o algo así , usted debe contactar a un dev CM , de lo contrario , es muy probable que sepa lo que pasó ;]
Bien , cuando llegamos un tronco, que consisten en muchas muchas líneas que se Looping Si su sistema no botas. Es por eso que este tipo de situación es a veces llamado bootloop . El sistema puede repetir un tiempo eterno error que vive , por lo que de registro puede ser enorme.
Para analizar lo que está pasando allí son algunos consejos :
palabras clave:
Búsqueda en el registro que tienes algunas palabras clave , que podría ser útil en la depuración de problema de arranque ;
la mayoría de palabras clave más comunes son:
"E /" - error
"E / dalvikvm " - error de sistema posiblemente cruciales
" No existe el fichero o directorio " - lo dice todo
" no podía" - talla de Android que , muestra en su mayoría cosas defectuosas.
" fallar " / " no " - error fundamental en su mayoría
" W / " / " advertencia " - lo dice todo , pero no siempre advierten podría ser una causa de fallo de arranque
"excepción" (especialmente NullPointerException ) - que indica que algo salió mal en marco o el trabajo de la aplicación
E / etiquetas podrían ser también útil en la depuración, pero la mayoría son útiles errores y advertencias.
La mayoría de las construcciones comunes:
"no se pudo encontrar el método nativo" , la razón más común de un bootloop .
Por ejemplo :

E / dalvikvm ( 100 ) : ERROR : no se pudo encontrar el método nativo
E / dalvikvm ( 100 ): Solicitados : . Landroid/view/GLES20Canvas ; nStartTileRendering : ( IIIII ) V
E / JNIHelp ( 100 ): RegisterNatives fracasaron por ' android/view/GLES20Canvas ' , abortando

Vamos a analizar dicha construcción para extraer partes vamos a arreglar.
En primer lugar . ruta smali podría ser extraído de esa línea :

E / JNIHelp ( 100 ): RegisterNatives fracasaron por ' android/view/GLES20Canvas ' , abortando

- >

android/view/GLES20Canvas

eso es todo, smali que estamos buscando es GLES20Canvas.smali . Pero .. android / view .. dónde está? Respuesta viene de la fuente de Android, nos tomó un tiempo para analizar los marcos .. Sólo vamos a suponer : todo lo que a partir de "android " en ruta pertenece a marco , jar .
¿Qué si la ruta no contiene "android " al principio ?
Otra vez la respuesta esté en la fuente . Caminos como " org / " son pertenecen a framework.jar .
" com / android / servidor " - services.jar ( no es la misma carpeta en framework.jar pero lo más probable es que no es necesario tocarlo ) .
otro lugar que podría confundirse :
" com / android / interno" - framework.jar
" com / android / / Política / impl interna /" - android.policy.jar
para la ruta framework.jar termina en interior, que representa a la carpeta de telefonía. política / impl es la única carpeta android.policy.jar .
Otros marcos en realidad no se utilizan en el puerto , ya que contienen funcionalidad androide núcleo que es común .
Aviso sobre smali has encontrado :
podría ser no smali que busca , más probable cuando el código que apunta a la funcionalidad androide y widgets ( elementos de control) como combobox o listview, es una señal de que pensar dos veces lo que has hecho en el sistema para portarlo
puede ser que sea el árbol de smali (recuerde segunda etapa supone ? ) , a la facilidad de uso , vuelva a colocar siempre smali con su árbol, y sólo si el error se vuelve peor , pensar en un solo smali o alrededor de diff ( segunda etapa asume de nuevo)
desde

E / dalvikvm ( 100 ): Solicitados : . Landroid/view/GLES20Canvas ; nStartTileRendering : ( IIIII ) V

podríamos extraer un método que falta - nStartTileRendering . En algunos casos hay que añadir sólo ese método , y nada más .
" Android.content.res.Resources $ NotFoundException : Identificación de Recursos # XXX "
Ejemplo :

E / AndroidRuntime ( 3047 ) : *** EXCEPCIÓN FATAL EN PROCESO DE SISTEMA : WindowManagerPolicy
E / AndroidRuntime ( 3047 ) : $ android.content.res.Resources NotFoundException : Identificación de Recursos # 0x3060008
E / AndroidRuntime ( 3047 ) : en android.content.res.Resources.getValue ( Resources.j ava : 1022 )
E / AndroidRuntime ( 3047 ) : en android.content.res.MiuiResources.getValue ( MiuiRes ources.java : 56 )
E / AndroidRuntime ( 3047 ) : en miui.util.ResourceMapper.resolveReference (Recurso Mapper.java : 9 )
E / AndroidRuntime ( 3047 ) : en miui.util.HapticFeedbackUtil.updateSettings ( Haptic FeedbackUtil.java : 109 )
E / AndroidRuntime ( 3047 ) : en miui.util.HapticFeedbackUtil $ SettingsObserver.obse rve ( HapticFeedbackUtil.java : 92 )
E / AndroidRuntime ( 3047 ) : . Al miui.util.HapticFeedbackUtil <init> ( HapticFeedback Util.java : 75 )
E / AndroidRuntime ( 3047 ) : en com.android.internal.policy.impl.MiuiPhoneWindowMa nager.init ( MiuiPhoneWindowManager.java : 108 )
E / AndroidRuntime ( 3047 ) : en com.android.server.wm.WindowManagerService $ PolicyT hread.run ( WindowManagerService.java : 733 )

Base de MIUI incorrecto , sobre todo. Aparece cuando algo cambió mediante portador anterior ( MIUI ), que afecta a los recursos que usted no tendrá , error de enlace banal.
" Señal 11 ( SIGSEGV ) en 0xdeadbaad (código = 1 ) "
Espero que todos ustedes heared sobre el lenguaje C . Ese error es una forma de C " caso excepcional " (en otras palabras - excepción).
Verá si sucede :

F / libc ( 2698 ) : señal 11 ( SIGSEGV ) en 0xdeadbaad (código = 1 )
I / DEBUG ( 130 ) : ******************************************* *****
I / DEBUG ( 130 ) : Construir la huella digital : ' tmous / htc_doubleshot / doubleshot : 4.0.3/IML74K/275847.101 : usuario / release- llaves '
I / DEBUG ( 130 ) : PID : 2698 , tres veces al día : 2698 >>> <<< cigoto I / DEBUG ( 130 ) : señal 11 ( SIGSEGV ) , código 1 ( SEGV_MAPERR ) , deadbaad addr culpa
I / DEBUG ( 130 ) : r0 deadbaad r1 r2 00000001 A0000000 r3 00000000I/DEBUG ( 130 ) : 00000000 r4 r5 00000027 r6 4086fbfd r7 00000036
I / DEBUG ( 130 ) : r8 40253f04 r9 40233a7e 10 0000904c fp 00009062
I / DEBUG ( 130 ) : ip 4028b240 sp befcfa60 lr 401043c1 pc 40100adc CPSR 60000030
I / DEBUG ( 130 ) : d0 d1 2f64696f72646e61 2f746e65746e6f63
I / DEBUG ( 130 ) : d2 d3 657373412f736572 726567616e614d74
I / DEBUG ( 130 ) : d4 d5 0000d4cc0000d4b1 0000d4e80000d4cd

yaa .... Bloque de código ENORME , construir la huella digital, la señal fatal y seguimiento de la pila .... bienvenido al infierno
Una pequeña cosa : error está justo encima de ese bloque , ni siquiera tratar de analizar su contenido, lo ignoran .
Todos morimos ! 111
yaa , serie de errores " muerto " :

I / ServiceManager ( 1478 ) : El servicio de ' media.audio_flinger ' murió
I / ServiceManager ( 1478 ) : El servicio de ' media.player ' murió
I / ServiceManager ( 1478 ) : El servicio de ' media.camera ' murió
I / ServiceManager ( 1478 ) : El servicio de ' media.audio_policy ' murió

Ignorarlos , es un resultado de excepción justo encima (sin excepción C materia o java uno) , es mejor verlo en lugar de publicar " todos moriremos ! 111"
" No se puede extraer + optimizar DEX desde" / system / framework / framework.jar ' " y otros casos de la WTF
ejemplos:

D / dalvikvm ( 103 ) : DexOpt : --- COMENZAR ' framework.jar ' ( bootstrap = 1 ) ---
E / dalvikvm ( 172 ) : Duplicate definición de clase : ' Landroid / media / MediaRecorder ; '
E / dalvikvm ( 172 ) : Problemas con el artículo 2900 @ 0x17a86c compensar
E / dalvikvm ( 172 ) : Cross -item verificar de la sección tipo 0006 fracasó
E / dalvikvm ( 172 ) : ERROR: Byte de intercambio + Error en la verificación
E / dalvikvm ( 172 ) : Optimización fallado
W / dalvikvm ( 103 ) : DexOpt : --- END ' framework.jar ' --- estado = 0xff00 , fallido proceso
E / dalvikvm ( 103 ) : No se puede extraer + optimizar DEX desde " / system / framework / framework.jar '
D / dalvikvm ( 103 ) : No se puede procesar el elemento classpath ' / system / framework / framework.jar '
E / JNIHelp ( 103 ) : registro nativo no puede encontrar la clase ' android / debug / JNITest ' , abortando
05-30 14:15:15.970 : E / NetworkLocationRealOs ( 2304 ): no ID android , no puede acceder al caché del cifrado
05-30 14:15:15.970 : E / NetworkLocationRealOs ( 2304 ) : java.io.IOException : ninguna ID android , no puede acceder al caché del cifrado
1012: 07-03 03:28:21.350 : E / System ( 1538 ) : ************ El no iniciar el servicio básico
07-03 03:28:21.350 : E / System ( 1538 ) : java.lang.NullPointerException
07-03 03:28:21.350 : E / System ( 1538 ) : en com.android.server.pm.PackageManagerService.grantPermissionsLPw ( PackageManagerService.java : 4299 )
07-03 03:28:21.350 : E / System ( 1538 ) : en com.android.server.pm.PackageManagerService.updatePermissionsLPw ( PackageManagerService.java : 4247 )
07-03 03:28:21.350 : E / System ( 1538 ) : . Al com.android.server.pm.PackageManagerService <init> ( PackageManagerService.java : 1170 )
07-03 03:28:21.350 : E / System ( 1538 ) : en com.android.server.pm.PackageManagerService.main ( PackageManagerService.java : 858)
07-03 03:28:21.350 : E / System ( 1538 ) : en com.android.server.ServerThread.run ( SystemServer.java : 167 )
07-03 03:28:21.350 : I / SystemServer ( 1538 ) : Input Method Service07 -03 03:28:21.360 : W / SystemServer ( 1538 ) : **************** ******************************* 1021:
07-03 03:28:21.370 : A / SystemServer ( 1538 ) : FALLO EN EL INICIO partir Service1022 Input Manager :
07-03 03:28:21.370 : A / SystemServer ( 1538 ) : java.lang.NullPointerException1023 :
07-03 03:28:21.370 : A / SystemServer ( 1538 ) : en android.app.PendingIntent.getBroadcast ( PendingIntent.java : 293 ) 1024:
07-03 03:28:21.370 : A / SystemServer ( 1538 ) : en com.android.server.InputMethodManagerService <init> ( InputMethodManagerService.java : 548 ) . 1025 :
07-03 03:28:21.370 : A / SystemServer ( 1538 ) : en com.android.server.ServerThread.run ( SystemServer.java : 271 ) 1026:
07-03 03:28:21.400 : E / AndroidRuntime ( 1538 ) : Reporte de errores WTF1027 :
07-03 03:28:21.400 : E / AndroidRuntime ( 1538 ) : java.lang.NullPointerException1028 :
07-03 03:28:21.400 : E / AndroidRuntime ( 1538 ) : en com.android.internal.os.RuntimeInit.wtf ( RuntimeInit.java : 345 ) 1029:
07-03 03:28:21.400 : E / AndroidRuntime ( 1538 ) : en android.util.Log $ 1.onTerribleFailure ( Log.java : 103 ) 1030 :
07-03 03:28:21.400 : E / AndroidRuntime ( 1538 ) : en android.util.Log.wtf ( Log.java : 278 ) 1031 :
07-03 03:28:21.400 : E / AndroidRuntime ( 1538 ) : en com.android.server.ServerThread.reportWtf ( SystemServer.java : 77 ) 1032:
07-03 03:28:21.400 : E / AndroidRuntime ( 1538 ) : en com.android.server.ServerThread.run ( SystemServer.java : 274 )

en su mayoría probablemente se acerca manera ensamblar archivos del framework . También algunos de ellos podrían ser sólo corrompidos por accidente. A veces, estos errores causados ​​por la sustitución smali equivocado o metodología diff mal. O podría ser simplemente banales razón - no hay lugar en el sistema o caché particiones.

Inglés
La mayoría de las piezas de registro están en simple , no técnico de Inglés , el registro podría ser leída como pequeño libro con caracteres brillantes. Encuentre lo que está buscando y lo arreglas ..

El código fuente es su mejor amigo en la migración
Te recomiendo tener un código fuente de Android [de internet o en su PC local ] para algo de puerto que se destaca de las reglas que se enumeran . Por ejemplo CM fuente marcos podría encontrar aquí: https://github.com/CyanogenMod/android_frameworks_base .
Que afectan en su mayoría de los casos en los que el hardware que no está funcionando / trabajo , pero no es perfecto / de trabajo incorrecto en MIUI pero trabajaron como un encanto en la base.
Cualquier línea de registro representa una línea de código en la fuente , que uno puede buscar y depurar a partir de ahí ( como fuente es sobre todo común , que los puertos MIUI posibilidad proove ) . Cada smali representa un código fuente de Java o de su parte (- subclase que firmó por $) , cada uno de java se encuentra en la carpeta de marcos de la fuente (en su mayoría frameworks / base). Línea de registro es un mensaje, que se formó con las normas C sobre estas reglas , así que hay que evitar los cifrados o adivinar cómo podrían código representan ese mensaje. Usted puede buscar en línea adivinado en origen para localizar el archivo java, o localizar de forma manual de acuerdo a la ubicación smali y mi consejo y buscar en ella.



Última parte . Recientemente hemos portado MIUI , todo es genial y sobre todo las funciones , pero .. Soy yo el único o uno mira incompleta? Se podría hacer que su completa puerto siguiendo siguiente etapa :
Etapa 4 . Ajustes avanzados y soluciones de hardware específicos
caché enlace simbólico
¿Está Aplicaciones estrellarse en el arranque ? esto puede ser debido a que su caché no se cargará. Para solucionarlo , tendrá que hacer algunos enlaces simbólicos en su init.rc que se encuentra en su boot.img . Para empezar , desempaquetar su boot.img como lo hacía antes y navegue hasta el archivo init.rc .
Usted necesitará editar cuatro líneas enlazar simbólicamente con éxito su caché. Busque la siguiente línea :

mkdir / cache 0770 caché del sistema

el valor " 0770 " es el valor que se necesita. Puede tener un valor tal como 0,771 o algún otro . Cambie a parecerse más arriba .

A continuación, encontrará esta área :

# Crea Dalvik -cache y hacer doble comprobar las ondulaciones permanentes , a fin de hacer cumplir nuestros permisos

debería ver tres líneas por debajo de este , añada la siguiente línea al final de ese bloque de código:
enlace simbólico / data / Dalvik -cache / cache / Dalvik -cache

A continuación, encontrará esta línea , que estaba cerca al método anterior

mkdir / / resource -cache 0777 sistema de sistema de datos

al igual que antes de que su valor será diferente de " 0777 " . Cambie la línea para que parezca más arriba .

Y finalmente, la última edición. Usted debe encontrar una línea acerca de dos líneas después de su edición anterior. Se debe tener este aspecto :

chmod 0777 / data / resource -cache

editar su línea para producir el " 0777 " el valor se muestra en la línea de arriba .

Subsistema USB (signo de almacenamiento masivo / tether / depuración)
En primer lugar , el pequeño auto - comprobar:
usted tiene que estar en la vieja fuente del kernel marco Gadget USB. Aquellos que podría aclarar por hablar con cm prog. Además no estoy rechazando que podría funcionar para otros, pero en secuencia ligeramente modificada .
A partir de marco - res.apk .
Usted tiene que desmontarlo primero , pero antes de que el uso real " apktool d" , también debe emitir :

apktool si marco - res.apk

que es necesaria para decodificar correctamente los recursos internos .
Desmontar base y marcos MIUI y dejar una base que vamos a trabajar con MIUI uno y utilizaremos de base como referencia .
Después de desmontar , vamos a res / valores en ella :
Tan viejo adminículo del usb necesita antiguo camino de almacenamiento masivo que era aplicable a pan de jengibre, debemos añadir que camino hacia strings.xml .
Si sólo se desmonta ese archivo , debería ver algo así :
<string name="launchBrowserDefault"> Launch Browser? < / string>
    <string name="SetupCallDefault"> Accept Call? < / string>
< / resources >



línea exacta para agregar en el extremo cercano :
<string name="config_legacyUmsLunFile"> / sys/devices/platform/usb_mass_storage/lun0/file < / string>



de manera que obtendrá algo así :
<string name="launchBrowserDefault"> Launch Browser? < / string>
    <string name="SetupCallDefault"> Accept Call? < / string>
    <string name="config_legacyUmsLunFile"> / sys/devices/platform/usb_mass_storage/lun0/file < / string>
< / resources >



Observación:
este caso es el único aplicable a los dispositivos que sólo tienen vieja tarjeta SD clase . Mira las marco - res en su dispositivo , también puede tener diferente ruta del archivo LUN (en realidad se trata de un archivo, que recoge todos los datos SD esté montada como unidad USB ) , que siempre se debe reemplazar en cuenta mis define con la tuya para hacer el trabajo real del usb .
Los dispositivos con memoria flash (también llamados máster Erasmus Mundus o incrustados SD en flash) y SD [ o sin apoyo de SD en absoluto ] , deben ser trato en forma personalizada por desgracia no sé , consulte con su devs CM dispositivo para obtener más detalles. Y bueno , la mayoría de estos dispositivos son el nuevo gadget USB , por lo que no necesitan mi guía en absoluto
<<
Después de la adición , guardar strings.xml e ir a res / xml en el mismo marco res.That ' s donde usted también debería usar de base marco - res .
copiar desde la base hasta MIUI storage_list.xml y reemplazar cuando se le solicite . Ese archivo proporciona sólo el apoyo específico del dispositivo SD, no nexo S o lo que sea MIUI soporte utilizado .
Ensamble MIUI marco - res.apk y , atención! desmontar de nuevo. Esa acción le permite ver los recursos ID- s para cada línea exactamente de la misma manera que se utilizará en rom que viven .
Observación:
Cada dibujable recurso , string , boolean etc switcher es tratado por su ID - identificador personal. Los recursos se utilizan en otros marcos y APK para identificar algo necesario para ellos. marco - res.apk es un almacenamiento de recursos, que maneja android.content.res clases del paquete como ResourceManager .
Subsistema USB también utiliza algún recurso para proporcionar a la condición real del usuario y USB de almacenamiento masivo derecha.
<<
Asegúrese de tener la base y MIUI marco - res , a continuación, abra los dos: res / valores / public.xml .
Ahora , podríamos empezar la parte principal - services.jar mod
Después de agregar la línea " config_legacyUmsLunFile " no será su identificación en public.xml después de compilar . Es por eso que estoy parado debe desmontar reunidos marco - res de nuevo. Recuerde ambos ID- s de base y de MIUI .
También necesita ID- s desde la base y MIUI de los siguientes recursos :
" stat_sys_adb " - icono de depuración usb
" adb_active_notification_title " - mensajes cortos depuración usb
" adb_active_notification_message " - mensaje largo depuración usb
" config_oemUsbModeOverride " - usb bandera modo de anulación


Observación:
public.xml es un diccionario de recursos , ejemplo de la línea:
pública> type="drawable" name="stat_sys_adb" id="0x010804f8" />



significa el siguiente: Tipo de público = " estirable " , estirable - mera imagen para una resolución diferente , dibujado en la pantalla , el tipo de público posteriormente es un tipo de recurso. name = " stat_sys_adb " - nombre del recurso , que puede ser el nombre de archivo acual o cadena o definir etc id = " 0x010804f8 " bool - identificador de recursos hexadecimal. Nota importante : la mayoría de los usuarios de los recursos son nombre de recurso convite sin cero a la izquierda , por ejemplo, en 0x010804f8 usb SMALIS presentado como 0x10804f8 , será necesario que el hecho de buscar y reemplazar los recursos ( Yo lo llamaría proceso de juego ) , exactamente lo que vamos que ver con SMALIS carpeta USB.
<<
Carpeta USB Abrir en services.jar MIUI ( smali / com / android / server / usb) , verá SMALIS , como de costumbre. Reemplace sus contenidos con los de la carpeta de base usb services.jar ' .
Entonces vamos a adaptar los recursos : cada ID que encontraste en public.xml debería obligarse a los recursos de llamada en smali . Empecemos :
vamos a trabajar con carpetas SMALIS usb MIUI . Abrir UsbService.smali , ahora recuerdo lo de id estaba obligado a config_legacyUmsLunFile en public.xml base, por ejemplo, que era 0x01040029 , eliminan ceros a la izquierda y buscar el contenido del archivo de recursos 0x1040029 , por lo que encontrará su entrada . Vuelva a colocar esa entrada con los recursos que obtuvo de public.xml en MIUI , otra vez, sin cero inicial. Busque el mismo ID en LegacyUsbDeviceManager.smali y reemplazarlo con uno MIUI .
Si usted tiene la forma que funciona el proceso , tarea pendiente es partido otro recurso id- s que en la lista anterior (icono de depuración usb, largo y corto mensaje) . Ellos estarán en los siguientes archivos
LegacyUsbDeviceManager $ LegacyUsbHandler
UsbDeviceManager $ UsbHandler
Para JellyBean
UsbDeviceManager.smali también contiene el interruptor es necesario - config_oemUsbModeOverride , también coincide con ID- s con el marco MIUI y aquí lo tienes.

Mensaje de depuración USB no es tan necesario como el almacenamiento masivo [ coz si no se encuentra el archivo de recursos de almacenamiento masivo, usted no conseguirá subsistema usb para trabajar ] .
Después se realiza la casación , ensamble services.jar .
¡Hecho! Subsistema USB funciona ahora .
Otro momento podría ser necesario es cambiar el dispositivo de interfaz USB correa para usb0 ( como Nexus S está utilizando rndis0 lugar , y la base de todo lo que usted choosed puede tener también otra interfaz de sujeción )
Para cambiarlo, necesita un nuevo marco desmontada - res.apk (no olvidar " apktool si " ) En él vaya a res / valores / arrays.xml .
encontrar lo siguiente:
<string-array name="config_tether_usb_regexs">



en el bloque completo nexo S se verá así:
<string-array name="config_tether_usb_regexs">
        <item> rndis0 < / item>
    < / string -array >



Mira, hice hincapié en nombre de la interfaz para usted! Así que la única parte que debe hacer es simplemente reemplazarlo con el suyo. Ejemplo para usb0 :
<string-array name="config_tether_usb_regexs">
        <item> usb0 < / item>
    < / string -array >



Nombre de la interfaz se podía ver en el mismo archivo pero en rom base.
Por cierto, es lo que ves
<string-array name="config_tether_wifi_regexs">
        <item> wl0.1 < / item>
    < / string -array >



justo después de uno usb ? Esa es la interfaz para tether wifi, que también debe cambiar a la suya (una su base es necesario) y eso es todo ! Vi en alguna variante siguiente interfaz :
<string-array name="config_tether_wifi_regex[/B]">
        <item> TIAP / / d < / item>
    < / string -array >

que es para Sony [ Ericsson ] dispositivos con chip de Texas Instruments wifi, sólo ver la suya en la base , para comprobar esto . Es inteligente para utilizar meld u otra herramienta diffing para encontrar su config_tether_wifi_regex adecuada y dif vuelta.
En el mismo archivo también puede fijar niveles Autobrightness , me refiero a aquellos :
<integer-array name="config_autoBrightnessLevels">
    <integer-array name="config_autoBrightnessLcdBacklightValues">
    <integer-array name="config_autoBrightnessButtonBacklightValues">
    <integer-array name="config_autoBrightnessKeyboardBacklightValues">



MIUI no tiene retoques autobrightness así que es la única forma en que esos niveles se podrían aplicar .

Para cerrar completamente - marco res y no vuelvas más , vamos a ver otras cosas que podrías hacer con ella :
Brillo mínimo demasiado bajo
Hay un error con brillo : cuando se regula a minmal , pantalla viene negro y no regresará hasta que limpie .
La razón es banal - punto culminante de la pantalla no podía manejar el valor tan bajo ( en Nexus S es 10 ) , en primer lugar, encontrar una línea en res / valores / integers.xml :
<valor entero name="config_screenBrightnessDim"> 10 < / entero>



en la mayoría de los casos el valor " 20 " será confiable , por lo que cambiar " 10 " a " 20 ":
<valor entero name="config_screenBrightnessDim"> 20 < / entero>



Fix "Red no selecciona automáticamente "
El problema en algunos dispositivos como HTC en la arquitectura de control de calidad 7x30 , se encuentra en un pequeño interruptor [ res / values ​​/ bools.xml ] :
<bool name="skip_restoring_network_selection"> true < / bool >



simplemente cambiarlo a "false" :
<bool name="skip_restoring_network_selection"> false < / bool >
[ size = 13.333333969116211px ] y la red se van a plantear .

Fijar MMS de no enviar o recibir en dispositivos CDMA
[ size = 13.333333969116211px ] [ res / valores / bools.xml ] :

<bool name="config_mms_content_disposition_support"> true < / bool >

cambiará a "false"
<bool name="config_mms_content_disposition_support"> false < / bool >
y mms deben fijarse

Fijar la barra de navegación a aparecer después de trasladarse desde GNEXUS
[ res / valores / bools.xml ] :

<bool name="config_showNavigationBar"> true < / bool >

basta con cambiar el valor a "false"
<bool name="config_showNavigationBar"> false < / bool >

No WiMAX ?
puede que tenga que activarlo en res / valores / bools.xml :

<bool name="config_wimaxEnabled"> false < / bool >

cambiar a "true"
<bool name="config_wimaxEnabled"> true < / bool >

Fix " tema El sueño profundo en algunos dispositivos "
Problema informó usuarios Wildfire S resueltos por esa pequeña definen [ res / values ​​/ bools.xml ] :
<bool name="config_bluetooth_adapter_quick_switch"> true < / bool >



cambiarlo a "false" :
<bool name="config_bluetooth_adapter_quick_switch"> false < / bool >



y problema se resolverá .

También, podría ser interesante de visitar todos bools.xml define para ver si algo debe cambiar.


Preguntas siguientes se relacionan con varios arreglos APK :
antes de empezar lo que necesita saber que todos son apk dependerá de marco - res recursos , así que antes de comenzar con el desarme de ellos, vamos a aclarar pasos: " apktool si " cada marco con los recursos que tiene en MIUI , en la acción hay dos:

apktool si marco - res.apk
apktool si marco MIUI - res.apk

entonces cada apk podría ser desmontado como de costumbre .
Deshacerse de la pantalla de inicio MIUI
¿Usted lo mencionó ? Ya, que el asistente de configuración molesto .. Al final se le sugiere a la entrada de su cuenta de XIAOMI que algunos usuarios no pueden tenido y no va a crear . Manténgalos fuera del estrés - deshacerse de ese mago!
Déjame mostrarte cómo hacerlo:
hay 2 maneras , uno - infiltrar completamente ese mago de los ojos del usuario , en segundo lugar - le permitirá elegir un idioma (útil en las versiones en varios idiomas ) y wifi configuración , a continuación, ir derecho a la pantalla de inicio.
Momento común: desmontar Provision.apk e ir al contenido smali - com / android / provisión y elegir DefaultActivity.smali
Primer método - nombre en clave "infiltración ":
vamos a modificar el contenido del método " isProvisioned " .
Mata a todos excepto " const / 4 v1 " y "retroceso v1 " en ella , el cambio const / 4 v1 en 0x1 por lo que obtendrá algo así :
. método privado deviceIsProvisioned ( ) Z
    lugareños . 3

    . prólogo
    const / 4 v1, 0x1

    volver v1
. fin del método



en realidad , sólo estamos diciendo a asistente de configuración que el dispositivo ya ha pasado sus pasos y no los necesita más . Para que el asistente de configuración ni siquiera se notaba.
Segundo método - nombre en clave " multilang ":
que se basa en explotar , que es el siguiente: se podría pasar por alto el xiaomi representan inmediata si antes de flashear MIUI que salga de la tarjeta SIM y luego en SetupWizard no creará wifi. Asistente le enviará a " sim no encontrado" diálogo , que a su vez permitirá una para " despedir " Solicitud de cuenta.
Línea que pregunta sobre el estado de SIM es la siguiente :
invocar virtual { v1 } , Landroid / telefonía / TelephonyManager ; -> getSimState () I



entonces
mover - resultado v1
    const / 4 V2 , 0x5



alguna variable se compone actualmente de valor devuelto .
Para initialte ese valor a fallar un cheque , sólo he cambiado de valor constante para que la telefonía gerente nunca volverá : - 0x5
const / 4 V2 , - 0x5



Ahora es el momento de señalar un error al final lógico de asistente, vamos a cambiar la etiqueta ..
si ne - v1, v2, : cond_5



si no es igual a v1, v2 ( if ( v1! = v2) en forma С ) van a etiquetar cond_5 . Como dijimos , v1 no será igual v2 , por lo que irá a cond_5 , que no es un lugar que queremos ir ( coz de hardcode increíble ) . Pero hay un lugar wishable - cond_6 :
invocar directa { p0 } , FCM / android / prestación / DefaultActivity ; -> finishSetup () V



yyyyeah , derecho a terminar
por lo que estamos cambiando cond_5 a cond_6 :
si ne - v1, v2, : cond_6



eso es todo! Al final obtendrá : selección de idioma -> wifi setup -> pantalla de inicio , casi Briliant !

Ya sea que usted choosed primer o segundo método - montar apk que recibió después de todas las cosas.

Fijación del micrófono no funciona en llamadas
Desmonte Phone.apk y vaya a res / valores / bools.xml cambiar:
<bool name="send_mic_mute_to_AudioManager"> false < / bool >



- >
<bool name="send_mic_mute_to_AudioManager"> true < / bool >



Fijación rápida código pin en dispositivos xperia
Desmonte Phone.apk y vaya a res / valores / bools.xml cambiar:
<bool name="ignore_sim_network_locked_events"> false < / bool >



- >
<bool name="ignore_sim_network_locked_events"> true < / bool >



Habilitación de opciones ocultas
¿Sabía usted que usted puede activar la configuración LEDs ? O tal vez use la tecla de cámara para activar algunas funciones útiles ? Si no es así , siga el siguiente pequeño tuto .
Desmonte Settings.apk , vaya a bools.xml en res / valores .
Activación de la configuración de LED
Sería suficiente para el cambio
<bool name="has_led"> false < / bool >



- >
<bool name="has_led"> true < / bool >



Como te habrás conseguido , otras opciones ocultas también están allí , sólo voy a enumerarlos y asumirá todas las necesita sólo el reemplazo false a true para que sean activados
gestos multitouch
Aún no mencionan cómo se trabaja , pero , Xiaomi no haría algo sólo por su aparición en la configuración .

<bool name="has_multi_touch"> false < / bool >



botón MI
Mi botón en cualquier dispositivo que tenga botón de la cámara !
¿Qué es el botón MI ? Es un pellizco que permite botón dedicado para hacer algo en lugar de su simple función (por ejemplo , la expedición de aplicación de la cámara como para el botón de la leva ) . Puede ajustar cualquier aplicación en rom para ser ejecutado, cualquier cambio de switchers MIUI y también desencadenar algunas acciones como " menú" , " llama ", " palanca fuera de la pantalla " ( le permite cambiar la pantalla y se apaga, así que posiblemente sustituya botón de encendido que es sobre todo débil) y " captura de pantalla " .
cómo activarlo? - La misma :
<bool name="has_camera_key"> false < / bool >



cambiar a "true"
ajustes del dock
mera estación de muelle de diálogo Configuración .
<bool name="has_dock_settings"> false < / bool >



ajustes Trackball
para dispositivos como el Nexus One con la rueda de desplazamiento activo.
<bool name="has_track_ball"> false < / bool >



Fix " bar Negro "
Es la barra de estado de una barra de color negro y no transparente como se supone que es?
Vamos MiuiSystemUI.apk y desmontarlo .
Localice a res / valores / drawables.xml y borrar la primera línea :
<item type="drawable" name="notification_header_bg"> # FF000000 < / item>


puede variar, pero siempre contiene el color negro (# FF000000 ) . Recompile modificado systemUI .

Por último, pero no menos importante, esperemos que esta guía le ayudará a llenar hasta el último y más grande de los dispositivos de MIUI , los usuarios y los porteros de todo el mundo .
También en una nota al margen me gustaría dar las gracias a Notorious y blackwing182 por ayudarme a ponerme al día en algunos de los nuevos cambios MIUI . ¡Gracias !


link original







ah no se olviden agradecer





sasha grey



viernes, 22 de noviembre de 2013

MiuiV5 3.11.22 xperia tx

Xperia TX Desarrollo de Android

update con mejoras y errores posibles corregidos aunque hasta el momento no habian muchos detalles

log de mejoras



[Teléfono]
Fix - Algunas de las teclas del teclado podría mostrar en el lugar equivocado (11-20 )
Fijar - Al marcar distintos códigos de país , algunos fueron reconocidos como llamadas de emergencia (11-20 )
Fix - En dispositivos Hongmi , cuando se marca un número de emergencia , la opción de doble SIM no funcionaba correctamente (11-20 )

[Sistema ]
Optimización - Sistema compatible con el cambio de las fuentes del sistema ( 11-22 )
Optimización - Aumento de la exploración y la velocidad de conexión para algunos routers SSID ocultos ( 11-22 )
Fijar - Problema con sonidos adicionales en la pantalla de bloqueo ( 11-22 )
Fix - Teclado suena cuando la sincronización cuando el usuario escribe rápido ( 11-22 )
Fix - A veces el sistema sería FC ( 11-22 )
Fix - Antutu y otras aplicaciones muestran la cantidad incorrecta de carga de la batería ( 11-22 )

[ Temas ]
Nuevo - códigos de regalo ahora soportados en el Tema tienda MIUI ( 11-19 )
Optimización - Desplácese hacia arriba efecto añadido a la lista de comentarios (11-20 )
Fix - Al aplicar un tema, algunos de los iconos de aplicación no iba a cambiar con el nuevo tema ( 11-19 )
Fix - Cuando un tema tuvo una actualización, se abrirá la página de detalles temáticos locales y el registro de cambios , no se mostrará ( 11-19 )
Fix - Cuando la vista previa de un tema, cuando el usuario llega a la última página , la imagen podría saltar ( 11-19 )
[ Pantalla de bloqueo, la barra de estado y notificaciones]
Nuevo - No mostrar pantalla capturada en la opción de notificación de creación ( 11-21 )
Nuevo - Después de eliminar a la última notificación a la sombra de notificación , la sombra , se oculta automáticamente ( 11-21 )
Optimización - Barra de estado aparece cuando la carga y cuando la batería es baja ( 11-21 )
Optimización - recomendación notificaciones Xiaomi ahora se muestran los nombres de aplicaciones ( 11-21 )
Fix - Cuando no había ninguna tarjeta SIM insertada , el usuario podría no configuración de uso de datos abiertos ( 11-21 )
Fix - Cuando Notificaciones analíticas fracasaron , sombra notificación sería FC ( 11-21 )

[ Contactos ]
Optimización - Acelerado la velocidad a la que llama desde un número desconocido se comprueban ( 11-19 )
Optimización - Cuando reciba los textos de su proveedor de servicios acerca de tener un saldo bajo , el sistema le recordará que recarga ( 11-22 )
Fijar - Eliminada la confirmación de verificación de antecedentes de entrega de paquetes ( 11-19 )

[Música ]
Fix - A veces entrar en la aplicación Música de la sombra de notificación o desde el panel de control en la pantalla de inicio causaría FC ( 11-18)
Fix - A veces, después de la descarga de una canción, el icono de descarga would't vuelva gris (11-18)

[Cámara ]
Optimización - Reducción del tiempo de pre -flash
Fix - Durante la grabación, el usuario no podía deslizar para entrar Gallery ( 11-21 )
Fix - El ruido no era compatible en el modo de balance de blancos y modo automático

[ Descargas ]
Nuevo - botón Los nuevos ajustes añadió ( 11-22 )
Optimización - Nuevas Descargas icono de estilo en la barra de estado ( 11-22 )
Fijar - A veces Descargas aplicación sería FC ( 11-22 )
Fix - En el modo de edición , cuando el usuario se fue y volvió a Descargas después de seleccionar elementos, el número de elementos seleccionados sería incorrecto ( 11-22 )

[Video ]
Nuevo - Reproducción en dispositivos de LAN DLNA compatibles ( 11-20 )
Fijar - A veces la página de detalles de vídeo sería FC ( 11-19 )
Fix - A veces, la página de búsqueda sería FC ( 11-19 )
Fix - A veces buffering después de la página principal se terminó , " No se puede cargar la página " seguiría visualizar ( 11-19 )
Fix - A veces la historia espectador no se salvó ( 11-19 )



DESCARGA

usuarios nuevos,
para entrar al recovery,cuando se enciende el movil que sale el logo de sony empezar a presionar el boton de volumen+ repetidas veces hasta que el led cambie a rosado,de ahy saldra el recovery en pantalla
luego de entrar
1,si es primera vez que se usara la rom hacer full wipe data,cache y dalvik cache que esta en advance.
2 si solo es actualizar la version entonces solo es wipe cache y dalvik cache
3 luego de instalar hacer wipe cache y dalvik cache otrta vez antes e salir del recovery
4 reiniciar y espera unos minutos hasta que se estabilize el sistema. al rededor de 5 minutos
5. escribir en caso de fallos

sábado, 16 de noviembre de 2013

martes, 12 de noviembre de 2013

MiuiV5 3.11.8 XPERIA TX

Xperia TX Desarrollo de Android


YA NO MAS PARCHES
UPDATE 3.11.8
ROM

1. ENTRAR A RECOVERY
2. HACER WIPE CACHE Y DALVIK CACHE (SI ES USUARIO NUEVO ENTONCES HACER FULL WIPE DATA,CACHE Y DALVIK CACHE)
3. INSTALAR DESDE SD CARD,HACERLO 2 VECES X SEGURIDAD
4. HACER WIPE CACHE Y DALVIK CACHE NUEVAMENTE
5. REINICIAR