How can I make the Kindle app in an emulator work just like on a physical device?
Background: I tend to buy ebooks directly from publishers and then send them to Amazon Cloud Drive to be converted into what Amazon calls "Personal Documents." Doing this allows me to synchronize annotations and bookmarks between my phone and tablet, just like with ebooks purchased from Amazon.
However, I'd like to get those annotations and bookmarks on my computer screen -- it's more convenient for me to type code while the ebook is up on the same screen, rather than having to keep shifting between computer and tablet. As others have noticed, the Kindle Cloud Reader and PC/Mac-based readers don't support Personal Documents fully (I believe the Cloud Reader doesn't support them at all; the native apps, last I knew, allowed you to sideload documents but don't synchronize them, but it's been a while since I tried); so I thought that since I have some Android virtual machines (using Genymotion) I might as well install the Android Kindle app there.
I was able to do that, and when I go to Amazon's Manage My Content and Devices page I can see the new device, but I can't seem to find a way to assign that device an Amazon email like my other, physical, devices. I also never see the Personal Documents in its list of books the way I do on my phone and tablet.
It used to be the case (around October 2014) that when I ran the Kindle app in the emulator, it displayed a progress spinner and "Checking for new items & syncing…" for an indefinite amount of time (I remember leaving it spinning for over an hour); now that doesn't happen, but still my Personal Documents didn't show up. In addition, if I reboot the virtual machine, the app asks me for my login information as if I had never run it on the device before.
So my main question is: how can I make the Kindle app in an emulator work just like on a physical device? Secondarily, I'm wondering whether the Kindle app somehow detect it's running in an emulator, and refuses to allow full access for that reason -- and if so, how; or is this some sort of subtle bug in the interaction between emulation and app?