noticket - updates
This commit is contained in:
@@ -4,8 +4,8 @@ date: 2019-01-16
|
||||
lastmod: 2019-02-11
|
||||
categories: ["Blog"]
|
||||
tags: ["photography"]
|
||||
images:
|
||||
- "/static/img/aperture-study/f17-f40-comp.jpg"
|
||||
cover:
|
||||
image: /static/img/aperture-study/f17-f40-comp.jpg
|
||||
---
|
||||
I found out recently that using the maximum aperture for a lens can have
|
||||
deminishing returns. Simply put: it makes the image look "soft", or otherwise
|
||||
|
||||
@@ -27,16 +27,12 @@ better understanding of the tools and methods used.
|
||||
|
||||
## Partitioning with `fdisk`
|
||||
|
||||
{{% admonition warning Warning %}}
|
||||
This operation will destroy any data on the device, please ensure to back up
|
||||
any data desired prior to this operation!
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition info Info %}}
|
||||
Replace instances of `/dev/sdN` with your actual device name (e.g. `/dev/sda`).
|
||||
References specific to partitions will be stated as such (e.g. `/dev/sdN1`,
|
||||
`/dev/sdN2`)
|
||||
{{% /admonition %}}
|
||||
|
||||
1. Remove any existing partitions on the drive:
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ tags: ["emacs", "linux"]
|
||||
categories: ["Tutorial"]
|
||||
contentCopyright: true
|
||||
hideHeaderAndFooter: false
|
||||
images:
|
||||
- "/static/img/emacs-clang-libopencm3/header-completion.png"
|
||||
cover:
|
||||
image: /static/img/emacs-clang-libopencm3/header-completion.png
|
||||
---
|
||||
With some minor dependencies, it's fairly straightforward in setting up your
|
||||
Emacs workflow to include IntelliSense-like auto-completion!
|
||||
@@ -114,13 +114,11 @@ The above assumes that `libopencm3` is also places within the project
|
||||
directory
|
||||
{{< /sub >}}
|
||||
|
||||
{{< admonition warning Note >}}
|
||||
There is a strange issue that is encountered with non-working completion for new
|
||||
header include statements. The workaround for this includes running `M-x irony-server-kill`after new header
|
||||
additions to your current working file. Irony's server is clever enough to
|
||||
restart itself after a completion request is triggered via `TAB` so this is a
|
||||
fairly uninvolved workaround.
|
||||
{{< /admonition >}}
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@@ -92,43 +92,34 @@ this via:
|
||||
- **ArchLinux:** `sudo update-ca-trust`
|
||||
- **Debian/Ubuntu, RHEL:** `sudo update-ca-certificates`
|
||||
|
||||
{{< admonition tip "CA Path" >}}
|
||||
On my system the full path to the CA certs is:
|
||||
|
||||
- `/etc/ca-certificates/extracted/cadir/sks-keyservers.net_CA.pem`
|
||||
|
||||
{{< /admonition >}}
|
||||
|
||||
Two following parameters should be added to your `~/.gnupg` configuration files:
|
||||
|
||||
### GnuPG Versions >2.1
|
||||
|
||||
{{< admonition note "gpg.conf" >}}
|
||||
|
||||
```text
|
||||
keyserver hkps://hkps.pool.sks-keyservers.net
|
||||
```
|
||||
|
||||
{{< /admonition >}}
|
||||
|
||||
{{< admonition note "dirmngr.conf" >}}
|
||||
|
||||
```text
|
||||
hkp-cacert /etc/ca-certificates/path/to/CA.pem
|
||||
```
|
||||
|
||||
{{< /admonition >}}
|
||||
|
||||
### GnuPG Versions <2.1
|
||||
|
||||
{{< admonition note "gpg.conf" >}}
|
||||
|
||||
```text
|
||||
keyserver hkps://hkps.pool.sks-keyservers.net
|
||||
keyserver-options ca-cert-file=/path/to/CA/sks-keyservers.netCA.pem
|
||||
```
|
||||
|
||||
{{< /admonition >}}
|
||||
|
||||
## *Optional* - Ensure keys refreshed through keyserver
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ date: 2018-01-11
|
||||
lastmod: 2019-01-16
|
||||
categories: ["Blog"]
|
||||
tags: ["electronics"]
|
||||
images:
|
||||
- "/static/img/headphone-fix/IMG_7505.jpg"
|
||||
cover:
|
||||
image: /static/img/headphone-fix/IMG_7505.jpg
|
||||
---
|
||||
A colleague offered a pair of Bern Bluetooth drop-in headphones to me fore free,
|
||||
with the catch being: _I had to fix them_
|
||||
@@ -60,7 +60,7 @@ search of `AIWI TI` (_as shown in the photograph_) resulted
|
||||
in [the following datasheet](http://www.ti.com/lit/ds/symlink/tpa6132a2.pdf)
|
||||
which verified that to be the case.
|
||||
|
||||
<center></center>
|
||||

|
||||
|
||||
**Bingo!** Now knowing the pinout, I could use my trusty multimeter (_a Fluke
|
||||
115_) to test continuity of the circuit from the known-good and the now
|
||||
|
||||
@@ -14,11 +14,9 @@ from WordPress)
|
||||
<!--more-->
|
||||
# Disclaimer
|
||||
|
||||
{{< admonition warning "Out of Date" >}}
|
||||
The information in this article is **out-of-date**. I am, and have been, using my
|
||||
own fork of the [hugo-even-theme](https://gitlab.com/bdebyl/hugo-theme-even) on
|
||||
my [GitLab](https://gitlab.com/bdebyl) profile.
|
||||
{{< /admonition >}}
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,154 +0,0 @@
|
||||
---
|
||||
title: "Installing LineageOS Unofficial on Pixel 3a"
|
||||
date: 2020-07-13
|
||||
lastmod: 2020-07-13
|
||||
draft: false
|
||||
tags: ["android", "security", "hacking"]
|
||||
categories: ["Tutorial"]
|
||||
contentCopyright: true
|
||||
hideHeaderAndFooter: false
|
||||
images:
|
||||
- "/static/img/lineageos-pixel3a/lineage-settings.png"
|
||||
---
|
||||
{{< admonition warning "Out of Date" >}}
|
||||
This guide is now out of date since LineageOS officially supports the Pixel 3a,
|
||||
see more here: <https://wiki.lineageos.org/devices/sargo/install>
|
||||
{{< /admonition >}}
|
||||
|
||||
In this post I aim to highlight my findings in deciding to go through the
|
||||
process of installing LineageOS on my Pixel 3a. Currently, LineageOS does not
|
||||
officially support the Pixel 3a. However, InvisibleK (Dan Pasanen) does host
|
||||
updated versions of his unofficial LineageOS build for the Pixel 3a complete
|
||||
with a custom recovery to utilize for this purpose!
|
||||
|
||||
<!--more-->
|
||||
|
||||
{{< thumbgallery >}}
|
||||
{{< thumb src="/static/img/lineageos-pixel3a/lineage-settings.png"
|
||||
alt="Screenshot showing the LineageOS version and other LineageOS settings on the Pixel 3a" >}}
|
||||
{{< thumb src="/static/img/lineageos-pixel3a/lineage-trust.png"
|
||||
alt="Screenshot showing the LineageOS Trust feature" >}}
|
||||
{{< /thumbgallery >}}
|
||||
|
||||
# Thank You
|
||||
|
||||
Before going on any further, I'd like to take a moment to give my sincere thanks
|
||||
to InvisibleK (Dan Pasanen). Having to set up the entire custom build for Pixel
|
||||
3a of LineageOS myself would add far more overhead in the overall simple task in
|
||||
trying to get LineageOS to work on a Pixel 3a!
|
||||
|
||||
[**tl;dr**](#flash-custom-recovery)
|
||||
|
||||
# Preface
|
||||
|
||||
There are plenty of guides out there on how to install and set up ADB and
|
||||
Fastboot on your host machine. For me, on Arch Linux, this was as simple as
|
||||
running `pacman -S android-tools`. However, should you be on MacOS or Windows
|
||||
you may have to find resources on how to go about this. I do not intend to go
|
||||
over this here -- _sorry_
|
||||
|
||||
Additionally, this _guide_ also assumes the reader has some familiarity with ADB
|
||||
and/or Fastboot.
|
||||
|
||||
# Source Files
|
||||
|
||||
If you, the reader, know what you're doing and simply just require the files
|
||||
for your Pixel 3a they can be found here:
|
||||
|
||||
- <https://updater.invisiblek.org/sargo>
|
||||
|
||||
# Installation
|
||||
|
||||
{{< admonition warning "Warning!" >}}
|
||||
If it isn't abundantly clear by now, be aware that you **will be destroying all
|
||||
the data currently on your Pixel 3a** in the process of installing LineageOS on
|
||||
your device! Stop now and back up any files, 2FA codes, or other prior to
|
||||
proceeding.
|
||||
{{< /admonition >}}
|
||||
|
||||
## Note about TWRP
|
||||
|
||||
As of writing this, TWRP[^1] (_a custom recovery commonly used in custom OS
|
||||
installation_) does not support Android 10. This would have been the preferred
|
||||
for a custom recovery, though not strictly required. Since we will be installing
|
||||
LineageOS 17.1 for Android 10 we cannot use TWRP.
|
||||
|
||||
## Flash to Stock
|
||||
|
||||
Google is kind enough to provide a variety of versions of the stock images for
|
||||
the Pixel devices. In my process of installing LineageOS, as it will be on
|
||||
Android 10, I made sure to flash to the latest stock version of Pixel 3a Android
|
||||
10. Do note that the versions are listed in reverse order, with the latest being
|
||||
found in the bottom-most row.
|
||||
|
||||
- <https://developers.google.com/android/images>
|
||||
|
||||
Additionally, Google provides a helper script `flash-all` that I highly
|
||||
recommend running as-is to flash your Pixel 3a to stock. This can take a few
|
||||
minutes to complete.
|
||||
|
||||
## Flash Custom Recovery
|
||||
|
||||
Using InvisibleK's build page, you'll find the required custom recovery image
|
||||
for flashing found at the bottom of the list of zip files marked with a lone
|
||||
"download" link.
|
||||
|
||||
Flash it via the following steps:
|
||||
|
||||
1. Reboot to recovery
|
||||
|
||||
```bash
|
||||
adb reboot bootloader
|
||||
```
|
||||
|
||||
1. Unlock the bootloader if the 'Status' is locked:
|
||||
|
||||
```bash
|
||||
fastboot flashing unlock
|
||||
```
|
||||
|
||||
1. Flash the custom recovery (_make sure to replace `N` with the version you
|
||||
downloaded, mine was '4'_)
|
||||
|
||||
```bash
|
||||
fastboot flash boot sargo-recovery-eng-N.img
|
||||
```
|
||||
|
||||
1. Boot the custom recovery either by re-entering recovery mode or fastboot --
|
||||
make sure to wait for it to enter Android Recovery after
|
||||
|
||||
```bash
|
||||
fastboot boot sargo-recovery-eng-N.img
|
||||
```
|
||||
|
||||
## Install LineageOS
|
||||
|
||||
Now that the custom recovery is set up and booted into, we're ready to install LineageOS!
|
||||
|
||||
1. **Important!** Once in recovery, ensure to `Wipe data/factory reset` prior to
|
||||
proceeding.
|
||||
1. Select `Apply update from ADB`
|
||||
1. ADB Sideload the version, if not latest, of LineageOS you want for your Pixel
|
||||
3a
|
||||
|
||||
```bash
|
||||
adb sideload lineage-17.1-2020517-UNOFFICIAL-sargo.zip
|
||||
```
|
||||
|
||||
1. Wait for installation to complete then select 'Reboot system now' from the
|
||||
recovery menu
|
||||
1. **Enjoy LineageOS!**
|
||||
|
||||
## Verification
|
||||
|
||||
Once in LineageOS, you can browse the settings to verify the installation and
|
||||
set up Trust the preferred way. Personally, I chose to leave the defaults.
|
||||
|
||||
# Bugs / Issues
|
||||
|
||||
I plan to keep this list of bugs and issues I discover up to date, but this is
|
||||
what I have encountered so far:
|
||||
|
||||
- WiFi calling does not seem to work
|
||||
|
||||
[^1]: [Team Win Recovery Project](https://twrp.me/)
|
||||
@@ -67,10 +67,8 @@ It may be worth mentioning, to folks less familiar with `awk`, that the
|
||||
being piped into `sha1sum`. I discovered incorrect `sha1sum` outputs **without**
|
||||
`FNR==1` resulting in a useless password check!
|
||||
|
||||
{{< admonition note Note >}}
|
||||
`IFS=` would not have fixed the above newline issue, as the problem stems
|
||||
from the output of `pass "$p"` and **not** the filenames.
|
||||
{{< /admonition >}}
|
||||
|
||||
That takes care of gathering our passwords, but we'll revisit this again in the
|
||||
next part.
|
||||
@@ -117,10 +115,9 @@ it's weak (_i.e. "Exists in attack dictionary", "Too short", etc._) was to use
|
||||
well-documented or fully-fledged application to fully determine password
|
||||
strength though for my purposes it will be good enough (_I don't care to write
|
||||
my own version of this, yet.._).
|
||||
{{< admonition note Note >}}
|
||||
|
||||
I made this part of the script **optional**, as not every user would want to
|
||||
install `cracklib` on their system.
|
||||
{{< /admonition >}}
|
||||
|
||||
This addition was made in the following order:
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ tags: ["libopencm3", "stm32", "tutorial"]
|
||||
categories: ["Tutorial"]
|
||||
contentCopyright: true
|
||||
hideHeaderAndFooter: false
|
||||
images:
|
||||
- "/static/img/stm32-examples/part0/stm32-basic-gpio-leds.jpeg"
|
||||
cover:
|
||||
image: /static/img/stm32-examples/part0/stm32-basic-gpio-leds.jpeg
|
||||
---
|
||||
One of the simplest projects to get started with the STM32 microcontroller
|
||||
series: turn on the lights!
|
||||
@@ -17,21 +17,12 @@ series: turn on the lights!
|
||||
{{< thumb src="/static/img/stm32-examples/part0/stm32-basic-gpio-leds.jpeg"
|
||||
alt="Photo of STM32 discovery board with illuminated green and blue LEDs" >}}
|
||||
|
||||
{{< admonition warning "Windows Users" >}}
|
||||
This series of write-ups assumes the reader is on a Linux operating
|
||||
system. Windows users _can_ utilize the [**Windows Subsystems for
|
||||
Linux**](https://docs.microsoft.com/en-us/windows/wsl/install-win10) though your
|
||||
mileage may vary!
|
||||
|
||||
{{< /admonition >}}
|
||||
|
||||
# Straight to the Chase
|
||||
|
||||
For those that want to cut to the chase and save time, here is the full source
|
||||
code with friendly names to get you started:
|
||||
|
||||
{{< admonition note "Source Code" true >}}
|
||||
|
||||
```C
|
||||
#include <libopencm3/stm32/gpio.h>
|
||||
#include <libopencm3/stm32/rcc.h>
|
||||
@@ -50,8 +41,6 @@ int main(void) {
|
||||
}
|
||||
```
|
||||
|
||||
{{< /admonition >}}
|
||||
|
||||
# Getting Started with libopencm3
|
||||
|
||||
[libopencm3](https://github.com/libopencm3/libopencm3) is a very powerful,
|
||||
@@ -127,11 +116,9 @@ Makefile's variables of things you may want to change:
|
||||
|
||||
# Explanation
|
||||
|
||||
{{< admonition info "Naming Convention" >}}
|
||||
As a note to the reader: below I will not refer to the GPIO port or pins using
|
||||
the `#define` friendly names from above. This is purely for the sake
|
||||
of clarity in hopes of avoiding confusion.
|
||||
{{< /admonition >}}
|
||||
|
||||
Although the source code is fairly simple, lets dive into it at least
|
||||
_somewhat_.
|
||||
|
||||
@@ -6,8 +6,8 @@ tags: ["libopencm3", "stm32", "tutorial"]
|
||||
categories: ["Tutorial"]
|
||||
contentCopyright: true
|
||||
hideHeaderAndFooter: false
|
||||
images:
|
||||
- "/static/img/stm32-examples/part1/blinky.gif"
|
||||
cover:
|
||||
image: /static/img/stm32-examples/part1/blinky.gif
|
||||
---
|
||||
After having reviewed [**Part 0**](/post/stm32-part0) of this series, we can now
|
||||
explore controlling GPIO with the hardware timers! Other tutorials have used the
|
||||
@@ -26,8 +26,6 @@ timers and their associated GPIO ports with Alternate Function modes.
|
||||
For those that want to cut to the chase and save time, here is the full source
|
||||
code with friendly names to get you started:
|
||||
|
||||
{{< admonition note "Source Code" true >}}
|
||||
|
||||
```C
|
||||
#include <libopencm3/stm32/gpio.h>
|
||||
#include <libopencm3/stm32/rcc.h>
|
||||
@@ -79,8 +77,6 @@ int main(void) {
|
||||
}
|
||||
```
|
||||
|
||||
{{< /admonition >}}
|
||||
|
||||
# Set up the GPIO
|
||||
|
||||
Assuming the reader is either familiar with GPIO setup for the STM32F0, or has
|
||||
@@ -107,10 +103,8 @@ For accomplishing this, a few things need to happen:
|
||||
1. The desired GPIO pins need to be set to `GPIO_MODE_AF` in `gpio_mode_setup()`
|
||||
1. The alternate function mode number `GPIO_AFx` has to be set for the pins using `gpio_set_af()`
|
||||
|
||||
{{< admonition warning "Note for Different STM32Fx Microcontrollers" >}}
|
||||
Review the datasheet for the specific **STM32Fx** microcontroller being
|
||||
programmed, as the Alternate Function mappings may be _significantly_ different!
|
||||
{{< /admonition >}}
|
||||
|
||||
## GPIO Alternate Function Setup
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ date: 2019-02-28
|
||||
lastmod: 2019-02-28
|
||||
categories: ["Blog"]
|
||||
tags: ["electronics"]
|
||||
images:
|
||||
- "/static/img/thinkpad-usb-fix/DSC04781.jpg"
|
||||
cover:
|
||||
image: /static/img/thinkpad-usb-fix/DSC04781.jpg
|
||||
---
|
||||
From the moment that I first had my (_used_) ThinkPad X220, the bottom-right USB
|
||||
port nearest to the SD card reader had been broken. The pad (_or bolster_) was
|
||||
|
||||
@@ -13,10 +13,8 @@ is done!
|
||||
|
||||
<!--more-->
|
||||
|
||||
{{< admonition info Info >}}
|
||||
If the reader is unfamiliar with OpenPGP, it's suggested to check out the prior
|
||||
write-up on this blog: [**OpenPGP Best Practices (and Git)**](/post/gpg_best_practices_and_git/)
|
||||
{{< /admonition >}}
|
||||
|
||||
# Importing Secret Keys
|
||||
|
||||
|
||||
Reference in New Issue
Block a user