Tips for Kindle Fire HD 8 dot 9 - hpaluch/hpaluch.github.io GitHub Wiki

Tips for Kindle Fire HD 8.9"

I'm owner of this device since June 2013. And I'd like to share some tips with you.

Thinking about buying Kindle Fire Tablet?

I bought Kindle Fire HD 8.9" for very simple reason - it was the el cheapo Tablet with full HD display resolution (1920x1200 or 1080p). Such resolution comes very handy when reading PDF files (unlike mobi/epub they can't be reformatted - so high resolution is absolute must).

However I later found several unexpected limitations (unless rooted etc.):

  • No Chrome browser available (Kindle has Amazons's browser called Silk)
  • No Google Play app store access - you can easily access Amazon Apps & Games store only which contains just little fraction of Android applications
  • Missing many national keyboards (Czech in my case - although it is part of standard Android OS)

NOTE: some of above problems can be workarounded (for example you can install some Google Play apps to your mobile phone with Android OS and transfer it to Kindle - but it is unexpected mess.

WARNING! Do NOT buy used Kindle Fire HD 8.9" Tablet today! Because of very limited memory (around 780MB) and bloated updates (especially in this year 2017) it is currently practically unusable (lots of Out of Memory process killing in Linux kernel) - unless you root-it and uninstall bloated and unused system apps (then it is usable again).

Easy non-root shell in Kindle

To start exploring your Kindle device - I recommend QPython - Python on Android available from: https://www.amazon.com/gp/product/B00AP36S4Y/ (I have installed version 1.3.3)

  • Launch this QPython app
  • Once Python logo appears (on black background) - swipe it to left
  • Than click on Console
  • You should get Python Console (prompt starting with >>>).

How to turn Python Console to Shell Console:

  1. If your console text start with something like:

    ..../qpython.sh && exit
    

    Then you can use this simple command to get shell:

    exit(1)
    

    NOTE: exit( non_zero ) is required to skip evil && exit command which would otherwise close our console

  2. If above thing does not work, you can try to invoke shell directly from python language using:

    import os
    os.system('sh')
    

Once you have shell, you can try for example:

  • getting ARM CPU info:

    cat /proc/cpuinfo
        Processor       : ARMv7 Processor rev 10 (v7l)
        processor       : 0
        BogoMIPS        : 2982.32
        ... (it seems that there are 2 cores?)
    
  • Getting memory info:

    cat /proc/meminfo
        MemTotal:         786084 kB
        ...
    

    Ooops, you can see that this kindle has just 780MB of RAM installed

  • Using package manager to list installed packages in format package:PATH_NAME=PACKAGE_NAME:

    pm list packages -f
        package:/system/app/AmazonJacksonApk-release.apk=amazon.jackson19
        package:/system/framework/framework-res.apk=android
        package:/system/app/air_runtime_dcts.apk=com.adobe.air
        package:/data/app/com.amazon.ags.app-1.apk=com.amazon.ags.app
        ...
    

    Interesting notes:

    • packages located in /data/app directory - are so called User packages - they can be stopped, disabled or removed by user
    • packages located in /system/app are system packages - they can't be disabled nor uninstalled. If you attempt to kill them they start again (ehm)...
  • Also these common unix commands work:

    cat   # catalog (show file)
    df    # free space on volumes
    dmesg # show kernel messages
    id    # show your uids and groups (=unix rights)
    mount # show mounted volumes
    ps    # show process list
    set   # show envirnment variables
    top   # show process list each X seconds
    
  • Please note that these commands are missing:

    cp   # not available (N/A) - use "cat source_file > destination_file" to replace missing "cp" command
    grep # N/A
    sed  # N/A
    
  • Crude way to backup apps:

    • use above pm list packages -f to find Path of App to backup, for example PDF Max from https://www.amazon.com/gp/product/B00RDSHI66/:

      pm list packages -f
          ...
          package:/data/app/com.mobeera.pdfmax-1.apk=com.mobeera.pdfmax
          ...
      # "backup" command
      cat /data/app/com.mobeera.pdfmax-1.apk > /mnt/sdcard/Download/com.mobeera.pdfmax-1.apk
      

      NOTE: once you have ADB connection working there exists many other ways how to backup files (either adb pull file or adb backup st...) - but that is another story

    • You can than connect your device via USB cable and normally access Download folder from your Windows/Linux OS

      NOTE: Sometimes the files and/or folders do not appear via MTP device connection - in worst case restart of Kindle should reload everything and show that file.

Additional Tips for QPython Console:

  • Please click on Special Keys to see common Hot-key mapping, for example:
    • Volume Up+w = Arrow Up (got previous command in shell history)
    • Volume Up+t = Tab (expand path in shell)
  • Use exit command to Exit current shell and close Console window

Enabling Android Debugger (ADB)

TODO

Resources

--hp