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 |