User:Rage/Drafts/Amazon Fire Phone (Kodiak)

From Gentoo Wiki
Jump to:navigation Jump to:search
Warning, this page is a work in progress by Rage (talk | contribs). Treat its contents with caution.
This article is a stub. Please help out by expanding it - how to get started.


Root access is needed before continuing.

There are several methods for gaining root access, but unfortunately, they all seem to require a proprietary apk to do that.

I've typically factory reset a device, attempted to gain root access via such a tool, then flash with new rom. That way, those apps do not have access to any personal data. I can also verify that any left over surprises are overwritten by the new rom.

This project seeks to remedy this.


Installing sources from custom ebuild repositories

Currently, these kernel sources are only supported by an ebuild in the rage-overlay.

To enable a custom ebuild repository, create the proper repos.conf file and emerge it as shown here for the rage-overlay:

FILE /etc/portage/repos.conf/rage.conf
location = /usr/local/portage/rage
sync-type = git
sync-uri =
auto-sync = yes

For using sync-type = git the package dev-vcs/git needs to be installed. Alternatively, layman can be used for adding the repository.

root #emerge --ask sys-kernel/kodiak-sources

Installing crossdev for cross compiling

root #emerge --ask crossdev
root #crossdev --stable -v -t arm-linux-gnueabihf --gcc 4.9.4

Building a Kernel

root #eselect python set python2.7
root #emerge -av sys-devel/gcc
root #cd /usr/src/linux
root #zcat /proc/config.gz > .config
root #make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-


KERNEL drivers/usb/core/Kconfig
config USB_OTG
	bool "OTG support"
	depends on PM
	default n
	  The most notable feature of USB OTG is support for a
	  "Dual-Role" device, which can act as either a device
	  or a host. The initial role is decided by the type of
	  plug inserted and can be changed later when two dual
	  role devices talk to each other.

	  Select this only if your board has Mini-AB/Micro-AB


Due to the bootloader being locked on this device, kexec is need to execute custom kernels. However, it will need to be built as a module and loaded dynamically.

KERNEL Documentation/kdump/kdump.txt
System kernel config options
1) Enable "kexec system call" in "Processor type and features."

See also

External resources