¿Configurar programáticamente la image de background / lockscreen de iOS?

Me gustaría poder progtwigr la image de background de la pantalla de locking de manera progtwigda. Soy consciente de que esto solo es posible para dispositivos con iOS jailbreak.

Aquí hay algunas cosas que he intentado:

  1. Coloque un LockBackground.png en / private / var / mobile / Library / SpringBoard /. Esto funciona pero requiere una resaca dura. notify_post("com.apple.language.changed"); no funciona para una resurge suave.

  2. Utilice class-dump para volcar los methods privados de UIKit. UIKit en 4.2 solía tener un método llamado + (void)setDesktopImageData:(id)fp8; pero parece faltar en 4.3 y más.

¿Hay algo que me haya perdido?

Encontré esto en el vertedero de SpringBoard, que creo que te será de utilidad:

En SBWallpaperView.h:

 - (void)replaceWallpaperWithImage:(id)image; 

Y en SBUIController.h:

 - (id)wallpaperView; 

Entonces puedes hacer algo como:

 [(SBWallpaperView *)[SBUIController shanetworkingInstance] wallpaperView] replaceWallpaperWithImage:anImage]; 

Esa es una forma.

El otro que encontré fue usar SBWallpaperView + (void)noteWallpaperPreferencesChanged; , No estoy tan seguro de esto, pero parece que si haces lo que hiciste en la primera cosa que intentaste, y luego lo usas en lugar de una resurrección, podría funcionar.