Agendar um WakeUpPowerOn no iPhone

No aplicativo Relógio do iPhone possui a função de Alarme, a qual é bastante interessante, sendo possível adicionar vários alarmes e personalizá-los individualmente, desde o toque até uma etiqueta para identificação, como na foto:
Alarmes
Essa função funciona que é uma beleza, mas o problema é utilizá-lo como despertador e deixá-lo ligado a noite toda para despertar no outro dia conforme programado, vejo dois problema utilizando dessa forma:

1) Deixar o iPhone ligado a noite toda consome bateria.

2) Não gostaria de receber nenhuma chamada ou SMS durante a noite, muitas pessoas ativam o Modo Avião, parcialmente resolvido, mas o problema seria lembrar de ativar o Modo Avião todas as noites.

Celulares de outras marcas normalmene é possível programar um despertador desligar o aparelho por completo, que ele irá ligar na hora programada e em seguida toca o despertador. Isto não acontece com o iPhone, ele não consegue ligar o aparelho.

Atras de uma solução para isso, comecei a procurar no Mac OS X, em Preferencias do Sistema > Economizador de Energia > Programação, é possível programar data e hora para que a máquina ligue e inicialize o Mac OS X na hora programada, feito isso descobri que o arquivo é:

/Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist

Legal, será que o iPhone OS tem esse arquivo também?

Estou utilizando iPhone 2G com Firmware 2.2.1 com jailbreak, acessando via SSH e procurando desse arquivo, bingo! Lá está ele:

/var/preferences/SystemConfiguration/com.apple.AutoWake.plist

Através de uma comparação, foi possível identificar quais eram as alterações necessárias para programar data e hora para ligar o iPhone automaticamente.

Bastou então copiar o /var/preferences/SystemConfiguration/com.apple.AutoWake.plist para o Mac OS X, editá-lo com o Property List Editor e adicionar as seguintes chaves e valores, como na imagem abaixo:
imagem2

Após adicionar esses valores deve copiar novamente esse arquivo para o iPhone e fazer ele ler as novas configurações, para isso utilize:

cd /private/var/mobile/Library/Preferences/
launchctl
stop com.apple.SpringBoard
start com.apple.SpringBoard

Pronto agora, desligue o iPhone e aguarde ele ligar automaticamente.

Se alguém se interessar em desenvolver algum App baseado nas informações deste texto, favor entrar em contato para trocar algumas idéias.

8 Comments

Bernardofevereiro 10th, 2010 at 12:57 pm

Olá Felipe, achei muito interessante o procedimento mas estou com dificuldades e gostaria de saber se poderia me ajudar se possível.
Primeiramente, é possível fazer o pelo windows?
Tentei fazer o passo a passo seguindo informações através do diskaid, acessando o root, copiando o arquivo para a minha área de trabalho e alterando com o plist editor.
Meu Iphone possui O.S. 3.0, e utilizo o itunes 9.0.2.25
Não tenho experiência com o Plist então acredito estar aí o erro. Por favor dá uma olhada no arquivo e vê se eu fiz corretamente.

WARNING
Do not edit this file by hand. It must remain in sorted-by-date order.
wake

eventtype
wake
scheduledby
PersConn-aosnotifyd-com.apple.AOSNotification
time
2010-02-10T03:08:15Z

eventtype
wake
scheduledby
PersConn-apsd-com.apple.apsd-push.apple.com
time
2010-02-10T03:09:40Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.Clock
time
2010-02-10T10:02:45Z

eventtype
wake
scheduledby
com.apple.springboard.calendar
time
2010-02-10T19:12:15Z

eventtype
wakepoweron
scheduledby
repeating
time
2010-02-10T07:35:15Z

adminfevereiro 12th, 2010 at 12:48 pm

Fala Bernardo,

creio que não seja possível fazer a alteração do arquivo no Windows por causa do plist, a não ser que exista uma versão de plist editor para o Windows o que eu acho pouco provável.

Outra coisa, eu estava fuçando essa função nessa época, até estava empolgado em desenvolver um aplicativo em cima disso, porém tinha outras prioridades e não pude completar.

Resumindo não tenho como lhe ajudar, as dicas que consegui obter são essas.

Falows

Bernardofevereiro 13th, 2010 at 8:57 am

Beleza Felipe. Agradeço a atenção. Abraço

Bachelor boBnovembro 9th, 2010 at 12:20 am

I have a suggestion.

I have been experimenting with com.apple.AutoWake.plist to make the Clock APP power on my iPod Touch 2G running iOS 3.1.3. I have been successful at setting a eventtype” of “wakepoweron” that boots my iPod Touch. However, I want any alarm in Clock to automatically be a “wakepoweron,” not just a “wake” event.

A script that automatically runs at every shutdown is a possible solution. The script would have to examine the com.apple.AutoWake.plist file. It would have to locate any entry with a “scheduledby” of com.apple.Clock and change that entry’s “eventtype” from “wake” to “wakepoweron.” It would also need to move the time of the event forward by 3 minutes. Otherwise the iPod Touch / iPhone will not finish booting before the alarm is set to occur.

So, I know what needs to happen to the com.apple.AutoWake.plist file. What I do not know is how to develop such a script or APP. Do AppleScript scripts work under iOS? Is there a directory in iOS that is examined during shutdown and anything in it is launched?

Felipe Nogaroto Gonzaleznovembro 10th, 2010 at 8:20 am

good to know that someone has used these things … I understand exactly what you want, but now my iPhone is broken and I am no longer involved in the development. unaware of any process shutdown the iPhone, but one idea would be to create a script and scheduled it with crontab (crontab you know?) I believe that exists in the iPhone I can not confirm. At most, I can not help a great deal.

Bachelor boBnovembro 11th, 2010 at 12:42 am

I have been in contact with the developer of iScheduler and the developer of PlayAwake. iScheduler will allow me to set a poweron event, but I have to set one for each Clock alarm. Two steps for one goal.

PlayAwake is a tweak for Clock and improves it a lot. If that developer will alter Clock events from wake to wakepoweron, everything will be perfect.

Either way, I have accomplished what I was after without having to develop my own script or APP.

Alinejulho 22nd, 2011 at 12:36 pm

Boa tarde, gostaria de desenvolver esse aplicativo, vc gostaria de desenvolver junto?

Felipe Nogaroto Gonzalezjulho 22nd, 2011 at 1:50 pm

Olá Aline, infelizmente não tenho conhecimentos em desenvolvimento de app para o iOS, porém ficaria muito feliz em vez um app fazendo isso, ligando o iPhone e despertando conforme agendamento.

Se você desenvolver algo, não esqueça de me avisar :)

Leave a comment

Your comment