Skip to content

Instantly share code, notes, and snippets.

View ungeskriptet's full-sized avatar
🏳️‍🌈

David Wronek ungeskriptet

🏳️‍🌈
View GitHub Profile
@ungeskriptet
ungeskriptet / README.md
Last active November 14, 2025 18:00
Create a bootable Windows USB flash drive on Linux without Ventoy

Create a bootable Windows USB flash drive on Linux without Ventoy

This guide will show you how to create a bootable Windows USB flash drive without Ventoy.

Make sure to replace /dev/sdX in the command with your actual block device. You can list all of your block devices using the command lsblk.

Step 1: Partitioning

We need a GPT partition table and two partitions:

  • 1 MiB partition with type EFI System
  • Remainder of the storage space with type Microsoft basic data
@ungeskriptet
ungeskriptet / itg2outfoxfavorites.py
Created September 27, 2025 18:43
Convert ITGmania favorites.txt to Project Outfox Stats.xml
#!/usr/bin/env python3
# Convert ITGmania favorites.txt to Project Outfox Stats.xml
# Usage: itg2outfoxfavorites.py <path to favorites.txt>
import sys
with open(sys.argv[1], 'r') as f:
lines = f.readlines()
counter = 0
for line in lines:
if not all(["---" in line, "Favorites" in line]):
@ungeskriptet
ungeskriptet / fritz_landevices_cleanup.py
Created January 16, 2025 19:01
FRITZ!Box cleanup script
from requests import get, post, put
from time import sleep
import hashlib
import xml.etree.ElementTree as ET
URL = 'https://fritz.box/login_sid.lua?version=2'
USERNAME = 'user'
PASSWORD = 'password'
def main():
@ungeskriptet
ungeskriptet / pixelpitch.py
Created December 22, 2024 16:46
Pixel pitch calculator (for Android)
#!/usr/bin/python
from math import trunc
import sys
if len(sys.argv) <= 1:
print('pixelpitch.py <width> <height> <size in inch>')
quit()
width = float(sys.argv[1])
height = float(sys.argv[2])
@ungeskriptet
ungeskriptet / samsung-inquiry.py
Last active August 25, 2025 16:44
Samsung inquiry script
#!/usr/bin/env python3
from selenium.common.exceptions import NoSuchElementException
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
import requests
import sys
@ungeskriptet
ungeskriptet / ia-check.py
Last active November 21, 2024 07:09
Python script to skip already uploaded files in an item on archive.org
#!/usr/bin/python
from internetarchive import upload
from random import randint
from requests import get
import hashlib
import sys
def info(text): print(f"\033[94mINFO: \033[00m{text}")
def warning(text): print(f"\033[93mWARNING: \033[00m{text}")
#!/bin/bash
(git --no-pager config --global --list | grep "trailer.changeid.key=Change-Id") && TRAILER_SET=1
[ -n $TRAILER_SET ] && git config --global --unset "trailer.changeid.key"
AUDIO=AUDIO.LA.9.0.r1-07900-lanai.0
CAMERA=CAMERA.LA.4.0.r2-07500-lanai.0
CV=CV.LA.2.0.r1-05000-lanai.0
DISPLAY=DISPLAY.LA.4.0.r2-08100-lanai.0
GRAPHICS=GRAPHICS.LA.14.0.r1-08400-lanai.0
@ungeskriptet
ungeskriptet / samfirm.py
Last active October 8, 2024 06:33
Samsung firmware downloader (warning! code quality isn't very good!)
#!/usr/bin/python -u
# Based on:
# https://github.com/DavidArsene/samfirm.js
# https://github.com/martinetd/samloader
# https://github.com/ysfchn/easyfirmware
from Cryptodome.Cipher import AES
from Cryptodome.Util.Padding import pad
from Cryptodome.Util.Padding import unpad
import base64
import hashlib
@ungeskriptet
ungeskriptet / README.md
Created August 17, 2024 13:13
WireGuard configs to bypass CGNAT

WireGuard configs to bypass CGNAT

This set of files will help you to connect to a network behind carrier-grade NAT using WireGuard. You'll be able to access the LAN of the WireGuard peer behind the CGNAT and route your entire internet traffic to it.

Setup

  • wireguard-hub.conf: This config is intended for the WireGuard peer that has access to a public IP address, e.g. VPS
  • openwrt.conf: This config is intended for the WireGuard peer behind the CGNAT, e.g. OpenWrt router or Raspberry Pi
  • client.conf: This config is inteded for a WireGuard peer that wants to access the LAN of the device behind the CGNAT and route its entire internet traffic to it, e.g. computer or mobile phone

Generating keys

@ungeskriptet
ungeskriptet / archinstall.md
Last active September 22, 2025 07:52
My personal Arch Linux installation guide for an UEFI install with UKI and optionally secure boot (archinstall.md)

David's personal Arch Linux installation guide

Note

This guide is meant for my personal use. If you're installing Arch Linux for the first time, please follow the official installation guide instead.

1. Flashing the ISO

  1. Download the latest ISO file from https://ftp.halifax.rwth-aachen.de/archlinux/iso/latest/archlinux-x86_64.iso
    • $ curl https://ftp.halifax.rwth-aachen.de/archlinux/iso/latest/archlinux-x86_64.iso -O
  2. Flash the ISO
    • $ cat archlinux-x86_64.iso | sudo tee /dev/sdX > /dev/null
  3. Verify the flashed image on the USB drive (optional)