summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-01-09 01:16:02 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-01-09 01:16:02 +0100
commitbd78a8ac1abab9d750b17799993e81a380817068 (patch)
treec870635aabcf3d23580433e857a1350549982fb6 /content
parenta54d74a082aee326d4ba0a57664060edba6c226a (diff)
downloadblog-bd78a8ac1abab9d750b17799993e81a380817068.zip
blog-bd78a8ac1abab9d750b17799993e81a380817068.tar.gz
blog-bd78a8ac1abab9d750b17799993e81a380817068.tar.bz2
post about installing nonfree firmwares on Android devices
Diffstat (limited to 'content')
-rw-r--r--content/nonfree-firmware-android.rst44
1 files changed, 44 insertions, 0 deletions
diff --git a/content/nonfree-firmware-android.rst b/content/nonfree-firmware-android.rst
new file mode 100644
index 0000000..5603408
--- /dev/null
+++ b/content/nonfree-firmware-android.rst
@@ -0,0 +1,44 @@
+:title: Nonfree firmwares for Android devices
+:date: 2017-01-07 22:27
+:tags: scripting, nonfree software
+:category: General
+:author: Wolfgang Wiedmeyer
+:status: published
+:summary: The following instructions make it possible to install nonfree firmware on Android devices. For now, only the Galaxy S3 (GT-I9300) is supported, but support for other devices can be added easily.
+
+The following instructions make it possible to install nonfree firmware on Android devices for the purpose of enabling certain functionalities. For now, only the Galaxy S3 (GT-I9300) is supported, but support for other devices can be added easily. Please see `Paul's blog post <http://code.paulk.fr/article16/missing-proprietary-firmwares-in-android-systems>`_ for the reasons why these instructions shouldn't be published on official documentation pages of free systems, but why it still makes sense to publish them elsewhere.
+
+Paul's script is compatible with CyanogenMod version 10.1.3 and 9.1.0. It extracts the firmwares from a CyanogenMod installation zip and either installs them with ADB or creates an installation zip with them. My implementation is intended to be compatible with CyanogenMod 13.0. It's possible to only select a certain functionality for which the firmwares should be installed. The firmwares are downloaded from a `repository <https://github.com/TheMuppets>`_, that hosts the firmware files for CyanogenMod builds, and they are installed with ADB. It's impractical to extract them from a CyanogenMod 13.0 installation zip because recent Android versions use complicated compression techniques that require tools which are usually not readily available as packages for GNU/Linux systems. Creating installation zips is also not easy anymore because the zip needs to be signed with a key that is trusted by the recovery. If your recovery stills just accepts any installation zip, then you are using an insecure recovery.
+
+Make sure that you have ADB and root access with ADB enabled.
+These steps are required:
+
+1. Clone the `firmwares_nonfree repository <https://code.fossencdi.org/firmwares_nonfree.git/>`_:
+
+ .. code-block:: console
+
+ $ git clone https://code.fossencdi.org/firmwares_nonfree.git
+
+2. Connect the device to your PC and check if the device is detected:
+
+ .. code-block:: console
+
+ $ adb devices
+
+ If the list of attached devices is empty, you will have to check your ADB setup first and figure out why the device doesn't get recognized.
+
+3. Run the script in the git repository with two arguments, the name of your device and the functionality you want to enable, e.g.:
+
+ .. code-block:: console
+
+ $ ./firmwares.sh i9300 wifi
+
+ This command will only install the firmware files that are needed to enable wifi. The firmware will be downloaded, pushed to the device and the device is rebooted. Use ``list`` as second argument to get a list of functionalities that can be enabled for the specific device. You can also specify ``all`` to install all firmware files which will enable all listed functionalities.
+
+4. If you want to remove a certain firmware again, you can do so by adding ``remove`` as third argument, e.g.:
+
+ .. code-block:: console
+
+ $ ./firmwares.sh i9300 front-camera remove
+
+ This command deletes the firmware files for the front camera from the device and reboots it.