Dopo aver raccolto opinioni sufficienti per quanto riguarda purplera1n, il tool per il jailbreak dell’iPhone 3GS rilasciato stamattina da Geohot, e dopo aver letto alcune considerazioni di BigBoss, abbiamo deciso di pubblicare una nuova guida e maggiori informazioni in merito. Di seguito, infatti, troverete alcune possibili soluzioni che potrebbero tornarvi utili per risolvere i problemi riscontrati durante l’utilizzo del software ed un tutorial dettagliato.
purplera1n è compatibile solamente con Windows XP e Vista 32 e 64 bit. Per avviare purplera1n su Vista, dovrete cliccare sul file purplera1n.exe con il tasto destro del mouse e scegliere l’opzione “Esegui come amministratore”. Le versioni per Windows 7 e Mac saranno rilasciate, con ogni probabilità, Lunedì prossimo.
1. Questo tipo di jailbreak presenta alcuni problemi per cui è consigliabile attendere i programmi del DevTeam. Sembra, infatti, che Geohot abbia reso disponibile purplera1n per invogliare il team di hacker a rilasciare i loro tool prima dell’uscita del firmware 3.1.
2. Con purplera1n può capitare che l’iPhone venga messo in Recovery Mode e che il jailbreak non venga effettuato correttamente.
3. Il jailbreak di purplera1n risulta incompleto. Alcune patch non sono presenti e per questo motivo alcune applicazioni come, ad esempio, Winterboard, non funzioneranno.
Il procedimento da seguire per effettuare il jailbreak dell’iPhone 3GS con purplera1n è piuttosto semplice: vi basterà, infatti, avviare il programma, cliccare su un paio di tasti, attendere ed, infine, cliccare sull’icona dell’applicazione Freeze, che comparirà sulla SpringBoard, per installare Cydia.
Come effettuare il jailbreak dell’iPhone 3GS con purplera1n.
Requisiti:
- iTunes 8.2.0.23;
- purplera1n;
- firmware 3.0 installato sull’iPhone 3GS.
Step 1. Collegare l’iPhone al computer.
Step 2. Chiudere iTunes (assicuratevi che resti chiuso durante tutto il jailbrek);
Step 3. Avviare purplera1n;
Step 4. Effettuare un click sul pulsante “make it ra1n”.
Step 5. L’iPhone si riavvierà in Recovery Mode e l’immagine che segue comparirà sullo schermo del dispositivo:
Se, al posto dell’immagine sopra, compare la schermata col cavetto ed iTunes, attendere 1 minuto. Se lo schermo resta così, qualcosa non ha funzionato e sarà necessario ripetere il procedimento dall’inizio.
Step 6. Dopo qualche minuto, l’iPhone verrà riavviato e sulla SpringBoard sarà presente una nuova applicazione chiamata Freeze:
Step 7. Assicurarsi che l’iPhone sia connesso a internet. Effettuare un tap sull’icona di Freeze;
Step 8. Effettuare un tap sulla scritta “Install Cydia” ed attendere il download e l’installazione dell’applicazione;
Step 9. Non appena l’installazione di Cydia verrà completata, bisognerà chiudere Freeze e riavviare l’iPhone;
Step 10. Aprire Cydia ed attendere la riorganizzazione automatica delle applicazioni. Successivamente, installare gli aggiornamenti essenziali che Cydia vi propone;
Come rimuovere l’icona di Freeze dalla SpringBoard.
Step 1. Avviare Cydia e, attraverso la funzione Search, ricercate Cydelete;
Step 2. Entrare in Impostazioni>Cydelete ed abilitare l’opzione “Abilita Rimozioni Extra”;
Step 3. Dopo il respring, effettuare un tap prolungato sull’icona di Freeze. Non appena quest’ultima inizierà a vibrare, cliccare sulla “x” e successivamente su “Delete”;
Risoluzione dei problemi.
Se purplera1n crasha dopo aver premuto il tasto “make it ra1n”, premere i tasti “Windows + r”, digitare “services.msc” e schiacciare il tasto Invio. Successivamente individuare il servizio Apple Mobile Device, cliccare col tasto destro del mouse e poi su “Start”. Riavviare purplera1n.
Se purplera1n si blocca in fase di “done, wait for reboot” il problema potrebbe essere Vista. Utilizzare Windows XP 32bit. Assicurarsi di aver installato iTunes 8.2.0.23.
Windows XP. puplera1n potrebbe non funzionare con sistemi operativi che utilizzano una lingua diversa da quella inglese. Se riscontrate problemi di crash del programma, questa è la procedura da seguire:
- Copiare il file iTunesMobileDevice.dll che trovate in C:\Programmi\File comuni\Apple\Mobile Device Support\bin
- Creare il seguente percorso C:\Program Files\Common Files\Apple\Mobile Device Support\bin nel quale, successivamente, dovrete incollare il file iTunesMobileDevice.dll precedentemente copiato;
- Se non trovate il file iTunesMobileDevice.dll , potete scaricarlo da qui
[Fonte]
// Logica completa dello shortcode 'app' function appstore_shortcode_logic($atts, $content = null) { // Attributi di default $atts = shortcode_atts(array( 'id' => '', 'img' => '', 'nome' => '', 'sottotitolo' => '', 'prezzo' => '', 'link' => '', 'store' => 'App Store', 'template' => '', 'inapp' => '', 'background' => '', 'link_icon' => '', ), $atts, 'card'); // Verifica del valore dell'attributo 'stile' $template_class = !empty($atts['template']) ? sanitize_html_class($atts['template']) : ''; // Verifica se il file JSON della cache esiste $cache_dir = '/srv/www/ispazio.net/www/wp-content/plugins/appstore_ispazio/app_cache/'; $cache_file = $cache_dir . "app_" . sanitize_key($atts['id']) . ".json"; // Determina se la cache è valida: JSON esiste, non scaduto E icona principale esiste sul disco $_app_id_check = sanitize_key($atts['id']); $_img_main_path = $cache_dir . "icon250_" . $_app_id_check . ".jpg"; $_cache_valid = file_exists($cache_file) && filesize($cache_file) > 0 && time() - filemtime($cache_file) < 31557600 && file_exists($_img_main_path); if ($_cache_valid) { $json = file_get_contents($cache_file); } else { // Interroga l'API di App Store e scarica il JSON utilizzando cURL $itunes_api_base = "https://itunes.apple.com/lookup?id=" . sanitize_key($atts['id']); $country_list = ['IT', 'US']; // puoi aggiungere altri paesi se vuoi $json = ''; $data = []; foreach ($country_list as $country) { $itunes_api_url = $itunes_api_base . "&country=" . $country; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $itunes_api_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json')); $json = curl_exec($ch); curl_close($ch); $data = json_decode($json, true); if (!empty($data['results'])) { break; // abbiamo trovato un risultato valido, fermiamo il ciclo } } if (isset($data['results'][0]['artworkUrl100'])) { $original_image_url = $data['results'][0]['artworkUrl100']; $new_image_url = str_replace('100x100bb.jpg', '250x250bb.jpg', $original_image_url); // Scarica e salva l'immagine dell'artwork sul tuo server $image_id = sanitize_key($atts['id']); $image_path = $cache_dir . "icon250_" . $image_id . ".jpg"; file_put_contents($image_path, file_get_contents($new_image_url)); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($image_path); // Modifica il JSON con l'URL dell'immagine dell'artwork sul tuo server $data['results'][0]['artworkUrl100'] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_" . $image_id . ".jpg"; // Crea anche versione 140px per template mini (retina 2x per 70x70) $icon140_path = $cache_dir . "icon140_" . $image_id . ".jpg"; if ( ! file_exists( $icon140_path ) && function_exists( 'imagecreatefromjpeg' ) ) { $src_img = @imagecreatefromjpeg( $image_path ); if ( $src_img ) { $dst_img = imagecreatetruecolor( 140, 140 ); imagecopyresampled( $dst_img, $src_img, 0, 0, 0, 0, 140, 140, imagesx( $src_img ), imagesy( $src_img ) ); imagejpeg( $dst_img, $icon140_path, 85 ); imagedestroy( $src_img ); imagedestroy( $dst_img ); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($icon140_path); } } // Sostituisci anche gli URL delle prime 4 immagini degli screenshot if (isset($data['results'][0]['screenshotUrls'])) { $screenshotUrls = $data['results'][0]['screenshotUrls']; $screenshotUrlsOnServer = array(); for ($i = 0; $i < min(count($screenshotUrls), 4); $i++) { $screenshotUrl = $screenshotUrls[$i]; $screenshotFilename = basename($screenshotUrl); $screenshotSavePath = $cache_dir . "screenshot_" . $image_id . "_" . $i . ".jpg"; // Scarica e salva l'immagine dello screenshot sul tuo server file_put_contents($screenshotSavePath, file_get_contents($screenshotUrl)); if (function_exists('ispazio_convert_to_modern')) ispazio_convert_to_modern($screenshotSavePath); // Modifica il JSON con l'URL dell'immagine dello screenshot sul tuo server $screenshotUrlsOnServer[] = "https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/screenshot_" . $image_id . "_" . $i . ".jpg"; } // Aggiorna il JSON con gli URL delle immagini degli screenshot sul tuo server $data['results'][0]['screenshotUrls'] = $screenshotUrlsOnServer; } } // Salva il JSON nella cache solo se non è vuoto if (!empty($json)) { file_put_contents($cache_file, json_encode($data)); } } // Decodifica il JSON $data = json_decode($json, true); // Se il "nome" non è specificato nell'attributo, usa il trackName dal JSON $nome = isset($atts['nome']) && !empty($atts['nome']) ? $atts['nome'] : ($data['results'][0]['trackName'] ?? 'Scarica da App Store'); // Se il "sottotitolo" non è specificato nell'attributo, usa artistName dal JSON $sottotitolo = isset($atts['sottotitolo']) && !empty($atts['sottotitolo']) ? $atts['sottotitolo'] : ($data['results'][0]['artistName'] ?? ''); // Se il "prezzo" non è specificato nell'attributo, usa il formattedPrice dal JSON $formattedPrice = !empty($data['results'][0]['formattedPrice']) ? $data['results'][0]['formattedPrice'] : null; $prezzo = !empty($atts['prezzo']) ? $atts['prezzo'] : (!empty($formattedPrice) ? $formattedPrice : (!empty(trim($content)) ? trim($content) : 'OTTIENI')); // Se l'URL dell'immagine non è specificato nell'attributo, usa quello dal JSON $hide_image_class = ''; $card_body_style = ''; $container_style = ''; $container_extra_class = ''; if (isset($atts['img']) && trim($atts['img']) === 'scontiamolo') { $img = 'https://www.ispazio.net/wp-content/plugins/appstore_ispazio/app_cache/icon250_1506946624.jpg'; $container_extra_class = 'scontiamolo-mode'; } elseif (!empty($atts['img'])) { $img = $atts['img']; } else { $img = $data['results'][0]['artworkUrl100'] ?? "https://www.ispazio.net/wp-content/uploads/2022/10/appstore_icon.png"; } // Per template mini usa icon140 (70x70 retina) invece di icon250 if ( $template_class === 'mini' ) { $img = str_replace( 'icon250_', 'icon140_', $img ); } // Genera il link dell'app su App Store $link = !empty($atts['link']) ? $atts['link'] : "https://apps.apple.com/it/app/id" . $atts['id'] . "?platform=iphone"; $link_icon = !empty($atts['link_icon']) ? $atts['link_icon'] : $link; // HTML immagine con o senza effetto rotazione (in base a template) $img_html = ''; if (!empty($img)) { if ($template_class === 'striscia') { $img_html = '






















































































































































































































































Accedi per lasciare un commento:
0 Commenti