Skip to content

Instantly share code, notes, and snippets.

View kasnder's full-sized avatar
🔒

Konrad Kollnig kasnder

🔒
View GitHub Profile
@kasnder
kasnder / grant_ios_local_network_permission.sh
Created March 10, 2023 12:11
Grant the local network permission to an iOS app. More permissions here: https://gist.github.com/kasnder/3eb32449512a4dba4a92949c8d337a92
#!/bin/bash
# Todo: This currently fails to update the file signature. It still seems to work but should not be used on a production device.
# Usage:./grant_ios_local_network_permission.sh.sh [bundleId]
# Example: ./grant_ios_local_network_permission.sh.sh com.spotify.client
if [ -z "$1" ]; then
echo "Please pass bundleId"
exit -1
@kasnder
kasnder / keybase.md
Created December 9, 2022 09:54
Keybase

Keybase proof

I hereby claim:

  • I am kasnder on github.
  • I am kkollnig (https://keybase.io/kkollnig) on keybase.
  • I have a public key ASCIm7oChhTGxAbhihcGtb6sti7I_thSsWJKIaNlggKnVgo

To claim this, I am signing this object:

@kasnder
kasnder / 1_grant_ios_notification_permission.sh
Last active May 6, 2022 23:04
Grant the notification permission to an iOS app. More permissions here: https://gist.github.com/kasnder/3eb32449512a4dba4a92949c8d337a92 Raw
# This script runs on macOS
# One needs a working, passwordless SSH login with login 'ios' on a jailbroken iOS 14.+
# One also needs Activator and ActivatorCrashFix14: https://stackoverflow.com/questions/21706050/how-to-unlock-ios-screen-programmatically)
# Backup and preparation
ssh ios "cp -n /var/mobile/Library/BulletinBoard/VersionedSectionInfo.plist ~/VersionedSectionInfo.plist.bak"
scp ios:/var/mobile/Library/BulletinBoard/VersionedSectionInfo.plist ./VersionedSectionInfo2.plist
# Prepare notification settings
/usr/libexec/PlistBuddy -c "Set :\$objects:2 $appId" `pwd`/base2.plist
@kasnder
kasnder / snippet.tex
Last active May 6, 2022 22:59
Responsive figures for ACM TAPS submission. UPDATE: While this script theoretically works, the TAPS system is actually not compatible with it (despite it being legitimate Latex code).
%insert before \begin{document}
\usepackage{wrapfig}
\makeatletter%
\newenvironment{responsivefig}[2]{%
\if@twocolumn%
\begin{figure}%
\else%
\wrapfigure{#1}{#2}%
@kasnder
kasnder / grant_ios_location_permission.sh
Last active May 12, 2024 20:41
Grant the location permission to an iOS app. More permissions here: https://gist.github.com/kasnder/3eb32449512a4dba4a92949c8d337a92
#!/bin/bash
# Todo: This currently fails to replace an existing entry in the location permission database. Would be better add to the end of the clients.plist file.
# Usage:./grant_ios_location_permission.sh [bundleId]
# Example: ./grant_ios_location_permission.sh com.spotify.client
# Requirements:
# - iOS device with checkra1n jailbreak (tested on 14.8)
# - Installed `sqlite3` on iOS device from Cydia
#!/bin/bash
# Usage:./grant_ios_permissions.sh [bundleId]
# Example: ./grant_ios_permissions.sh com.spotify.client
echo "This does not grant location, notification or local network permission. You can grant location permission with this script https://gist.github.com/kasnder/91a64a555e962d08cd05b52f7114b897 and the notifications permission with this script https://gist.github.com/kasnder/c17752607486042fc4f8bd4f61bb2c43 and local network permission with this script https://gist.github.com/kasnder/7076fe8eaea51948e5cda7a01e343ff5"
# Requirements:
# - iOS 14.8 device with checkra1n jailbreak
# - Installed `sqlite3` on iOS device from Cydia
@kasnder
kasnder / compare_disconnect.py
Last active August 15, 2020 11:09
Checks that https://github.com/mozilla-services/shavar-prod-lists is up-to-date with Disconnect blacklist
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import urllib.request, json
import argparse
parser = argparse.ArgumentParser(description='Compare Shavar and Disconnect.me blacklist.')
parser.add_argument("-f", "--file", help="blacklist to verify")
args = parser.parse_args()
@kasnder
kasnder / mapping_android_ios_categories.py
Created June 15, 2020 13:30
Super genres from "Third Party Tracking in the Mobile Ecosystem" by Binns et al. adopted to iOS
super_genres = {
'ART_AND_DESIGN': 'Art & Photography',
'AUTO_AND_VEHICLES': 'Productivity & Tools',
'BEAUTY': 'Health & Lifestyle',
'BOOKS_AND_REFERENCE': 'Productivity & Tools',
'BUSINESS': 'Productivity & Tools',
'COMICS': 'Games & Entertainment',
'COMMUNICATION': 'Communication & Social',
'DATING': 'Communication & Social',
'EDUCATION': 'Education',
@kasnder
kasnder / helpers.ts
Last active January 21, 2020 12:16
Some TypeScript code that I've use repeatedly
const fs = require('fs');
const parseDomain = require("parse-domain");
function readJson(filename) {
return JSON.parse(
fs.readFileSync(filename)
);
}
function getDomain(url) {
@kasnder
kasnder / top_senteces_from_text.py
Last active January 7, 2020 15:31
Attempt to classify top sentences in the Wikipedia article on New York
# Authored by Konrad Kollnig
# Oxford, 20 April 2019
import wikipedia
from nltk.tokenize import sent_tokenize, RegexpTokenizer
from nltk.corpus import stopwords
from collections import defaultdict
import math
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer