Bug dos anos 70 do iPhone tem resolução e explicação

49 Comentários

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!

iphone_1970_1

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?

iphone_1970_2

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!

Comentários

49

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Jls
    Jls

    Os aparelhos electrónicos não deveriam permitir recuo da data anterior à do seu fabrico.

    1. Avatar de cesar
      cesar

      Existe um calendario musulmano diferente do nosso, existem varios calendarios: todos devem ter liberdade de escolher o seu

      1. Avatar de JBM
        JBM

        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.

  2. Avatar de Miguel
    Miguel

    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 🙁

    1. Avatar de João Rodrigues
      João Rodrigues

      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!

    2. Avatar de carlos Alberto Teixeira Fernandes
      carlos Alberto Teixeira Fernandes

      Se sabias que o aparelho ia brickar porque é que o fizeste.

    3. Avatar de JBM
      JBM

      viva o troll!
      Isto não afecta o iPhone 5

    4. Avatar de Andr8
      Andr8

      “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.

      1. Avatar de joao
        joao

        tens razão mas se for 5s ja sofre com esse erro

    5. Avatar de Vlad
      Vlad

      Este problema apenas afecta os iphones com cpu de 64 bits. Logo o 5 não sofre deste.

    6. Avatar de Marco Freitas
      Marco Freitas

      Mas que comentário mais infeliz, lol.

  3. Avatar de Sergio J
    Sergio J

    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.

    1. Avatar de JBM
      JBM

      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.

      1. Avatar de Sergio J
        Sergio J

        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.

  4. Avatar de Ricardo Sousa
    Ricardo Sousa

    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!

    1. Avatar de zee
      zee

      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 😉

    2. Avatar de JBM
      JBM

      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.

    3. Avatar de JJ
      JJ

      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.

  5. Avatar de Miguel
    Miguel

    Não vale a pena já comprei um Lumia 950 😀

    1. Avatar de rudua
      rudua

      @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

      1. Avatar de Miguel
        Miguel

        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.

        1. Avatar de rudua
          rudua

          Muito obrigado pela ajuda.

          1. Avatar de Miguel
            Miguel

            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.

  6. Avatar de JBM
    JBM

    Também se pode recorrer ao modo DFU fazendo um factory reset mas não na forma tradicional

  7. Avatar de Marcos
    Marcos

    O IOS não tem uma combinação de teclas para fazer reset?

    1. Avatar de BuG
      BuG

      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.

      1. Avatar de BuG
        BuG

        * home + power + volume up

  8. Avatar de Francisco
    Francisco

    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

  9. Avatar de Helder Correia
    Helder Correia

    uffffaa!! Alguns android já estavam todos contentes… afinal no iOS tudo se resolve, nada se perde e tudo se transforma. 😀 😀 😀

  10. Avatar de vitor C
    vitor C

    Mas quem é que precisa de colocar a data de 3 Janeiro de 1970 num Smartphone seja Apple ou Android?!? Em 2016…lol

    1. Avatar de Steve
      Steve

      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.

  11. Avatar de Gilberto
    Gilberto

    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…

    1. Avatar de Rui C.
      Rui C.

      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! 😀

      1. Avatar de Miguel
        Miguel

        Recebeste Zero chamadas?

    2. Avatar de int3
      int3

      Eu tenho um android e um iOS e digo o oposto…

  12. Avatar de Gilberto
    Gilberto

    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…

  13. Avatar de Cenerentola
    Cenerentola

    muahahahaha parte final do filme “next time you wanna time travel better use a Android”

  14. Avatar de me and me
    me and me

    o engraçado é que como é erro da apple é um erro que faz sentido… ahaahahaha

    1. Avatar de JBM
      JBM

      és tu que o dizes não os outros.

  15. Avatar de Xico
    Xico

    “Bug dos anos 70 do iPhone tem resolução e explicação”
    A explicação é apresentada na forma de teoria? Ficou mesmo explicado…

  16. Avatar de Carlos
    Carlos

    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?

  17. Avatar de vector
    vector

    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!

    1. Avatar de Miguel
      Miguel

      É por causa disso que me mudei para Windows Phone e fiquei melhor 🙂

  18. Avatar de Christian Nogueira de Faria
    Christian Nogueira de Faria

    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!

  19. Avatar de fernando martini
    fernando martini

    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

    1. Avatar de Miguel
      Miguel

      Windows com Telas Azuis?! Wtf?!?!?!?!?!

  20. Avatar de Fteixeira
    Fteixeira

    “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?

  21. Avatar de Lory
    Lory

    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