Com llançar aplicacions al vostre iPhone amb Alfred

Sabíeu que podeu iniciar una aplicació per a iPhone o activar el vostre iDevice amb Alfred per a Mac? En realitat és possible. Podeu invocar una tecla d'accés ràpid, escriure Respring al vostre Mac i el vostre iPhone SpringBoard es reiniciarà automàticament.

Aquest tutorial no és per a la finta de cor. Ajuda si teniu una comprensió general d'OpenSSH, la línia d'ordres i scripts amb AppleScript o Python. Haureu de tenir un Mac amb drets d'administrador i un iDevice amb jailbreak. Continua llegint per començar...



Per raons òbvies, haureu de descarregar i instal·lar Alfred al vostre ordinador. Instal·leu-lo des de la Mac App Store o visiteu el Córrer amb llapis de colors lloc web.

En primer lloc, haureu d'instal·lar-lo OpenSSH des de Cídia . També haureu d'instal·lar la darrera versió d'APT 0.7 Strict. OpenSSH permetrà el vostre Mac per emetre ordres remotes al vostre iPhone. APT Strict augmentarà la quantitat d'ordres que pot utilitzar el vostre Mac.

A continuació, descarregueu encantador des d'ells Pàgina de codi de Google . Enchanter és una biblioteca java per a scripts SSH sessions. Aquest tutorial consisteix a fer un script per a cada comanda que voleu executar al vostre iPhone. Cada fitxer de script inclourà les credencials necessàries per obtenir accés root al vostre iPhone. Prefereixo utilitzar Python per escriure els meus scripts, però Enchanter també ofereix versions de Beanshell i Ruby. Pel bé d'aquest article, faré servir Python als meus exemples. Assegureu-vos de descarregar enchanter-core-0.6.jar i enchanter-python-0.6.jar .

Copieu aquests dos fitxers a /System/Library/Java/Extensions/ i introduïu la contrasenya del vostre Mac per autenticar-vos. Creeu una carpeta per emmagatzemar els vostres scripts de Python. Vaig crear una carpeta al meu directori d'usuaris anomenada 'alfred-iphone' perquè pugui posar fàcilment '~/alfred-iphone/script.py' a la meva extensió Alfred. Si voleu poder utilitzar Alfred per a diversos dispositius iOS, necessitareu un script diferent per a cadascun, de manera que aquesta convenció de nomenclatura de carpetes és molt pràctica.

Ara haureu de crear el vostre primer script. Us mostraré com fer un script Respring per reiniciar fàcilment el SpringBoard del vostre iPhone. Feu un fitxer nou amb una aplicació com BBEdit o TextWrangler i anomeneu-lo respring.py. Deseu-lo al directori que heu creat, és a dir, '~/alfred-iphone' o el que hàgiu decidit anomenar-lo.

El contingut del fitxer hauria de ser així:


conn.connect("highPhone.local", 22, "root", "alpine");
conn.waitFor("root# ");
conn.sendLine("killall SpringBoard");
conn.waitFor("root# ");
conn.sendLine("exit");
conn.disconnect();

Haureu de personalitzar la primera línia amb els detalls del vostre iPhone. El primer valor hauria de ser el domini local del vostre iPhone o la seva adreça IP. Si coneixeu el nom del vostre iPhone i no té espais, només podeu introduir iPhoneName.local, que en el meu cas és highPhone.local. El segon valor és el número de port SSH, que sempre és 22. El tercer valor és el nom d'usuari, en aquest cas root, ja que necessitem que el Mac iniciï sessió com a root per realitzar aquestes accions. El quart valor és la vostra contrasenya d'arrel. El valor predeterminat és alpí, però si heu canviat el vostre, actualitzeu el valor amb la vostra contrasenya. Tingueu en compte que la vostra contrasenya s'emmagatzema en text sense format en aquest fitxer, de manera que si us preocupa la seguretat, potser voldreu habilitar l'encriptació al vostre Mac amb FileVault.

La resta del guió tracta sobre l'experiència del Terminal. Si voleu veure com funciona tot, obriu Terminal, escriviu 'ssh root@iPhoneName.local' i premeu Enter. Introduïu la vostra contrasenya d'arrel quan se us demani, escriviu 'sí' si se us demana i, a continuació, espereu. Si rebeu un avís de suplantació de DNS, simplement suprimiu el fitxer known_hosts a ~/.ssh i torneu-ho a provar. Quan se us demani que introduïu una ordre, veureu 'iPhoneName:~ root#' abans de l'espai per escriure. Així és com l'encantador sap quan està bé enviar una ordre. Després d'enviar una ordre de respring, és a dir, matar SpringBoard (distingeix entre majúscules i minúscules), l'encantador espera que acabi l'iPhone i sap que està fet quan hi ha una nova arrel #. Per al fitxer d'script, només cal que introduïu la part final d'aquesta cadena. 'iPhoneName:~ root#' i 'root#' funcionaran. Finalment, enviem l'ordre de sortida per tancar la sessió SSH i l'script es desconnecta.

