Booting Windows 3.1 on a Samsung Gear Live

Since a 16 year old installed Windows 95 on a smartwatch, I thought… why not Windows 3.1?

So I bought one, and cued the A-Team music.  A few hours later, it was done.  It was a bit harder than I thought, as there is little information specific to the Gear Live.  As it turns out, a lot of the information related to the Samsung Galaxy Gear pretty much works with this.

But scroll down, and I’ll show you how you can load 20 year old software onto your limbs too.

1960084_10152371563408093_4933720780537053427_n 10628165_10152371587758093_1295203669758235371_n

10687093_10152371610238093_7170169155123668882_n

Not all of the steps will be full detailed.  But if it was too easy, that would ruin all the fun for YOU when you try it, right?  Trust me, you’ll learn a lot more this way.

SHORT VERSION

Sideload aDosBox APK into the watch, mount a Windows 3.1 image, and install it somewhere by typing commands into the watch using ‘adb input <command>’ on your desktop, which is the Android Debug Bridge.  Then run it, and you’re in.  Easy!

LONG VERSION

Warning:  This may destroy your watch!  Mine is fine though.

1.  Sync the watch to your phone with the Android Wear app

2.  Plug the phone into your PC via USB

3.  Under the watch settings > about, enable developer mode by tapping the build number 7 times.

4.  Download and install the Android SDK (I have the full ADT suite installed because I develop mobile apps sometimes anyway).

5.  Your goal is to be able to type ‘adb’ from the command line and use that tool, which is the Android Debugging Bridge.

6.  Using this we can sideload APKs into the device, but first we have to do some unlocking on the watch first (note:  I didn’t try sideloading any APKs prior to doing these steps, and I’m not entirely sure they even need to be done, so you might try skipping directly to the APK sideload step)

7.  At some point your phone will popup a prompt asking for authorization to debug from this device, allow it of course.

8.  Follow these steps to prepare the watch to be able to sideload APKs

9.  Sideload the APK for aDosBox (get APKs here, I just used the latest one even though I don’t think the resolution matches, but it didn’t seem to matter) using ‘adb install’ from the command line.  A lot of stuff involves using adb, so play around with it and get familiar.  The watch is very finicky, and ‘adb devices’ will sometimes not show the device at all, or say it’s offline.  It needs to say “device” next to it to be usable.  A good way to test is to do ‘adb shell’ and ensure you can type an “ls” command and see files and folders.  If so, great.  Try installing the apk with ‘adb install aDosBox-v0.2.5.apk’

10.  You’ll probably find it’s annoying to actually launch aDosBox.  Easiest solution is to install (on your phone, which will automatically load onto the watch) the Google Play app called Wear Mini Launcher.  This lets you swipe from the upper left of the device to see and launch all installed apps.

11.  At this point you should be able to load aDosBox.  Now, you’re probably thinking “I’m so close” – which you are!

12.  Now, you’ll notice that in the Win95 hack video expertly done by Corbin Davenport that he uses IMGMOUNT to mount a .img file containing Win95 stuff, and then does a boot command.  It’s very hard to see in the video, but that’s what’s going on.  We’re getting there.  Depending on how old you are, you might remember that you don’t “boot” Windows 3.1 – you boot DOS, which is already booted by aDosBox, and then you ‘run’ Windows 3.1.  Which really is easier in the end anyway.  So we’ll do it a little differently.

13.  If you’re like me, you’ve just wasted at least 3 hours trying to figure out how to type into the watch without a keyboard, and haven’t eaten since breakfast sometime yesterday morning.  Remember to eat.  I tried installing various keyboard APKs I could find with no luck – they’re all designed to work on phones where you can select the keyboard in the settings, but the watch doesn’t have that.  There is a Muninn keyboard supposedly coming soon, but don’t wait around!  There’s another way.

14.  If you want to type an ‘F’ you use ‘input keyboard text ‘F’ from within adb shell.  From this point forward I won’t refer to adb or tell you that you should be in the shell, so, make sure you are.  If your watch is like mine, you’ll lose connection 50 times and go insane trying to get adb shell to stay loaded.  It might be because my cat chewed on my USB cable, I don’t really know.

15.  Later you’ll need to type special keys, like ENTER or maybe TAB.  Use this reference and practice entering things like ‘input keyevent KEYCODE_ENTER’ and marvel at the insanity of it all.

15.  So, we need to IMGMOUNT a Windows 3.1 image of some kind.  There’s lot of them out there, go find one.  You’re looking for a .img or .iso.  This is where I took my own path, and you may find another better for you.  Using ‘adb push WFWG311.ISO /sdcard/WFWG311.ISO’ I put the image onto the watch.  Great!

16.  As it turns out, I was dealing with a SETUP CD of Windows 3.1, not a pre-installed, ready-to-launch image of Windows.  Oh well, I’ll just run setup – what could go wrong?  As it turned out – nothing (except the mouse didn’t work, but beyond that, no problems at all!)

17.  By painstakenly entering input keyboard text ‘IMGMOUNT%sA:%s/sdcard/WFWG311.ISO%s-t%siso%s-size%s512,63,16,142’ I mounted the image.  To explain some of that:  The %s is what you must use for space.  It refused to mount with specifying the size, so I used those numbers – I didn’t bother to do the math so I didn’t know how big the image would be.  Turns out the watch handled it fine.  Also note that long strings of text being sent via adb input keyboard text don’t always go through all the way.  So I had to break the command into several separate lines.  At the end, I did adb input keyevent KEYCODE_ENTER and it was mounted.

18.  I mounted to the A: drive, and the C: drive was already pre-mounted to the root of the watch, containing the entirety of the watch’s file contents.  Without realizing it, in my excitement, I wound up installing Windows to that drive.  Oops!  Amazingly it worked anyway.  I find it amusing that I basically gave full access of the entire root drive of my $200 smartwatch over to the installer of a 20 year old operating system.

19.  After mounting the image and going to the A: drive, I typed setup, and I was on my way!  By mostly sending ‘input keyevent KEYCODE_ENTER’ I pushed on through the setup, despite not being able to read most of it.  At the end, I exited setup, and the installer helpfully changed my drive and path to C:\WINDOWS (which is actually in /sdcard/WINDOWS).

20.  I typed ‘win’ on the device (again using adb input keyboard text ‘win’ of course) and KEYCODE_ENTER, and Windows 3.1 started right up.  I actually installed Windows 3.11 Windows for Workgroups.

21.  The mouse didn’t work, so I started the clock using input keycode KEYCODE_ALT_LEFT then input keyboard text ‘F’ and then input keyboard text ‘R’ to basically do ALT-FILE-RUN.  I typed clock and hit enter.  Great!  Except it’s not maximized.  Oh no!  I was determined to get a fullscreen clock app running, since the Win95 hack was unable to run any programs at all due to memory problems.

22.  As the final command, I did a combination of keystrokes to maximize the window using input keyevent KEYCODE_ALT_LEFT && input keyboard text ‘%s’  – all of that typed as one command.

The clock is even on time.  Only problem?  It’s rotated 90 degrees, along with all of Windows.

Oh well.  Nothing’s perfect!