Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Ruipeng Zhang ppoffice

🏠
Working from home
View GitHub Profile
@ppoffice
ppoffice / README.md
Last active Feb 7, 2021
A step by step guide to upgrade webview on an old Android Emulator
View README.md

Tools

  1. emulator (30.3.5) (via Android SDK)
  2. adb (30.0.5) (via Android SDK)
  3. apktool (2.5.0) and Java runtime
  4. zip (3.0)
  5. unzip (6.0)

Make sure you have JAVA_HOME and ANDROID_HOME environment variables correctly set.

@ppoffice
ppoffice / README.md
Last active Apr 13, 2021
Install Visual Studio Code (actually code-server) on Android
View README.md
  1. Install Termux, an Android terminal emulator that provides a Linux execution environment and various tools.

  2. Update system packages in Termux:

    $ pkg update -y
@ppoffice
ppoffice / cem_v1_to_v2.cpp
Created Apr 25, 2020
Convert Empire Earth CEM v1 model to v2 model
View cem_v1_to_v2.cpp
// Copyright 2020 ppoffice
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this softwareand associated documentation files(the "Software"), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and /or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions :
//
// The above copyright noticeand this permission notice shall be included in
@ppoffice
ppoffice / config.example.yaml
Last active Jan 10, 2020
Sectry Scenario Specs
View config.example.yaml
version: 1.0.0
clouds:
openstack:
security_groups:
- id: 637548c3-b5db-4ee2-94e6-e93bbb693eac
name: Default Security Group
rules:
- Ingress 0.0.0.0/0 TCP 80
- Ingress 0.0.0.0/0 TCP 443
- Egress 0.0.0.0/0
@ppoffice
ppoffice / main.sh
Last active Nov 4, 2019
LG Nexus 5 Ubuntu Xfce4 Desktop with X11 fbdev and evdev
View main.sh
# recompile kernel first with patch:
# https://github.com/postmarketOS/pmbootstrap/blob/4b10acc2535033414cd4f358433a51626096d7ce/aports/device/linux-lg-hammerhead/06_fix_mdss_fb_rgb_mode.patch
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8 \
-b marshmallow-mr1-release \
~/arm-eabi-4.8
git clone https://android.googlesource.com/kernel/msm \
-b android-msm-hammerhead-3.4-marshmallow-mr1 \
~/msm
git clone https://github.com/osm0sis/mkbootimg.git ~/mkbootimg
cd ~/msm
@ppoffice
ppoffice / asn1.py
Last active Nov 29, 2019
Textbook/RAW RSA & RSA with OAEP+SHA1+MGF1 Python Implementation
View asn1.py
from typing import Tuple
import pyasn1.codec.der.encoder
import pyasn1.type.univ
import base64
import rsa
def private_key_pem(n: int, e: int, d: int, p: int, q: int, dP: int, dQ: int, qInv: int) -> str:
'''Create a private key PEM file
@ppoffice
ppoffice / README.md
Last active Jan 16, 2021
How to setup a Mirai testbed
View README.md

Overview

  • CNC Server: 192.168.1.12:23 (cnc.local:23)
  • Report Server: 192.168.1.12:48101 (cnc.local:48101)
  • Loader Server: 192.168.1.13
  • Bot Binary Host: http://192.168.1.13:80/bins/mirai.*

Hosts Setup

Router

@ppoffice
ppoffice / 01_Android_LXC_Note.md
Last active Jul 3, 2020
LXC for Android 9.0.0 r18 Goldfish
View 01_Android_LXC_Note.md

Steps to build Android kernel and system for LXC:

  1. Download Android SDK, NDK, system and kernel source code;
  2. Download modified lxc and libcap source code (ppoffiec/lxc-android, ppoffice/libcap-android)
  3. Build Android system from source first so that we can link to its shared library when we build lxc (or maybe we don't have to);
  4. Modify Android kernel config and make sure lxc-checkconfig does not report any missing features. Then build kernel;
  5. Modify Android system/core/rootdir/init.rc according to init.rc.diff. Make sure you mount all the cgroup subsystems needed (cpu, cpuacct, cpuset, memory, pids, devices, freezer, blkio) under /sys/fs/cgruop, otherwise lxc won't find them;
  6. Rebuilt the Android system image so that the modified init.rc is in the image;
  7. Fire up the emulator with custom kernel (emulator -kernel kernel-file-path) and use adb shell and dmesg to check if everything is doing ok.
View gist:2706b5e4448e8a3638c974e64c88c2ad
# Get Pre-reqs
apt-get install libattr1-dev git unzip make gcc automake pkg-config
# Get Android NDK
cd /root
mkdir -p build && cd build
wget http://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip -O /tmp/android-ndk-r10e-linux-x86_64.zip
unzip /tmp/android-ndk-r10e-linux-x86_64.zip -d /root/build
# Set paths
@ppoffice
ppoffice / build.sh
Last active May 13, 2020
Minimal Linux Build Script
View build.sh
#!/bin/sh
# Modified from ivandavidov/minimal-linux-script
# https://github.com/ivandavidov/minimal-linux-script
# This script includes a dynamic linked busybox, openssl, python and
# network support
set -ex
KERNEL_VERSION=4.17.2
BUSYBOX_VERSION=1.28.4