Original source: https://github.com/0xced/iOS-Artwork-Extractor/wiki/Extracting-more-artwork
You can extract even more artwork if you decrypt and mount an iOS firmware (.ipsw file).
- ipsw_decrypt.py
- Python 3.2 (required by ipsw_decrypt.py)
// | |
// SpinlockTestTests.swift | |
// SpinlockTestTests | |
// | |
// Created by Peter Steinberger on 04/10/2016. | |
// Copyright © 2016 PSPDFKit GmbH. All rights reserved. | |
// | |
import XCTest |
Original source: https://github.com/0xced/iOS-Artwork-Extractor/wiki/Extracting-more-artwork
You can extract even more artwork if you decrypt and mount an iOS firmware (.ipsw file).
Project | # of Top 100 Free Apps (US) | |
---|---|---|
facebook-ios-sdk | 67 | |
Bolts-iOS | 48 | |
AFNetworking | 39 | |
Google-Mobile-Ads-SDK | 38 | |
Reachability (Apple) | 38 | |
Crashlytics | 37 | |
Flurry-iOS-SDK | 31 | |
CocoaPods | 30 | |
GoogleConversionTracking | 29 |
import Foundation | |
extension Dictionary { | |
mutating public func setValue(val: AnyObject, forKeyPath keyPath: String) { | |
var keys = keyPath.componentsSeparatedByString(".") | |
guard let first = keys.first as? Key else { print("Unable to use string as key on type: \(Key.self)"); return } | |
keys.removeAtIndex(0) | |
if keys.isEmpty, let settable = val as? Value { | |
self[first] = settable | |
} else { |
<?xml version="1.0" encoding="UTF-8"?> | |
<ufwb version="1.9"> | |
<grammar name="Decrypted iTunes Library" start="id:148" author="Mr. eXoDia" email="mr.exodia.tpodt@gmail.com" fileextension="itl" uti="com.apple.itunes.db"> | |
<description>Grammar for decrypted iTunes Library files.</description> | |
<structure name="Defaults" id="149" repeatmin="0" repeatmax="-1" encoding="ISO_8859-1:1987" endian="little" signed="no"/> | |
<structure name="iTunes Library" id="148" repeatmin="0" repeatmax="-1" extends="id:149" order="variable"> | |
<structref name="hdfm" id="152" repeatmin="0" repeatmax="-1" structure="id:151"/> | |
<structref name="msdh" id="154" repeatmin="0" repeatmax="-1" structure="id:153"/> | |
</structure> | |
<structure name="hdfm" id="151" length="this.headerLength" repeatmin="0" repeatmax="-1" extends="id:149" endian="big"> |
<?xml version="1.0" encoding="UTF-8"?> | |
<ufwb version="1.9"> | |
<grammar name="Encrypted iTunes Library" start="id:4" author="Mr. eXoDia" email="mr.exodia.tpodt@gmail.com" fileextension="itl" uti="com.apple.itunes.db"> | |
<description>Grammar for encrypted iTunes Library files.</description> | |
<structure name="Defaults" id="5" encoding="ISO_8859-1:1987" endian="little" signed="no"/> | |
<structure name="iTunes Library" id="4" extends="id:5"> | |
<structref name="hdfm" id="8" structure="id:7"/> | |
<binary name="encryptedData" id="9" length="remaining"> | |
<description>This chunk of data is encrypted using AES/ECB/NoPadding with the key "BHUILuilfghuila3". After decryption, you have to inflate the data using ZLIB. |
# Basic Strongswan ikev2 server setup | |
* paltform: atlantic.net ubuntu 14.04 x64 | |
* the commands below are run with root account | |
## Strongswan | |
``` | |
apt-get install strongswan | |
apt-get install iptables iptables-persistent | |
``` |
// | |
// Queue.swift | |
// NTBSwift | |
// | |
// Created by Kåre Morstøl on 11/07/14. | |
// | |
// Using the "Two-Lock Concurrent Queue Algorithm" from http://www.cs.rochester.edu/research/synchronization/pseudocode/queues.html#tlq, without the locks. | |
// should be an inner class of Queue, but inner classes and generics crash the compiler, SourceKit (repeatedly) and occasionally XCode. |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
# Create your superuser | |
$ mongo | |
> use admin | |
> db.createUser({user:"someadmin",pwd:"secret", roles:[{role:"root",db:"admin"}]}) | |
> exit | |
# Alias for convenience (optional and at your own risk) | |
$ echo 'alias mongo="mongo --port 27017 -u someadmin -p secret --authenticationDatabase admin"' >> ~/.bash_profile | |
$ source ~/.bash_profile |