Skip to content

Instantly share code, notes, and snippets.

View obfusk's full-sized avatar
🏳️‍🌈
hacking ⇒ ¬sleeping 😸

FC (Fay) Stegerman obfusk

🏳️‍🌈
hacking ⇒ ¬sleeping 😸
View GitHub Profile
@obfusk
obfusk / wrapper-log
Last active February 27, 2024 01:09
+ git clone --recurse-submodules -b 1.0.0 -- https://github.com/FossifyOrg/File-Manager.git /build/repo
++ git rev-parse HEAD
+ test feef6998a0fc79aa859f54699d783df4f0a0c147 = feef6998a0fc79aa859f54699d783df4f0a0c147
+ '[' yes = yes ']'
+ git clone https://github.com/obfusk/gradle-wrapper-verify /tmp/gradle-wrapper-verify
Cloning into '/tmp/gradle-wrapper-verify'...
+ shopt -s globstar
+ /tmp/gradle-wrapper-verify/gradle-wrapper-verify ./gradle/wrapper/gradle-wrapper.jar
checking ./gradle/wrapper/gradle-wrapper.jar ...
OK
@obfusk
obfusk / check-apk-signing-block.py
Last active February 9, 2024 22:38
check APK Signing Block for Google/unknown blocks
#!/usr/bin/python3
# encoding: utf-8
# SPDX-FileCopyrightText: 2024 FC (Fay) Stegerman <flx@obfusk.net>
# SPDX-FileCopyrightText: 2024 Izzy
# SPDX-License-Identifier: GPL-3.0-or-later
import argparse
import logging
import os
import sys
@obfusk
obfusk / wkd.py
Created February 6, 2024 00:04
wkd encoding
import base64
import hashlib
import sys
t = str.maketrans("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567", "ybndrfg8ejkmcpqxot1uwisza345h769")
print(base64.b32encode(hashlib.sha1(sys.argv[1].encode().lower()).digest()).decode().translate(t))
@obfusk
obfusk / cat_sigblock.py
Last active February 3, 2024 23:35
APK signing block manipulation scripts
#!/usr/bin/python3
# encoding: utf-8
# SPDX-FileCopyrightText: 2024 FC (Fay) Stegerman <flx@obfusk.net>
# SPDX-License-Identifier: GPL-3.0-or-later
import apksigtool
import dataclasses
import sys
# Usage: cat_sigblock.py [--prepend] APK_A APK_B
@obfusk
obfusk / leaving-fdroid.md
Last active January 1, 2024 09:24
Leaving F-Droid

Edit: originally posted here on 2023-11-17.

Edit 2: "blocking protecting marginalised community members from abuse" refers to the events during the incident (which was never made public, which unfortunately leaves me unable to provide more detail) that prompted the creation of the Community Council to begin with.

Edit 3: please note that this statement was originally addressed to the F-Droid team, not a general audience.

Leaving F-Droid

With a heavy heart, I have no choice but to leave @fdroid, effective immediately.

@obfusk
obfusk / README.md
Last active December 31, 2023 07:34
baseline.profm not deterministic
@obfusk
obfusk / HOWTO.md
Last active December 15, 2023 15:08
HOWTO: diff & fix APKs for Reproducible Builds

HOWTO: diff & fix APKs for Reproducible Builds

NB: assumes signed APK from upstream named upstream-release.apk, and unsigned APK from F-Droid CI named fdroiddata-ci.apk.

NB: also assumes a working directory in which it is okay to create temporary files & directories.

Links

@obfusk
obfusk / build.gradle
Last active December 4, 2023 12:05
use apksigner instead of signingConfig in build.gradle
// See https://developer.android.com/studio/publish/app-signing#secure-shared-keystore
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties
def signedReleases = keystorePropertiesFile.exists()
if (signedReleases) {
println("Using ${keystorePropertiesFile} for release signingConfig...")
keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
@obfusk
obfusk / screen-quit.sh
Created October 24, 2023 21:45
quit screen session after command finishes successfully
do_stuff && screen -X -S $( screen -ls | awk '{print $1}' | grep "^$PPID\." ) quit
@obfusk
obfusk / catima-locale-diff.sh
Last active October 23, 2023 00:51
diff locales for catima
#!/bin/bash
diff -Naur \
<( sed -n '/name="locale_values"/,/string-array/p' < app/src/main/res/values/settings.xml \
| grep '<item>' | sed -r 's!.*>(.*)<.*!\1!' | sort | grep -v '^en$' ) \
<( ls app/src/main/res/values-* -d | sed 's!.*values-!!' | grep -Ev 'night|w600dp' ) \
| bat -p -l diff