Bug dos anos 70 do iPhone tem resolução e explicação
Foi descoberta na semana passada mais uma falha no iOS. Desta vez estava relacionada com a mudança da data deste sistema operativo para o dia 01 de Janeiro de 1970. Todos os que o fizerem vão ficar com os seus telefones bloqueados e sem os poderem usar.
Mas há alguma razão lógica para isto acontecer? Claro que sim, vamos perceber a razão e explicar também como é possível recuperar um iPhone ou iPad que tenha ficado neste estado!
Esta nova falha do iOS não compromete os dados dos utilizadores ou deixa-os vulneráveis a ataques, mas tem a capacidade de bloquear qualquer equipamento se caírem na tentação de a experimentar.
Basta mudar a data para o dia 01 de Janeiro de 1970 e a hora para as 00:00, seguida de um reiniciar ao equipamento para que este fique eternamente no ecrã de arranque.
Vários caíram na tentação de a experimentar e são agora donos de um iPhone que simplesmente não arranca. Mas e porque é que isto acontece? Haverá uma forma de recuperar um equipamento que "adormeceu" neste estado?
Qual a causa deste bug?
Ainda não existe uma explicação oficial para esta falha do iOS e provavelmente nunca haverá, mas existem algumas teorias que surgiram e que explicam de forma lógica este problema. Ambas assentam no facto dos sistemas Unix armazenarem o tempo no valor de segundos que passaram desde o dia 1 de Janeiro de 1970.
Ora ao definirem a data para o dia 1 de Janeiro de 1970 estão a definir o tempo para um valor igual a zero. Isto leva a que depois, ao tentar calcular o tempo, o iOS vai dividir o valor por zero e isso vai levar a que surja um erro, o que impede o sistema operativo de arrancar.
Por outro lado, há quem defenda que o problema está na variável que armazena o valor da data. Este será um unsigned int, que apenas consegue guardar valores positivos. Ora se o valor obtido, após cálculos feitos para obter a data e a hora, for negativo, o problema surge porque o valor é negativo.
Como resolver este problema?
Ainda não existe uma forma oficial para resolver o problema de todos os que inadvertidamente resolveram testar esta falha do iOS e que neste momento têm os seus equipamentos bloqueados.
Mas como é natural, existem já formas de o contornar e trazer de volta todos os iPhones e iPads que foram vítimas da curiosidade dos seus donos. A forma não é simples e envolve o desligar da bateria, implicando que estes equipamentos sejam abertos. Se o fizerem tenham em atenção que podem estar a violar a garantia dos mesmos.
Se têm em mãos um iPhone bloqueado, vejam no vídeo abaixo a forma "simples" de o trazerem de volta à vida.
Podem ainda esperar que a bateria se esgote completamente, algo que demorará muitos mais, uma vez que o dispositivo está apenas a arrancar e sem processos a correr que consumam muita energia.
Espera-se que para muito breve surja uma actualização do iOS que resolva este problema, deixando o ano de 1970 para trás e impedindo os utilizadores de bloquearem de forma permanente os seus iPhones e iPads, até porque a Apple já reconheceu o problema.
É uma falha do iOS que a Apple deveria ter previsto e eliminado na sua origem, não deixando espaço para toda esta confusão e evitando mais uma série de problemas.
Por favor, resistam à tentação de experimentar esta falha e não caiam na asneira de seguirem os "conselhos" dos vossos amigos mais brincalhões. Considerem-se avisados!
Este artigo tem mais de um ano
Os aparelhos electrónicos não deveriam permitir recuo da data anterior à do seu fabrico.
Existe um calendario musulmano diferente do nosso, existem varios calendarios: todos devem ter liberdade de escolher o seu
o que é que isso tem a ver com o que ele disse?
O que é guardado no sistema não é a data segundo os calendários, é uma contagem do tempo que depois pode ser convertida em data em qualquer calendário, pelo algoritmo correspondente.
Se tirar a bateria la se vai a garantia, como resolvo isto?
Tenho contactos de clientes e não queria estar a espera que a bayeria se esgote!
Estou mesmo arrependido de comprar um iphone 5 🙁
Mas não estás arrependido de ter posto a data 01-01-1970? lol
Estás arrependido de ter comprado o 5 porque achas que tinha valido a pena gastar mais uns trocos e ir para o 6S?
Ou melhor, se alguma vez tivesses comprado um iphone 5 agora estarias arrependido?
Estou confuso… Deve ser porque sou uma iSheep, e toda a gente sabe que as ovelhas são bichinhos confusos!
Se sabias que o aparelho ia brickar porque é que o fizeste.
viva o troll!
Isto não afecta o iPhone 5
“Estou mesmo arrependido de comprar um iphone 5 :(”
Mais depressa se apanha um coxo que um mentiroso.
O bug é só para dispositivos 64 bit, o 5 é 32 bit.
tens razão mas se for 5s ja sofre com esse erro
Este problema apenas afecta os iphones com cpu de 64 bits. Logo o 5 não sofre deste.
Mas que comentário mais infeliz, lol.
Eu tenho um problema semelhante. Em algumas das nossas placas não temos pilha, mas tem um RTC interno ao micro. Quando o sistema desliga vai para essa data. A primeira coisa que tenta é sincronizar a hora na rede. Caso não consiga eu adiciono os segundos necessários para colocar a data em 1/1/2000. Desta forma torna-se mais fácil corrigir falhas quando existem falhas de rede e o sistema tem de reiniciar. Chamo ao meu problema, o problema do ano 2000. Se não lhe adiciona-se os segundos seria o problema de 1970.
O problema em questão é daqueles que para quem está a programar nem lhe passa pela cabeça que possa acontecer. Provavelmente faz um conta com datas e como é zero dará overflow. Normalmente os códigos em embebidos ou neste caso a zona de boot são extremamente limitado sem termos de espaço de memória de códigos e dados. Temos de fazer código simples e muitas vezes assumir pressupostos. Aí também entra a experiência do programador. Esta é uma daquelas situações que não me choca a ver acontecer. É embaraçosa, mas que um programador de embebidos entende muito bem.
Aqui será + o caso de terem feito bem a coisa mas com a mudança na arquitectura do processador ter passado despercebido a introdução dum bug.
Eu não discuto a verdadeira razão. Digo apenas que é natural este tipo de Bugs. Pot exrmplo, considero-me um programador experiente na área de embebidos e no caso da forma como geria hora no exemplo acima tinha um Bug similar que depois de descoberto achei-o ridículo. Depois do sistema entrar em produção começou-se a verifica que numa determinada versão havia em clientes que o sistema volta atrás cerca de 1 mês. Era pontual. Primeiro não dei valor e achei que teria sido um problema no servidor do cliente. Mas depois apareceu um segundo caso e aí fiquei com sérias dúvidas. Não havia nada no código que pudesse indicar o problema. Aconteceu um terceiro caso no primeiro cliente fiquei deveras preocupado. Apesar que não acontecia em mais lado nenhum. Esmiucei o código ao máximo. Ao fim de algum tempo acabei por verificar que poder o caso de overflow numa variável se o sistema estivesse a funcionar consecutivamente durante 34 dias. Era preciso mais umas condições para que isso acontecesse, por isso só se manifestava naqueles dois clientes. Por mais testes que se tivessem feito era quase impossível detetar aquilo. Depois de descobrir parecia meio elementar, mas foi preciso descobrir.
É daquelas Coisas muito difícil de descobrir. Falei hoje com outros colegas super experientes e concordaram. É folheiro acontecer, ninguém quer que aconteça, mas qualquer engenheiro da área compreende perfeitamente.
Ridículo uma empresa deste tipo nunca ter detetado um erro tão básico como este…Têm que automatizar um teste para evitar futuras surpresas!
Não sou fanboy apple, mas admito que isto é um erro que é fácil de passar despercebido. Os testes unitários/automatizados também são construídos/configurados por seres humanos 😉
os bugs são quase sempre ridículos depois de descobertos, e neste caso deverá ser um conjugar de factores já que só acontece em aparelhos com processadores de 64bits.
Ridículo é alguém do nada quer mudar a data para 40 anos atrás.
Se não for por brincadeira, não vejo mais nenhum motivo para fazer este tipo de mudança.
Acho que eles nem nunca pensaram que alguém iria mudar para uma data anterior, principalmente tanto anos atrás.
O tempo anda para a frente, não para trás.
Não vale a pena já comprei um Lumia 950 😀
@Miguel
E como é que se está a comportar? Estou a pensar actualizar o meu 930. Pelo que li com a última actualização acho que está bem melhor
A build .39 tinha problemas como os reboots aleatórios, mas a Microsoft corrigiu isso na build seguinte. Corre tudo bem e sem problemas. Como a minha versão é DS/Dual Antena a bateria aguenta-se à volta de um dia com 4G dados bastantes chamadas/sms/correio eletrónico.
Muito obrigado pela ajuda.
Mas tenho a build 107 num Lumia 535 e não está tão boa como está a do Lumia 950.
Atenção a isso.
Também se pode recorrer ao modo DFU fazendo um factory reset mas não na forma tradicional
O IOS não tem uma combinação de teclas para fazer reset?
Sim, tem. Tem que se pressionar ao mesmo tempo durante alguns segundos (aprox.10 mins.), depois aparece a informação para ligar por cabo a um equipamento com Itunes e pronto continua como estava antes.
* home + power + volume up
O mais engraçado é o pessoal saber que o telemóvel encrava e mesmo assim configuram da data….. depois o problema é do software! ha ha ha
uffffaa!! Alguns android já estavam todos contentes… afinal no iOS tudo se resolve, nada se perde e tudo se transforma. 😀 😀 😀
Mas quem é que precisa de colocar a data de 3 Janeiro de 1970 num Smartphone seja Apple ou Android?!? Em 2016…lol
Imagina que quero viajar no tempo e ir para o passado, embora não tenha rede ou net, mas posso sempre tirar umas fotos e usar umas apps.
Por causa de imagens como esta: http://thumbs.web.sapo.io/?pic=http://mb.web.sapo.io/92c16193029872de893963e74e10e589a3622f9f.jpg&W=700 .
Muita gente ingenuamente acreditou…
Tenho iOS e Android e posso dizer isso com toda certeza, iOS é modinha, da problema igual Android as vezes até pior como nesse caso, trava nos momentos mais importantes e demora uma eternidade para destravar, dizem que o Android trava, e trava mesmo em smartphones fracos mas não é uma travada que atrapalhe, da um lag e volta a funcionar, tenho um iPhone 5S já perdi varias ligações por causa do celular travar quando recebe uma ligação, não estou generalizando, mas a minha experiência com iOS não é das melhores.
Tenho um iPhone 5S e um Moto X XT1097, o Moto X mata a pau o iPhone 5S, nunca tive problema com eu Moto X e com o dinheiro que é preciso para comprar um iPhone compro 2 Moto X…
Desculpa lá mas deves ser um péssimo utilizador se é que se pode dar esse nome a alguém com as tuas capacidades.
Tenho iPhone 5S faz 4 anos e sabes quantas vezes me travou ou perdi uma chamada? Aponta bem o numero … ZERO!
Dizer que android mata o iOs é não saber nada de nada.
Ao menos tentem inventar melhor as vossas histórias de amor/ódio entre marcas.
Fica a dica! 😀
Recebeste Zero chamadas?
Eu tenho um android e um iOS e digo o oposto…
Tenho iOS e Android e posso dizer isso com toda certeza, iOS é modinha, da problema igual Android as vezes até pior como nesse caso, trava nos momentos mais importantes e demora uma eternidade para destravar, dizem que o Android trava, e trava mesmo em smartphones fracos mas não é uma travada que atrapalhe, da um lag e volta a funcionar, tenho um iPhone 5S já perdi varias ligações por causa do celular travar quando recebe uma ligação, não estou generalizando, mas a minha experiência com iOS não é das melhores.
Tenho um iPhone 5S e um Moto X XT1097, o Moto X mata a pau o iPhone 5S, nunca tive problema com eu Moto X e com o dinheiro que é preciso para comprar um iPhone compro 2 Moto X…
muahahahaha parte final do filme “next time you wanna time travel better use a Android”
o engraçado é que como é erro da apple é um erro que faz sentido… ahaahahaha
és tu que o dizes não os outros.
“Bug dos anos 70 do iPhone tem resolução e explicação”
A explicação é apresentada na forma de teoria? Ficou mesmo explicado…
Mas porque é que há gente a fazer isto?
Já sabem que dá barraca mas fazem na mesma.
Está tudo a ficar estúpido ou quê?
Já agora, e não façam isto, se pegarem num martelo e derem com ele em cheio no meio da vossa própria testa, doi como o caraças.
Mas não façam isso, ok?
Não consigo entender as guerras entre Android e iOS.. Argumentam, defendem, chateiam se por causa de uma marca que não é vossa! A sério.. e uma vida não?! Ah e tal o meu é que é bom o teu não presta… Parecem os putos, ai espera, se calhar é isso!
É por causa disso que me mudei para Windows Phone e fiquei melhor 🙂
Não entendo o motivo de tanto choro!!
Por que diabos estão alterando as datas? Eu acho que ele não está voltando a data sozinho!
nem windows se faz necessario algo assim tao radical, com suas telas azuis….. imagine o cidad]ao brasileiro que gastou mais de 5 mil no iphone, vendeu quase o ri, para comprar, vai abrir e fazer ese procedimento, duvido muito
Windows com Telas Azuis?! Wtf?!?!?!?!?!
“Por outro lado, há quem defenda que o problema está na variável que armazena o valor da data. Este será um unsigned int, que apenas consegue guardar valores positivos. Ora se o valor obtido, após cálculos feitos para obter a data e a hora, for negativo, o problema surge porque o valor é negativo.”
Não sei, mas esta teoria n bate muito bem, mas se um int com o valor( num 32bits) 0x1BAF80 (número de segundos entre 1 e 21 de Janeiro) com o bit mais significativo a 1 que marca o sinal a negativo, iria ter-se o valor 0x801BAF80 num uint que daria Tue, 09 Feb 2038 03:14:08 GMT Correcto?
O meu aparelho é um 4s, ele acordou um certo dia com a tela toda preta e manchada… Como já estava fora da garantia, levei ele á uma autorizada, que dizia ser a placa e trocou em 1 hora… Porémmmm ele veio com essa data… Posso desconfiar que fizeram isso de propósito?
é ignorante mas vou perguntar… Ele tem senha , eles conseguem acessar?
Help me