Mocht je per ongeluk je telefoon met Windows 10 Mobile een reboot hebben gegeven of hebben uitgezet terwijl je de ontwikkelaars modus nog aan had staan, dan kom je er waarschijnlijk achter dat er nog een bug in Windows 10 zit.
Na opnieuw opstarten kun je namelijk niet meer in het Ontwikkelaars menu komen. Dit menu crashed continue en na een crash gaan alle iconen in het notificatiescherm knipperen. Mocht je verbinden via wconnect, dan eindig je altijd met error 9.
Er zijn twee oplossingen:
Hard reset de telefoon. Dit is niet aan te raden omdat je alle informatie verliest. Je gaat terug naar fabrieksinstellingen en raakt alle geïnstalleerde applicaties en instellingen kwijt.
Gebruik de developer tools van Windows Phone 8.1 SDK. Zie hiervoor de onderstaande stappen. Dit vereist wel 15Gb aan vrije ruimte op je harddisk!
Unregister ontwikkelaars modus via Windows Phone SDK 8.1
De-selecteer alles door te klikken op ‘Windows and Web Development’. Klap dat menu vervolgens uit en klap daarna ‘Windows 8.1 and Windows Phone 8.0/8.1 Tools’ uit.
Selecteer ‘Tools and Windows SDKs’ en druk op Next
Klik vervolgens op Install en wacht de installatie af (dit kan even duren afhankelijk van de snelheid van je internetverbinding en pc).
Ge vervolgens verder:
Start na de installatie de ‘Windows Phone Developer Registration (8.1)
Sluit je telefoon aan via USB. Onderin het scherm zou nu ‘Unregister’ moeten komen te staan
Klik op de knop ‘Unregister’
Voer je Microsoft-account in
Klik op Continue. Mocht je telefoon gelocked zijn, dan krijg je een melding met verzoek je telefoon te unlocken en opnieuw te proberen.
Bij succes veranderd de status in ‘You have succesfully unregistered your Windows Phone’. Daarna kun je op je telefoon weer in het ontwikkelaars menu.
De tools zijn gelekt en je wil nu eigenlijk wel een Android applicatie op je Windows 10 Mobile draaien. Maar hoe kom je aan een APK om te gebruiken. Uiteraard kun je ze downloaden van een site, maar je kunt ze ook van een telefoon met Android halen.
Developermode activeren
Schakel daarvoor eerst de developermode van het toestel in. Mocht je Android 4.2 of hoger hebben, dan is deze verborgen in het menu. Ga eerst naar Settings -> About device. Scroll naar beneden naar ‘Build number‘ en druk daar op. Selecteer hem nogmaals, en nogmaals en nogmaals. Op een gegeven moment krijg je de melding ‘press x times to unlock developer mode’. Ga verder met selecteren totdat een waarschuwing wordt gegeven over de development mode en accepteer deze. Daarna kun je development mode vinden in je instellingen.
Ga naar Settings -> Developer Options en selecteer USB debugging en accepteer de waarschuwing. Hang je telefoon met een USB kabel aan je pc. De telefoon geeft een waarschuwing. Accepteer deze.
Mocht er geen waarschuwing worden gegeven, dan moeten mogelijk de developer drivers van je telefoon geïnstalleerd worden. Zoek daarna op internet via google of op de website van de fabrikant van je telefoon.
Controleer of het device herkent wordt door Android ADB (zie [link] voor een download). Open een administrative command prompt, ga naar de map waar ADB in staat en toets in ‘adb devices‘.
Staat je telefoon erbij, dan kun je doorgaan. Anders moet je alsnog de developer drivers van je telefoon installeren.
APK downloaden van telefoon
Om er achter te komen waar de apk bestanden staan van de applicaties op de telefoon voer je het volgende commando in ‘adb shell pm list packages -f -3‘. Je krijgt dan de output in de vorm van package:/data/app/xx.xx.xx.apk=yy.yy.yy. Zie het voorbeeld hiernaast.
Zoek hierin de applicatie die je als APK wilt hebben. Selecteer vervolgens het data path. In het voorbeeld is het path van Sonos bijvoorbeeld /data/app/com.sonos.acr-4.apk
De APK kun je nu downloaden via het commando ‘abd pull [data path]‘. Het APK bestand wordt in de map geplaatst waar de adb-executable staat.
APK patchen voor Windows 10 Mobile gebruik
Sommige applicaties gebruiken onnodig de Google Play Services. Af en toe wordt ook het OpenStreetMaps framework gebruikt. Daar kan Windows 10 Mobile (nog) niet mee overweg.
GMAPS Patcher kan proberen dit op te lossen door de APK aan te passen. Het is geen garantie dat de applicatie daarna werkt, maar je kunt het altijd proberen. Voordat de tool gebruikt is het wel raadzaam eerst te kijken of de APK ook zonder patch werkt!
Zorg ervoor dat je Java 1.7 of hoger hebt geïnstalleerd. Pak de zipfile uit en start gmaps patcher.exe
Na de eerste keer opstarten kun je het beste eerst een aantal opties aanvinken en invullen. Ga naar het tabblad ‘Paths‘ en browse naar het path van je java installatie.
Kies daarna het tabblad ‘Options‘ en selecteer ‘Pause before rebuilding‘. Dit zorgt ervoor dat de applicatie pauzeert na analyse zodat je de mogelijkheid hebt bepaalde patches aan of uit te vinken.
Selecteer bovenaan ‘browse’ bij ‘working on’, selecteer de APK en druk vervolgens op ‘Analyze APK File’ onderin het scherm. De Applicatie gaat nu aan het werk. Na analyze kun je kiezen uit verschillende patches. Meestal zal dit het verwijderen van Google Play Services zijn of het omzetten van OpenStreetMaps naar Google Maps. De laatste is nodig zodat Microsoft dat framework weer kan omzetten naar Bing Maps (dit gaat automatisch in het framework op de telefoon). Tevens kan de applicatie de melding ‘Google Play Services nodig’ uitschakelen.
Klik op ‘Continue’ en daarna op ‘Rebuild’ om een gepatchte versie van de APK te maken. Deze komt in de output folder van de tool te staan. Deze gepatchte versie kun je vervolgens gebruiken voor de installatie op Windows 10 Mobile.
Gezien dit een vrij vroege release is, werkt het geheel nog niet heel stabiel. De functie is op het moment alleen werkend op een Nokia Lumia 435, 635, 730, 820, 830, 920, 925, 928, 929, 930 en 1520.
Pak beide programma’s (wconnect en Android ADB) uit op je computer met Windows 10 (versie maakt niet uit). Op je telefoon met Windows 10 Mobile, ga naar Alle Instellingen -> Bijwerken en beveiliging -> Voor ontwikkelaars. Schakel hier ‘Modus voor Ontwikkelaars’ in en zet ‘Apparaat detectie’ aan. Klik vervolgens op koppelen en schrijf de code op die in het scherm wordt getoond. Modus voor ontwikkelaars moet op dit moment altijd actief zijn om Android applicaties te draaien. De modus moet uit staan als je je telefoon wil herstarten of uitschakelt!
Verbinding maken
Installeer als eerste ‘vc_redist86.exe’ en ‘IpOverUSBInstaller.msi’ uit de wconnect folder.
Open een administrative command prompt en ga naar de map waar wconnect in staat. Dit is een tool die als laag tussen je telefoon en Android tools in komt te zitten waardoor de Android tools denken dat ze te maken hebben met een telefoon met Android als OS.
Kies voor het commando ‘wconnect usb‘ als je je Windows 10 Mobile wil verbinden via een USB kabel. Wil je de telefoon via wifi verbinden, type dan ‘wconnect [ip adres telefoon]. Tijdens het verbinden vraagt wconnect eenmalig om een pairingcode. Dit is de code die je eerder hebt opgeschreven en die getoond werd in het ‘voor ontwikkelaars’ menu.
Wconnect komt vervolgens met de melding ‘emulator-[nummer] on [usb/ip] connected‘. Als je error 9 krijgt is er een fout met het verbinden in developer mode. Error 14 houdt in dat je telefoon niet geschikt is voor de emulator. Error 9 komt het meest voor als je telefoon is gereboot waarbij developer modus nog aan staan. Lees dan [hier] verder hoe je dit kan oplossen.
Verbinding verbreken kan via het commando ‘wconnect disconnect‘.
Android applicaties
Voor het installeren van Android applicaties heb je eerst een APK nodig. Applicaties die gebruik maken van het Android Framework, Android Play Services of OpenstreetsMap services doen het mogelijk niet of doen het maar half. Dit komt omdat niet alle onderdelen van Android Play Services (zoals advertenties, google maps, etc.) al worden opgevangen door Microsoft varianten hiervan. Mocht een applicatie een verificatie doen op de Google Play Services dan krijg je een notificatie dat deze (nog) niet ondersteund is als je de applicatie start. Dit is gedeeltelijk op te lossen door gebruik te maken van GMAPS Patcher [zie http://forums.crackberry.com/android-apps-amazon-store-apk-files-f413/how-patch-android-apps-depending-google-maps-google-play-services-914930/ ]. Dit werkt echter niet als de applicatie functies aanroept die Microsoft gewoon nog niet klaar heeft.
Je kunt een APK downloaden op websites. Let daarbij wel goed op. Er zijn een hoop websites welke allerlei advertenties in popups tonen of spyware injecteren. Sites als APKMirror is relatief veilig. Er is ook een manier om APK bestanden van een android telefoon af te halen. Zie daarvoor [het volgende artikel].
Android applicaties installeren
Als je een APK hebt kun je deze plaatsen in de ADB map, welke je eerder hebt uitgepakt.
Met het commando ‘ADB Devices‘ kun je controleren of de tussenlaag goed is geinstalleerd.
De APK kun je vervolgens op je telefoon plaatsen via het commando ‘adb install [bestandsnaam van apk]‘
Afhankelijk van hoe groot de APK is en of je een verbinding hebt via USB of Wireless, kan dit een paar seconde tot een paar minuten duren.
Na upload krijg je eerst de melding met welke snelheid dit is gebeurd en welke APK er is geupload. Daarna moet de telefoon het even verwerken en krijg je de melding ‘success’. Op dat moment zie de applicatie als normale applicatie in je applicatielijst staan. Verwijderen van de applicatie kan op de normale manier op de telefoon.
Soms gaat de installatie niet goed. Veel voorkomende errors zijn ‘Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]‘. Dit houdt in dat de applicatie een standaard geinstalleerd onderdeel van Android mist, zoals een library van de Android Framework. Hier is op dit moment weinig aan te doen. Je kan kijken op GMAPS Patcher het op kan lossen, maar grote kans dat als de installatie daarna wel lukt, dat de applicatie bij het starten of tijdens het werken ineens een foutmelding geeft.
Een andere foutmelding is ‘Failure [DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED]‘. Deze melding heb ik gezien als een eerder installatie mislukte of als je een applicatie verwijderd van de telefoon en hem daarna weer probeert te installeren. De enige oplossing die ik tot nu toe heb kunnen vinden is door een disconnect te doen via wconnect, daarna developer modus uit te schakelen en de telefoon te rebooten. Daarna zou de installatie wel moeten lukken.
Lijst met geinstalleerde onderdelen
Een lijst van geinstalleerde Android onderdelen (incl. APK’s) is op te vragen via het commando ‘adb shell pm list packages‘