Ara, per introduir-ho a Alfred, heu de crear una nova extensió Alfred. Obriu les preferències d'Alfred i feu clic a l'opció Shell Script per crear una nova extensió. Vaig trucar al meu iPhone Respring. Per canviar la icona, simplement arrossegueu i deixeu anar un fitxer d'imatge a la icona existent. Cada Mac té una col·lecció d'icones d'iPhone d'alta qualitat ubicades a '/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/', així que n'he fet servir una. Feu clic al botó Crear. Podeu personalitzar el títol i la descripció al vostre gust, però assegureu-vos que la casella de selecció de Silenci estigui marcada i que Acció no estigui marcada. L'ordre hauria de ser 'java -jar /System/Library/Java/Extensions/enchanter-python-0.6.jar ~/alfred-iphone/respring.py' tot en una línia. Si voleu assegurar-vos que això funciona, podeu enviar aquesta ordre a una nova finestra de terminal (no inicieu sessió primer mitjançant SSH). Deseu la vostra extensió i proveu-la.

Per afegir compatibilitat amb Growl, heu de crear una extensió AppleScript. Incloeu aquest codi a la part superior de l'extensió:

try
tell application "Growl"
set the allNotificationsList to ¬
{"Alfred iPhone"}
set the enabledNotificationsList to ¬
{"Alfred iPhone"}
register as application ¬
"Alfred iPhone" all notifications allNotificationsList ¬
default notifications enabledNotificationsList ¬
icon of application "Terminal"
end tell
end try

Per llançar l'script de Python, només cal que afegiu:

do shell script "java -jar /System/Library/Java/Extensions/enchanter-python-0.6.jar ~/alfred-iphone/respring.py"
tell application "Growl"
notify with name ¬
"Alfred iPhone" title ¬
"Success!" description ¬
"You have successfully restarted your iPhone SpringBoard." application name "Alfred iPhone" image from location ¬
"file:////System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-4-black.icns"
end tell

Us recomano que escriviu, compileu i executeu aquest script a l'aplicació AppleScript Editor d'Apple, inclosa a tots els Mac.

Podeu crear scripts de Python per a cada acció que es pugui realitzar des de la línia d'ordres. Per actualitzar les fonts de Cydia, 'apt-get update' o per actualitzar tots els paquets disponibles en segon pla, 'apt-get upgrade'. Això es pot ampliar afegint paquets Cydia per a la línia d'ordres. Utilitzant les ericautilities d'Erica Sadun, podeu obrir un URL a Safari fent servir alguna cosa com 'openURL https://www.idownloadblog.com” or launch an application by its bundle identifier by using something like “launch com.Apple.Calculator”. Here’s how you would write launchcalculator.py to use with enchanter.


conn.connect("highPhone.local", 22, "root", "alpine");
conn.waitFor("root# ");
conn.sendLine("launch com.Apple.Calculator");
conn.waitFor("root# ");
conn.sendLine("exit");
conn.disconnect();

Per als gurus avançats d'AppleScript, podeu afegir opcions de consulta d'Alfred a la vostra extensió. Per exemple, vaig anomenar una extensió 'Respring' i després tinc opcions de consulta per a 'iPhone' i 'iPad'. Tinc una extensió anomenada 'iPhone' amb opcions de consulta com ara 'reactivar', 'reiniciar' i 'actualitzar'. Aquí teniu un exemple d'una extensió Alfred AppleScript que utilitza consultes:

activat alfred_script ( q ) provar dir aplicació 'Groig' conjunt el AllNotificationsList a ¬ {“Alfred iPhone”} conjunt el enabledNotificationsList a ¬ {“Alfred iPhone”}

registrar-se com a aplicació ¬ 'Alfred iPhone' totes les notificacions AllNotificationsList ¬ notificacions per defecte enabledNotificationsList ¬ icona de l'aplicació 'Terminal'

final dir final provar si q és 'ressort' aleshores fer un script de shell 'Java -jar /System/Library/Java/Extensions/enchanter-python-0.6.jar ~ / alfred-iphone / respring.py' dir aplicació 'Groig' notificar amb nom ¬ 'Alfred iPhone' títol ¬ 'Éxit!' descripció ¬ 'Heu reiniciat correctament el vostre iPhone SpringBoard'. nom de l'aplicació 'Alfred iPhone' imatge des de la ubicació ¬ 'file:////System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-4-black.icns' final dir altra cosa si q és 'actualitzar' aleshores dir aplicació 'Groig' notificar amb nom ¬ 'Alfred iPhone' títol ¬ 'Actualització' descripció ¬ 'Estic buscant nous paquets de Cydia'. nom de l'aplicació 'Alfred iPhone' final dir

fer un script de shell 'java -jar /System/Library/Java/Extensions/enchanter-python-0.6.jar ~/alfred-iphone/update.py' dir aplicació 'Groig' notificar amb nom ¬ 'Alfred iPhone' títol ¬ 'Éxit!' descripció ¬ 'Has actualitzat les teves actualitzacions de Cydia'. nom de l'aplicació 'Alfred iPhone' imatge des de la ubicació ¬ 'file:////System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-4-black.icns' final dir altra cosa si q és 'actualitzar' aleshores fer un script de shell 'java -jar /System/Library/Java/Extensions/enchanter-python-0.6.jar ~/alfred-iphone/upgrade.py' dir aplicació 'Groig' notificar amb nom ¬ 'Alfred iPhone' títol ¬ 'Éxit!' descripció ¬ 'Has actualitzat els teus paquets de Cydia'. nom de l'aplicació 'Alfred iPhone' imatge des de la ubicació ¬ 'file:////System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.iphone-4-black.icns' final dir final si final alfred_script

Estic segur que molts de vosaltres creareu algunes idees increïbles. Assegureu-vos de compartir les vostres experiències als comentaris. Si teniu problemes, publiqueu els vostres errors o preguntes. Feliç retoc!