Vamos ver se eu adivinho: Você tem seu smartphone Android a mais de 1 ano, e ele no começo até funcionava bem, mas apesar de todo cuidado, de um tempo pra cá ele se tornou horrívelmente lento, constantes travamentos, você reseta ele e logo ele volta a ficar lento e vêm a sua cabeça: "Preciso de um celular novo". Você sabe o que está acontecendo ai, isso se chama:
OBSOLÊNCIA PROGRAMADA!
Para o google, chegou a hora de você aposentar seu telefone e comprar outro "mais rápido". Mas como isso acontece? Aparentemente existe um artificio que torna seu celular cada vez mais lento, e um destes artifícios são as terríveis atualizações constantes. Sim ... updates updates updates updates updates updates, eles não param de chegar, e eu chego a me perguntar, isso tudo é realmente necessário? Eles dizem que é por questões de segurança, mas tem bug ai fazendo aniversário, servindo de exploit pra muito vírus manjado e eles não arrumam. Entenda que a Google não ta muto preocupada com você, ela ta preocupada em fazer os fabricantes venderem aparelho.
Tudo isso pode parecer conversa fiada sem solução, mas a verdade é que eu descobri uma forma de amenizar os efeitos da obsolência programada, e para isso, precisamos fazer com que o Google pare de monitorar o seu aparelho, congelando o Google Play Store e o App do Google. Para ter melhores resultados siga os passos a baixo:
1. Resete seu celular para as configurações de fábrica
2. Faça login e configure normalmente, deixe ele atualizar todos os apps
3. Se tiver root ou for rooteavel, integre as atualizações do sistema no sistema do Android, um aplicativo bom para fazer isso é o "Link2SD"
4. Agora vem a parte principal. Vá em configurar - Apps - Guia "Todos" - Procure por App do Google e clique nele, e logo em seguida clique em "Desativar", faça o mesmo com o "Google Play Store".
5. Verifique na guia "Desativados" que agora tanto o App do Google como o Google Play Store estão desativados.
A partir deste momento, logo após você reiniciar o dispositivo, seu aparelho não irá receber mais atualizações e esse é um dos motivos pelo qual ele se torna tão lento as vezes, além é claro do App do google entupir sua memoria RAM com lixo pra deixa-lo lento. Apesar dele ter sumido da sua lista de programas, você pode esporadicamente habilitar ele lá na guia "Desativados" para instalar novos apps ou dar uma atualizada geral nos programas, mas dai fica somente ao seu controle fazer isso.
Hoje eu matei a curiosidade desta "maravilha" vinda da China. Afinal de contas, ele só recarrega pelo sol com o telefone conectado? Ele realmente recarrega a bateria somente deixando na luz solar? A resposta é mais simples do que parece, mais ou menos.
A primeira coisa que notei ao abri-lo (sem um parafuso ou cola, apenas encaixes) é que aparentemente a questão "resistente à água" é furado, aquela borracha lateral apenas engana, se essa coisa pegar uma chuva diretamente, ela vai encharcar por dentro, tenha isso em mente.
Mas indo direto ao ponto, depois de comprar, eu vi que ele já veio com 75% de carga, após testar no meu celular, pelo menos percebi que ele carrega bem usando a bateria interna, em 30 minutos meu celular passou de 80% para 100% de carga e o powerbank caiu 1 ponto, indicando aparentemente 50% de carga. Manhã seguinte, deixei ele das 7:00 da manhã até 12:00 e ele continuava mostrando 50% de carga! após várias opiniões contrárias na internet, resolvi abrir para ver qual é a real, e não foi muito animador.
Medi a bateria interna e estava medindo 3.7V, após colocar no sol medi novamente e continuava medindo 3.7V ! ou seja, não tem carga nenhuma empurrando ai, apesar de medir o painel solar e este estar medindo 2.6V, vi que a solda e os cabos eram qualidade "xing-ling" e resolvi trocar, e já subiu para 2.8V! mesmo assim não parecia estar fazendo diferença na bateria, por isso eu desconectei a bateria e percebi que os mesmos 2.8V vindos do painel solar estavam sendo enviados aos contatos da bateria, ou seja, aparentemente esse painel solar talvez se tiver um sol de rachar cana chegue a uns 3.0V , mas o grande problema é que eu deixei ele descarregar totalmente e a bateria ainda media 3.01V, ou seja, mesmo deixando o dia todo debaixo do sol, ele não foi capaz de recarregar nem 1% da bateria do meu celular.
O mais bizarro é que eu resolvi medir a resistência interna entre o painel solar e a bateria e estava dando uma impedância de 5kR! Ou seja, ainda que seja pouca energia, internamente no circuito a energia precisa passar por 5000 R para chegar na bateria, por isso que eu resolvi ligar a placa solar diretamente na bateria, e liguei em série um pequeno led que iria servir como diodo, para ver se passa corrente, o resultado foi bem óbvio, mesmo debaixo de um solão, um led simples nem sequer deu sinal de vida, pois a tensão contrária vindo da bateria é maior, mesmo ela estando em carga mínima.
O resultado final é SIM, o carregador portátil solar é mais uma merda xing-ling que promete fazer algo que não cumpre, mesmo tendo os componentes para isso, pois tecnicamente falando é pessimamente mal projetado, mas ainda assim pode ser usado como um carregador portátil comum se você resolver carrega-lo na tomada, mas não acredite que ele irá salvar sua vida, numa situação em que você só tenha o sol como fonte primária de energia.
Não é de se estranhar que a M$ está desesperadamente tentando empurrar o Windows 10 a todo custo, há várias teorias sobre isso, e todas elas remetem a M$ simplesmente lucrar mais. Enfim, não estou aqui pra discutir isso, a questão aqui é que aparentemente para forçar o uso do Windows 10 a M$ está deixando o suporte de outros sistemas a "Deus Dará" e nesse caso estou falando do Windows 8.
Pra mim o Win8.1 + o Classic Start atualmente é o melhor sistema da M$ depois do Windows XP, é uma pena que aparentemente o suporte a ele esteja praticamente largado, pelo motivo já citado acima. Os 2 problemas que mais arranca os cabelos dos usuários do Win8.1 é o MS C++ 2015 responsável pelo erro da falta da DLL api-ms-win-crt-reap-l1-1-0.dll, que geralmente ocorre depois de instalar o Office 2016 o ITunes o Photoshop etc, e também a incapacidade de instalar o dot.net 3.5 automaticamente.
Vamos pelo mais fácil, o dot net 3.5 eu encontrei um instalador simples e eficaz o dotNetFx35_W8.1_x86_x64.exe, basta baixa-lo e o instalar e tudo estará resolvido.
Agora o MS C++ 2015 responsável pelo erro da dll "api-ms-win-crt-reap-l1-1-0.dll" é um pouco mais complicado, vamos no passo a passo:
1. Desative, mesmo que temporariamente o Windows Update: Painel de Controle --> Windows Update --> Alterar Configurações --> Nunca Verificar se há atualizações
2. Baixe e rode o Windows8.1-KB2999226-x64.msu (lembrando que esse é somente para versão x64)
3. Baixe e rode o vc_redist.x64.exe (também para versão x64)
Se seu Windows é a versão 32 bits, procure os arquivos equivalentes na versão 32, apesar que só aconselho você a usar esta versão se sua CPU não suporta x64, que venhamos e convenhamos, nesse caso nem deveria rodar o Windows 8.1.
Obviamente se você veio até aqui, é porque não quer comprar o receptor original do controle sem fio XBox360, está procurando uma solução mais "alternativa", primeiramente pelo preço absurdo de um hardware simples, segundo pela dificuldade de achar, e terceiro que na maioria das vezes você não quer mais um controle que acompanha o receptor, quer apenas usar o controle que já tem.
Infelizmente a MS ao contrário da Sony, não desenvolveu os controles sem fio baseado no protocolo bluetooth, que inviabiliza tentar qualquer "gambiarra" igual é feito com os controles do PS3 e PS4, a única coisa que é possível fazer é usar a própria placa de RF do XBox360, mais especificamente a placa que fica na parte frontal, que tem o botão de liga desliga e os leds. Como as primeiras versões do XBox360 deram problema "a rodo" com o famoso 3RL, tem dessas plaquinhas aos montes por ai, com certeza se você for a alguma assistência técnica de video game, você encontrará facilmente ela, pois é justamente o módulo de RF do XBox360 FAT que iremos usar nesse projeto, eu particularmente encontrei essa placa no mercado livre por uma média de R$ 10,00 bem mais em conta do que gastar R$ 70,00 no receptor original da Microsoft.
Essa placa na verdade usa uma conexão USB para transmitir os dados do controle, a única diferença é que ela trabalha com 3.3V ao invés dos 5V de uma USB comum. Isso é facilmente corrigido usando um CI regulador de tensão 3.3V, ou um divisor de tensão usando resistores ou apenas 2 diodos comuns (1N4007) ligados em série. Porém o maior problema é que usando somente a USB, não é possível dar o comando de sincronismo entre a base e o controle para poder parear ambos. Esse comando de sincronismo é um código binário enviado em um outro pino na placa, e para enviar esse código sem o XBox360 é necessário um microcontrolador, nesse caso, o mais fácil seria usar um Arduíno.
Para resumir, temos 3 cenários:
1- Usar um XBox360 Fat funcional e puxar os 4 fios da USB da placa RF dele. É uma opção válida, você usa o próprio XBox360 para parear o controle, e como ele é funcional, você usa ele normalmente, quando quiser usar o modulo dele no seu PC, você teria que desligar ele da tomada, e conectar o cabo USB no computador. Como o controle já está pareado na placa, não é necessário mais nada para funcionar no PC
2- Usar uma placa de Arduíno temporariamente. Como é inviável usar uma placa de Arduíno exclusivamente somente para sincronizar o controle (por questão de tamanho e preço), é possível conectar uma placa de Arduíno somente para sincronizar o controle. Após parear o controle com a base, o Arduíno não é mais necessário, a não ser que você pareie esse controle em outro aparelho.
3- Utilizar um pequeno microcontrolador nesse caso o Attiny85 que é programado usando uma placa de Arduíno. Esta opção é deixar fixo um Attiny, que é um microcontrolador pequeno e barato para enviar o comando de sincronismo, a vantagem desta opção é ter sempre disponível a possibilidade de sincronizar qualquer controle, sem precisar de um XBox360.
Clique na imagem para ampliar
Basicamente vamos usar os 7 primeiros pinos do conector da placa RF. Os primeiros 4 primeiros pinos, olhando a placa de frente, e contando a partir do primeiro pino superior esquerdo, temos a conexão USB, com o diferencial de que a placa trabalha com 3.3V, como a USB trabalha com 5V vai ser necessário usar algo para baixar para 3.3V, nesse caso, foi usado 2 diodos de uso geral, ligados em série, a resistência interna somada dos diodos foi suficiente para baixar a tensão de 5 para 3.2V. Se você quer algo mais preciso, pode sem problema usar um CI regulador de tensão de 3.3V. Se você vai usar o modulo em conjunto com um XBox funcional, basta usar esses ligados na USB e pronto.
Os próximos 3 pinos, que seria a segunda fileira da esquerda pra direita, seria o pino do botão Power central, que será usado como entrada para dar o comando de sincronismo, o DATA e o CLOCK. Esses vão ser ligados ao Arduíno ou ao Attiny, para ser possível parear o controle sem ter um XBox360. Como deu pra ver, é bem simples, basta ligar 3 fios do modulo RF nas portas do Arduíno, como mostra a figura acima e programar o Arduíno com o seguinte código:
/* Arduino code to communicate with xbox 360 RF module.
* Original work by (yaywoop) / additional ideas from Alexander Martinez - modified by dilandou (www.dilandou.com, www.diru.org/wordpress)
* First sends LED initialisation code followed by LED startup animation code, then sleeps until a button press for sync command.
* RF module must be powered with 3.3V, two diodes in series with USB 5v will do. Connect the USB wires to a host computer, and the data and serial wires to Arduino.
* of course, make sure to have a common ground
*/
#include
const int sync_pin = 2; //power button repurposed for sync button (pin 5 on the module)
const int data_pin = 3; //data line (pin 6 on the module)
const int clock_pin = 4; //clock line (pin 7 on module)
int led_cmd[10] = {0,0,1,0,0,0,0,1,0,0}; //Activates/initialises the LEDs, leaving the center LED lit.
int anim_cmd[10] = {0,0,1,0,0,0,0,1,0,1}; //Makes the startup animation on the ring of light.
int sync_cmd[10] = {0,0,0,0,0,0,0,1,0,0}; //Initiates the sync process.
while (prev == digitalRead(clock_pin)){} //detects change in clock
prev = digitalRead(clock_pin);
// should be after downward edge of clock, so send bit of data now
digitalWrite(data_pin, cmd_do[i]);
while (prev == digitalRead(clock_pin)){} //detects upward edge of clock
prev = digitalRead(clock_pin);
}
digitalWrite(data_pin, HIGH);
pinMode(data_pin, INPUT);
}
void initLEDs(){
sendData(led_cmd);
delay(50);
sendData(anim_cmd);
delay(50);
}
void wakeUp(){
sync_enable = 1;
}
void sleepNow() {
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // set sleep mode
sleep_enable(); //enable sleep bit
attachInterrupt(0, wakeUp, LOW);
sleep_mode();
sleep_disable(); //disable sleep bit
detachInterrupt(0); // disables interrupt 0 on pin 2
}
void setup() {
Serial.begin(9600);
pinMode(sync_pin, INPUT);
digitalWrite(sync_pin,HIGH);
pinMode(data_pin, INPUT);
pinMode(clock_pin, INPUT);
delay(2000);
initLEDs();
}
void loop(){
Serial.println("Sleeping.");
sleepNow();
delay(200);
if(sync_enable==1) {
Serial.println("Syncing.");
sendData(sync_cmd);
sync_enable = 0;
}
}
Feito o upload do programa no Arduíno, agora é hora de ligar o módulo RF no computador, ligue primeiro o modulo RF e somente depois ligue o Arduíno, o LED central deve ficar aceso, se não ficar, algo deu errado com a comunicação do Arduíno, se você checou tudo e ainda assim o led não acende, no final do post eu tenho um macete que pode ajudar a fazer funcionar, lembrando que o Arduíno só é necessário para parear o controle, mesmo com todos os leds apagados, uma vez pareado o controle, ele funciona normal.
Ao conectar na USB, ele irá reconhecer (se não reconhecer ou ficar conectando e desconectando intermitentemente, tem algo errado), mas ao abrir o gerenciador de dispositivos, o windows vai mostrar que falta driver. O Driver que vamos usar é do próprio receptor wireless para controle XBox360, sendo assim entre na página da MS e baixe o driver conforme a versão do seu Windows:
Depois de baixar e instalar o driver, ao entrar no gerenciador de dispositivos, você vai ver que mesmo assim o receptor não está instalado, ele provavelmente vai estar como "dispositivo desconhecido" isso é devido que esse driver não foi feito específico para essa placa. Sendo assim vamos ter que forçar a instalação do driver neste dispositivo, o driver que você deverá instalar forçado está em:
C:\Program Files\Microsoft Xbox 360 Accessories
Se você não sabe como instalar um driver forçado, acompanhe esse video, ele usa o "cenário 1", sem a necessidade de ter um Arduíno, mas funciona em todos os casos:
Após o driver instalado e funcional, agora sim é hora de sincronizar o controle (se ele ainda não foi pareado), se o led central estiver aceso, basta apertar o pequeno botão da placa que seria o botão "Power" do XBox360 que os leds vão começa a rodar, dai você já sabe, basta apertar o botão sync do controle também, e pronto ! Para testar o controle, mande executar (Windows + R): joy.cpl que se tudo estiver Ok, ele irá aparecer lá.
Agora se mesmo depois de ter checado tudo e mesmo assim o LED não quer ligar, existe um macete que pode te ajudar. Alguns módulos de RF necessitam de 2 resistores Pull UP nos pinos DATA e CLOCK, se você não sabe o que é isso, não tem problema, basta ligar 2 resistores de 10K um no pino DATA e outro no pino CLOCK (pinos 6 e 7 do modulo RF), ambos os resistores ligados no +5V da USB, se esse for o seu caso (foi o meu caso ...), vai funcionar na hora.
Essa foi a plaquinha que eu montei, no meu caso eu usei um Attiny 85 permanente colado na placa. Repare que eu usei um pedaço de cabo flat que eu cortei de um cabo de HDD sata, e como eu não tinha a mão um CI regulador de 3.3V, acabei usando 2 diodos em série mesmo. Caso você também queira usar um Attiny para fazer o sincronismo eu aconselho você usar outro código:
/* Arduino code to communicate with xbox 360 RF module.
* Original work by (yaywoop) / additional ideas from Alexander Martinez - modified by dilandou (www.dilandou.com, www.diru.org/wordpress)
* First sends LED initialisation code followed by LED startup animation code, then sleeps until a button press for sync command.
* RF module must be powered with 3.3V, two diodes in series with USB 5v will do. Connect the USB wires to a host computer, and the data and serial wires to Arduino.
* of course, make sure to have a common ground
*
* Modified to the Attiny by dantavares
*/
#include
#include
const int sync_pin = 3; //power button repurposed for sync button (pin 5 on the module) do not change this !
const int data_pin = 2; //data line (pin 6 on the module)
const int clock_pin = 1; //clock line (pin 7 on module)
int led_cmd[10] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 0}; //Activates/initialises the LEDs, leaving the center LED lit.
int anim_cmd[10] = {0, 0, 1, 0, 0, 0, 0, 1, 0, 1}; //Makes the startup animation on the ring of light.
int sync_cmd[10] = {0, 0, 0, 0, 0, 0, 0, 1, 0, 0}; //Initiates the sync process.
sleep_enable(); // Sets the Sleep Enable bit in the MCUCR Register (SE BIT)
sei(); // Enable interrupts
sleep_cpu(); // sleep
cli(); // Disable interrupts
PCMSK &= ~_BV(PCINT3); // Turn off PB3 as interrupt pin
sleep_disable(); // Clear SE bit
ADCSRA |= _BV(ADEN); // ADC on
sei(); // Enable interrupts
}
ISR(PCINT0_vect) {
// This is called when the interrupt occurs, but I don't need to do anything in it
sync_enable = 1;
}
void setup() {
pinMode(sync_pin, INPUT);
digitalWrite(sync_pin, HIGH);
pinMode(data_pin, INPUT);
pinMode(clock_pin, INPUT);
delay(2000);
initLEDs();
}
void loop() {
sleep();
delay(200);
if (sync_enable == 1) {
sendData(sync_cmd);
sync_enable = 0;
}
}
Lembrando que esse código deve ser compilado usando o Arduíno e pode usar a própria placa do Arduíno UNO para programa-lo. Se você não sabe fazer isso, o google esta ai cheio de tutorial pra você aprender. No meu caso, eu setei ele como 16Mhz Internal PPL.
Caso você queira usa-lo no Raspberry Pi, para mim funcionou perfeitamente no RecalBox, a única coisa que tive que fazer é editar o arquivo de configuração e desativar o suporte ao controle PS3 e habilitar o suporte ao controle XBox360.
Já vou avisando que ao contrário de muito blog charlatão por ai, eu não vou dar aqui solução mágica para você encontrar aquele driver que não tem em lugar nenhum, porém, eu vou ensinar de uma forma mais correta de encontra-lo. É claro que se você já chegou nesse ponto, é porque já entrou no site do fabricante etc e nada deu certo.
A ideia aqui é descobrir a identificação de hardware do dispositivo para encontra-lo de forma mais precisa. Algumas pessoas abrem para olhar o CI e mal sabem que é muito mais fácil consultar isso. O que nos interessa na verdade são duas coisas o VID e o PID. O VID é a identificação do fabricante e o PID é a identificação do dispositivo. Para descobrir isso é bem simples, basta entrar no gerenciador de dispositivos (Execute devmgmt.msc) e localizar o dispositivo faltando o driver, vá em propriedades deste dispositivo, e na aba "Detalhes" mude em "Propriedades" para IDs de Hardware, você vai ver algo parecido com isso: USB\VID_0C45&PID_608F&REV_0101&MI_00
Para facilitar, veja o exemplo na figura abaixo:
Clique na imagem para ampliar
Neste exemplo, é uma webcam ligada na USB, repare que o VID é 0C45 e o PID é 608F ou simplesmente 0C45 608F. Agora basta procurar por isso, e existe um site russo com um banco muito bom de drivers, em que a consulta pode ser feita pelo VID e PID, ele é o:
Repare como fica fácil agora achar ele neste site:
Mesmo assim, o devid não é 100%, como você mesmo pode ver, eu não achei drivers para sistema de 64bits (e provavelmente não tenha mesmo) que no meu caso não funcionou. Se o bater o desespero, tente a sorte no google mesmo, mas dai a pesquisa se torna bem mais árdua, para facilitar, no google, separe o vid e pid por ":" ou seja, nesse caso 0C45:608F
Mesmo assim, não encontrei nada que funcione para mim (para 64Bits), como eu disse anteriormente, é a maneira mais fácil de encontrar, porém o drivers precisa existir primeiro.
Finalmente o assunto 'eleição' acabou, e para quem achava que estava livre de escândalos e baixarias, está redondamente enganado.
Pegue tudo que há de idiota nos norte americanos, aquele ser machista, xenofóbico, racista, mulherengo, prepotente e extremamente nacionalista, misture tudo isso mais alguns bilhões de dólares e uma vontade imensa de comprar tudo que precisar para conseguir o que quer, e o resultado disso se chama: Donald Trump.
Mas como isso foi acontecer ? contrariando todas as pesquisas, toda lógica e fatos a respeito dele ? Muito simples: Ele é tudo que um norte americano quer ser, mesmo eles não admitindo isso. Tanto que a maioria das pessoas que votaram nele, tinham vergonha do seu próprio voto, mas mesmo assim, votaram. Isso é claro, considerando aquele tipico americano de classe média que não tem ensino superior, mal sabe fritar um ovo, sustentando sua família com algum sub emprego, enquanto soma as contas para conseguir pagar o aluguel e ainda sobrar dinheiro para comprar munição para as dezenas de armas de fogo que ele possui.
Eu não to aqui para criticar o estilo de vida norte americano, mas sim criticar a decisão de um povo que não enxerga além de seu próprio nariz. Eles acham que construir muros e acabar com tratados vai lhes tornar GRANDE novamente, mas estão redondamente enganados. Eles vão prejudicar o mundo todo, inclusive o Brasil, mas não tanto quanto eles mesmos, principalmente se o tiozão lá começar a querer brincar com armas nucleares, e sim, isso é um problema iminente.
Em menos de 24Hs da notícia de sua posse a presidência dos EUA, o mundo todo está perplexo, acuado e nervoso, tentando digerir algo difícil de entender ... porquê ?? justo ele ??? pois é ! não adianta chorar, ou esperamos que ele faça uma merda tão grande que resulte em impeachment (e lá isso é bem mais fácil de ocorrer), ou temos que nos preparar para criar novas alianças, novos acordos e principalmente procurar aquilo que o Trump mais teme: Criar uma globalização mais pacífica possível, e deixar os EUA se afundar sozinho.
Peguem seus baldes de pipoca pessoal, o Show vai começar !
Recentemente adquiri um Blu Studio C HD rodando o Android 5.1, muito bom aparelho porem com um problema irritante: Reinicia sozinho aleatoriamente.
Com muita pesquisa a respeito, descobri que esse não é um problema do aparelho em si (hardware) mas sim um sério bug de vazamento de memória do Android 5 (lolipop) que faz com que aplicativos recém fechados não liberem a memória RAM, com o tempo a memória estoura e há um Kernel Panic, fazendo o dispositivo reiniciar.
Problema 1:
Teoricamente primeiro o dispositivo precisa ter acesso ROOT, mas isso é apenas a ponta do iceberg, pois a solução para isso seria utilizar uma correção via Xposed, que para quem não conhece, é uma biblioteca que permite fazer coisas mais a fundo que o ROOT em si, modificando o comportamento de bibliotecas do sistema, sem alterar os arquivos originais, tudo em nível de memória.
Problema 2:
A partir do Android 5, há uma proteção que não permite a instalação do Xposed, mesmo tendo root, a instalação deste sdk só é possível via menu de recovery.
Problema 3:
O menu de recovery (aquele que permite voltar a configuração original de fábrica, caso seu sistema de pau) original dos dispositivos não permite que instale pacotes não devidamente assinados pelo fabricante, no meu caso a BLU.
O Google além de liberar um sistema com um problema gravíssimo, ainda não mede esforços para bloquear qualquer tentativa de modificação, que permitira corrigir bugs.
Resolvendo os problemas:
Antes de começar, já vou avisando que os procedimentos descritos abaixo são de dificuldade moderada, exigindo um certo conhecimento e risco. Ou seja se:
Seu celular brickar
Seu celular morrer
Seu celular derreter
Seu celular for possuído por um demônio
A Skynet acordar e haver uma gerra nuclear
O Faustão fizer um firme pornô gay
A Sacha revelar que é hermafrodita
A Claudia leite se casar com a Ivete Sangalo
NÃO É PROBLEMA MEU !
Primeiro de tudo, temos que fazer o root do dispositivo, ou seja, se ele já for, pode pular esta parte. Uma forma fácil de fazer o root, que funcionou para mim é usar o Kingo Root:
Ele vai pedir um destino para o backup da sua revovery, escolha o Cartão SD. Depois de feito o Backup, copie esse arquivo no seu computador, ele deve estar na pasta:
Extraia a pasta compactada do MTK Extractor em algum lugar do seu computador, e renomeie ela como "MTK Extractor Stock" copie o arquivo de backup do seu recovery (que você fez através do Flashify) na nesta pasta, e renomeie este arquivo para boot.img.
Rode o MTK Extractor.exe como administrador, Clique no botão BOOT e em seguida UNPACK BOOT.IMG:
Clique na imagem para ampliar
Feche-o e volte na pasta do MTK Extractor, e você verá que ele extraiu os dados do arquivo recovery do backup que você fez.
Descompacte novamente o arquivo do MTK Extractor, e desta vez renomeie sua pasta como "MTK Extractor Custom", você terá duas pastas do MTK Extractor. Agora vamos precisar do arquivo img do TWRP, eu aconselho que você consiga algum que seja do mesmo chipset do seu celular, no meu caso, o BLU STUDIO C HD é um MT6580, e eu usei este aqui:
Você consegue descobrir isso facilmente pesquisando as especificações técnicas do seu dispositivo, ou usando o Mtk Droid Tool. Se você não conseguiu descobrir ou não achou um correspondente ao seu celular, tente a sorte com este mesmo, no máximo que pode acontecer é não funcionar, que em geral não bricka o seu celular, apenas não entra ou trava no menu de recovery.
Descompacte o arquivo img do TWRP na pasta "MTK Extractor Custom", e novamente renomeie este arquivo como boot.img, rode o MTK Extractor.exe como administrador, clique em BOOT e depois UNPACK BOOT.IMG da mesma forma como você fez antes, feche-o.
Agora é o pulo do gato ! Volte na pasta "MTK Extractor Stock" e copie APENAS o arquivo kernel desta pasta na pasta "MTK Extractor custom", você vai substituir este arquivo por um outro que tinha nesta pasta. Depois que você substituiu o arquivo, rode novamente o MTK Extractor.exe da pasta "MTK Extractor Custom" como administrador, vá em BOOT só que desta vez clique em REPACK BOOT.IMG, ele pode dar um erro, clique em "continuar" e feche-o.
Volte na pasta "MTK Extractor custom" e agora terá um arquivo chamado boot-new.img, esta é a imagem do seu menu recovery do TWRP (ou outro), copie este arquivo no cartão SD do seu celular.
Volte no seu celular, rode novamente o Flashify, vá em "Recovery Image", selecione "from file" e selecione o arquivo que você acabou de criar e copiar no cartão SD e mande flashar:
Depois de flashado, ele vai sugerir reiniciar o dispositivo, ao reiniciar, você já pode segurar as teclas especificas do seu aparelho para entrar no menu de recovery, e testar para ver se deu certo, se você não sabe que teclas são essas, procure saber e testar antes de fazer todo este procedimento, pois senão você não saberá se deu certo ou não.
Caso não funcione, não se desespere, isso normalmente não bricka o aparelho, se travou tire a bateria, religue o aparelho, volte no Flashify, vá em RESTORE/RECOVERY, e volte a recovery original do seu aparelho. Neste caso você pode tentar outros arquivos de custom recovery, a versão free do Flashify só permite fazer 3 flashs por dia, mas você pode burlar isso adiantando a data do seu celular.
Agora está na hora de resolver o problema 2
Estando tudo ok, baixe a ultima versão do Xposed na pagina oficial:
E baixe o correspondente da versão do seu Android, não esquecendo de baixar também o uninstaller, caso de pau. Copie os arquivos na raiz do seu cartão SD e entre no seu novo Custom Recovery, e mande atualizar com o arquivo zip do Xposed, reinicie o aparelho. Lembrando que o primeiro boot depois de fazer isso pode demorar, então só considere que deu merda depois de esperar mais de 20 minutos. Caso ele tenha ficado preso no menu de boot, reinicie o dispositivo (removendo a bateria por exemplo) e rode o uninstaller do Xposed, nesse caso provavelmente ele vai bootar normal, e você baixou algum arquivo errado.
Com o Xposed instalado, finalmente:
Resolvendo o problema 1
O Xposed sozinho apenas não faz nada, você vai precisar instalar o apk gerenciador dele, baixe ele:
E instale, lembrando de ativar a permição de fontes desconhecidas. Abra o Xposed Instaler, e se tudo estiver ok ele vai mostrar o XPosed devidamente instalado:
Estando tudo ok, vá em "baixar" e procure por "Fix Lolipop Memory Leak", baixe, instale, e vá em módulos e habilite-o. Agora é só reiniciar.
Finalmente, até agora o meu Android não deu mais nenhum reinicio sozinho, nem travamentos, qualquer novidade, eu volto aqui e modifico esse post.
Lembrando que é extremamente aconselhável você guardar em local seguro o backup da sua custom recovery original, que qualquer coisa pode ser flashado novamente usando o flashify.