Konkretan i najčešći slučaj za 4.1 i 4.2.1 se odnosi na PUSH servis. Prilikom regularne aktivacije telefona sa validnom SIM karticom, na Apple-ovom serveru se generiše sertifikat koji omogućava da PUSH servis funkcioniše kako treba. Tako je u teoriji, u praksi izgleda i ne mora da bude, posebno ako se odradi jailbreak. Ako se aktivacija odradi na "neregularan" način, preko već aktiviranog firmvera, kroz jailbreak ili pomoću nove SAM aplikacije, dešava se da telefon ne prođe verifikaciju i PUSH servis na telefonu uporno pokušava da kontaktira Apple-ov server da bi dobio sertifikat. Taj proces prilično opterećuje telefon i može da napravi veliki gprs protok. Jedno od delimičnih rešenja je gašenje WiFi-ja i GPRS-a kad god nema potrebe za istim, ali čim se aktiviraju, telefon će ponovo raditi istu stvar. Nekima su pomogli razni "PUSH fiksevi", neki uopšte i nemaju taj problem, bez obzira na sve gore navedeno. Izgleda da nema pravila.
Dalje - od 22. decembra Apple povećava zaštitu za ovaj servis. Kako će se to odraziti na ovaj problem, ostaje da vidimo.
O SAM (Subscriber Artificial Module) aplikaciji sam već pisao, ali pomenuću i ovde pošto je u međuvremenu dorađivana. Ovo nije potrebno za SIM free telefone. Kompletno uputstvo se nalazi na iClarified sajtu, i malo manje detaljno na Redmon Pie. Ovde se nalazi uputstvo za SAM.Apple Updates iOS Push Notifications to Use 2048-bit Certificate
Apple has announced that it will begin using a more secure 2048-bit TLS/SSL certificate for push notifications starting December 22, 2010.
On December 22, 2010, the production Apple Push Notification service will begin to use a 2048-bit TLS/SSL certificate that provides a more secure connection between your provider server and the Apple Push Notification service.
To ensure you can continue to validate your server's connection to the Apple Push Notification service, you will need to update your push notification server with a copy of the 2048-bit root certificate from Entrust's website. This will not require a change to your iOS apps -- this update only applies to provider servers.
If you have been successfully validating the certificate chain in the APNs sandbox environment, you already have the root certificate you need. Simply install the same root certificate on your production push provider servers.
More details on validating your provider communication channel can be found in the Provider Communication with Apple Push Notification service section of the Local and Push Notification Programming Guide.
Ja sam imao problema posle deaktivacije, nekim čudom je uspela aktivacija posle gomile pokušaja, ali problem sa baterijom nisam rešio. Ako posle deaktivacije kroz redsn0w zaglavite na čuvenom "connect to iTunes" ekranu, treba ponovo pokrenuti redsn0w i izabrati opciju just boot tethered right now (sve ostale opcije treba isključiti). Telefon će se podići ali i dalje treba odraditi aktivaciju kroz iTunes.
Pod Settings>SAM se nalaze razne opcije. "Auto" metod za aktivaciju je u mom slučaju doveo do toga da mi iTunes prijavi grešku i kao rešenje je predložio restore. Pošto znam "odakle" mi potiče telefon, kao metod sam odabrao "by country and carrier" ali ni to nije pomoglo. Na kraju sam izabrao "by bundle name" i spajao/raskačinjao kabl dok posle nekog 7-8 puta konačno nisam dobio poruku na telefonu da je "wildcard activated". Međutim, problem je i dalje bio prisutan.
Rešenje koje ću navesti delimično sakati PUSH servis, ali (bar u mom slučaju) rešava problem baterije i nepotrebnog protoka. Posle mnoštva pročitanih saveta i sugestija (od kojih meni ni jedan nije pomogao), došao sam na ideju da probam da uklonim par tzv. "LaunchDaemons" - servisi koji u pozadini obavljaju razne zadatke. Ja sam obrisao 17 komada, a ovde ću navesti samo jedan - najbitniji.
Na sistemskoj particiji, u folderu /System/Library/LaunchDaemons/ nalazi se fajl com.apple.apsd.plist koji je zadužen upravo za PUSH notifikaciju. Pre bilo kakvog brisanja, obavezno uradite backup celog LaunchDaemons foldera, za svaki slučaj!
Sve može da se uradi pomoću programa iFile na telefonu, ili preko kompjutera pomoću nekog fajl menadžera - recimo Panda PC Suite, iPhone Browser, WinSCP (ako je instaliran OpenSSH na telefonu).
Posle brisanja ovog servisa, potrebno je odraditi reboot, zatim u podešavanjima telefona isključiti Notifications, i u podešavanjima za mejl, u Fetch New Data isključiti PUSH, Fetch staviti na Manual i pod Advanced u dnu iste strane podesiti svaki mejl nalog takođe na Manual. Ovako je PUSH potpuno onemogućen i nema nikakvog "pipkanja" interneta u pozadini.
Pomenuo sam da je u pitanju "delimično sakaćenje". Kroz kratko testiranje sam ustanovio da ne radi samo Notifications - opcija koja omogućava raznim aplikacijama tipa Facebook, Tweeter, igricama i bilo čemu što može da koristi "obaveštavanje". Što se tiče mejla, ukoliko se u Fetch New Data ostavi uključen PUSH, i pod Advanced svaki mejl nalog (koji to podržava) stavi na PUSH, mejlovi će stizati vrlo brzo automatski, pod uslovom da je Mail aplikacija aktivna u pozadini. Dovoljno je da se pokrene i zatvori, ostaće aktivna. Testirao sam Google, Yahoo, Hotmail i službeni mejl, svi podešeni kao exchange, mejlovi stižu na telefon u roku od 30-ak sekundi od prispeća.
Rezultat cele ove priče je sledeći: telefon je skinut sa punjača pre skoro 19 sati i trenutno je mrtav hladan na 36%. Imao sam više od pola sata razgovora, gomilu sms-ova, oko sat neta (WiFi i GPRS), kojekakvog čačkanja telefona i nekoliko sati u području jako slabog GSM signala. Push je bio isključen jer mejl proveram ručno, ali sa njim bi rezultat bio neznatno slabiji. Takođe su i WiFi i 3G/EDGE bili uključeni sve vreme.
Eto, nisam mnogo detaljisao a možda je trebalo zbog onih koji se slabije snalaze. Tu sam za svaki savet, igrajte se ali pažljivo!
Edit:
Ovo - "ali sa njim bi rezultat bio neznatno slabiji" nije baš ispalo tačno. Danas sam ceo dan ostavio uključen push za mejl i trajanje baterije se osetno umanjilo. Dakle, i dalje tu nešto ne funkcioniše kako treba.