You will need something from your Stock ROM first. Get them all and Try to modify it using the procedure.
# USEFUL TWRP RECOVERY FLAGS | |
# by ZawZaw @XDA-Developers | |
# Thanks to : @xda-developers for helps | |
# Add EXT4 support | |
TARGET_USERIMAGES_USE_EXT4 := true | |
# Disable/enable SELinux. Only suggested when you want to enable SELinux support | |
TWHAVE_SELINUX := true |
# urlretrieve.py - implement urllib.urlretrieve(url, filename) with requests | |
import contextlib | |
import urllib | |
import requests | |
def urlretrieve(url, filename): | |
with contextlib.closing(requests.get(url, stream=True)) as r: | |
r.raise_for_status() |
There are at least two valid, signed TLS certificates that are bundled with publicly available Netgear device firmware.
These certificates are trusted by browsers on all platforms, but will surely be added to revocation lists shortly.
The firmware images that contained these certificates along with their private keys were publicly available for download through Netgear's support website, without authentication; thus anyone in the world could have retrieved these keys.
When hosting a project on GitHub, it's likely you'll want to use GitHub Pages to host a public web site with examples, instructions, etc. If you're not using a continuous integration service like Travis, keeping your gh-pages site up to date requires continuous wrangling.
The steps below outline how to use Travis CI with GitHub Releases and GitHub Pages to create a "1-button" deployment workflow. After testing and running a release build, Travis will upload your release assets to GitHub. It will also push a new version of your public facing site to GitHub Pages.
Let's assume you are hosting a JavaScript project that will offer a single JavaScript file as a release asset. It's likely you'll organize your files like this.
When setting up (that's immediately when user enables it in settings) Opera VPN sends few API requests to https://api.surfeasy.com to obtain credentials and proxy IPs, see below, also see The Oprah Proxy.
The browser then talks to a proxy de0.opera-proxy.net
(when VPN location is set to Germany), it's IP address can only be resolved from within Opera when VPN is on, it's 185.108.219.42
(or similar, see below). It's an HTTP/S proxy which requires auth.
When loading a page with Opera VPN enabled, the browser sends a lot of requests to de0.opera-proxy.net
with Proxy-Authorization
request header.
The Proxy-Authorization
header decoded: CC68FE24C34B5B2414FB1DC116342EADA7D5C46B:9B9BE3FAE674A33D1820315F4CC94372926C8210B6AEC0B662EC7CAD611D86A3
(that's sha1(device_id):device_password
, where device_id
and device_password
come from the POST /v2/register_device
API call, please note that this decoded header is from another Opera installation and thus contains
<!-- Example #1 - no styling --> | |
Made with ❤ in Switzerland | |
<!-- Example #2 - inline-styled ❤ --> | |
Made with <span style="color: #e25555;">♥</span> in Switzerland | |
Made with <span style="color: #e25555;">♥</span> in Switzerland | |
<!-- Example #3 - CSS-style class for ❤ --> | |
<style>.heart{color:#e25555;}</style> | |
Made with <span class="heart">❤</span> in Switzerland |
<body> | |
<div class="alert-box"> | |
<span class="badge">Announcement</span> Some Text | |
</div> | |
</body> |
#!/bin/bash | |
TWRPCM10REPO=/data/repos/cm10-twrp | |
TWRPCM101REPO=/builds/cm10.1-twrp | |
TWRPOUTDIR=/home/bigbiff/twrp | |
cm101devices=('n7100' 't0ltecan' 't0lte' 't0ltetmo' 't0lteatt' 't0ltespr' 't0ltevzw' 't03gduoszn' 't0lteskt') | |
cm10devices=('quincyatt' 'quincytmo') | |
contains() { | |
local i j=$1 |