* Package Broadcom Wi-Fi firmware from AOSP This uses a mirror of AOSP's platform/hardware/broadcom/wlan repo at version android-8.0.0_r12 (6c8ef5b600cec5d36a54a0276fe8c97b9ab8d6bb). This is needed as Nexus 6P uses a BCM4358, and the blob available in Alpine's linux-firmware package is old and vulnerable to Broadpwn. See #513. * device: angler: enable Wi-Fi and graphics output Changes: - Set resolution on bootup This is copied from the Nexus 5's init script. - Add Wi-Fi calibration file and change firmware path This is also based on the Nexus 5's implementation. - Enable CONFIG_VT and NFS in the kernel - Explicitly use identity touchscreen calibration - Rename the touchscreen udev rules - Enable msm-fb-refresher |
||
---|---|---|
aports | ||
keys | ||
pmb | ||
test | ||
.gitignore | ||
.travis.yml | ||
CONTRIBUTING.md | ||
LICENSE | ||
MANIFEST.in | ||
pmbootstrap.py | ||
README.md | ||
setup.cfg | ||
setup.py |
pmbootstrap
Introduction | Security Warning | Supported Devices |
Sophisticated chroot/build/flash tool to develop and install postmarketOS.
For in-depth information please refer to the postmarketOS wiki.
Requirements
- Linux distribution (
x86_64
oraarch64
)- Note: Windows subsystem for Linux (WSL) does not work! Please use VirtualBox instead.
- 2 GB of RAM recommended for compiling
- Python 3.4+
- OpenSSL
Usage
Assuming you have a supported device, you can build and flash a postmarketOS image by running through the following steps. For new devices check the porting guide.
First, clone the git repository and initialize your pmbootstrap environment:
$ git clone https://github.com/postmarketOS/pmbootstrap
$ cd pmbootstrap
$ ./pmbootstrap.py init
While running any pmbootstrap command, it's always useful to have a log open in a separate window where further details can be seen:
$ ./pmbootstrap.py log
It's now time to run a full build which will create the boot and system images:
$ ./pmbootstrap.py install
Once your device is connected and is ready to be flashed (e.g. via fastboot), you can run a flash of the kernel (boot) and system partitions:
$ ./pmbootstrap.py flasher flash_kernel
$ ./pmbootstrap.py flasher flash_system
After a reboot, the device will provide a USB network interface, which we request an IP from, and telnet into to open the full-disk encryption on the main system partition:
$ dhclient -v enp0s20f0u1
$ telnet 172.16.42.1
Trying 172.16.42.1...
Connected to 172.16.42.1.
Escape character is '^]'.
Enter passphrase for /dev/mapper/mmcblk0p25p2:
Connection closed by foreign host.
Once the partition has been unlocked it is possible to connect via SSH:
$ ssh user@172.16.42.1
Development
Testing
Install pytest
(via your package manager or pip) and run it inside the pmbootstrap folder.