Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor rewrite, plenty of new features #54

Open
wants to merge 35 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
9089663
ref: full rewrite with modular processing
relikd Jan 25, 2024
80cd07a
fix: move functions to corresponding class
relikd Jan 25, 2024
eb9ddce
chore: reduce polling
relikd Jan 25, 2024
22222e7
fix: disable downscaling for retina display
relikd Jan 25, 2024
7654784
feat: inline helper functions
relikd Jan 25, 2024
8ef12cd
feat: use zlib to unzip from ipa
relikd Jan 28, 2024
33f9062
chore: update changelog
relikd Jan 28, 2024
b37bb6f
fix: dont load plist if data is nil
relikd Jan 29, 2024
5ec9661
ref: date-string parser
relikd Jan 29, 2024
96495d9
feat: show iTunes Metadata + purchase information
relikd Jan 29, 2024
dc111a1
fix: remove potential leak
relikd Jan 29, 2024
4ed6614
chore: update settings + version bump
relikd Jan 29, 2024
da872e7
ref: rename ProvisionHidden and split div
relikd Jan 30, 2024
8a96cdf
feat: replace codesign sys-call with SecCodeSigning
relikd Jan 30, 2024
61b7cf2
style: remove css indentation
relikd Jan 30, 2024
7e61bc4
ref: naming convention for all hiddenDiv
relikd Jan 30, 2024
d46017e
doc: py script for app categories
relikd Jan 30, 2024
94c6454
fix: default case return
relikd Feb 4, 2024
9a76f08
feat: support for Asset.car icons
relikd Feb 4, 2024
f60808c
chore: script to test ProvisionQL on multiple files
relikd Feb 4, 2024
28c9fd5
fix: crash if binary cant be unzipped (utf8 chars)
relikd Feb 7, 2024
9e48576
fix: reintroduce unzip exclude matching
relikd Feb 7, 2024
16e7c1c
fix: fallback to device type iPhone
relikd Feb 11, 2024
59cbc68
style: indent with spaces
relikd Feb 12, 2024
a5418b4
ref: remove unused ZipEntry attributes
relikd Feb 14, 2024
2f55ccf
fix: empty plist data
relikd Feb 14, 2024
9806f20
fix: select shortest filepath in unordered list
relikd Feb 14, 2024
9f0b931
feat: try default names "Icon" and "icon"
relikd Feb 26, 2024
1dc774c
feat: use icon list to prevent "dead-links"
relikd Feb 27, 2024
9559cd5
chore: remove comment
relikd Feb 27, 2024
46e6309
feat: support for icons in subdirectories
relikd Feb 27, 2024
c179fb1
fix: avoid launch images
relikd Mar 17, 2024
dfd81d4
fix: image.size incorrect if initialized from data
relikd Mar 21, 2024
c1d5440
fix: add more icon sizes (<=iOS4)
relikd Mar 21, 2024
44f2a9f
doc: fix typo
relikd Apr 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# ProvisionQL

## Version 1.7.0

* New: show iTunes Metadata & purchase information
* New: use higher resolution app icon if available (try `iTunesArtwork`)
* New: show entitlements regardless of provisioning plist if available
* New: load icon from `Assets.car`
* Performance: unzip with zlib instead of sys-call
* Performance: parse html template tags with regex
* Performance: use `SecCodeSigning` instead of `codesign` sys-call
* Fix codesign unkown param on <10.15 (`--xml` flag)
* Fix crash if a plist key is not present (e.g. `CFBundleShortVersionString` for some old iOS 3.2 ipa)
* Fix fixed-width size for preview of app-icon (consistency)
* Fix `IconFlavor` attribute for thumbnail drawing in 10.15+
* Fix prefer icons without "small" suffix
* Minor html template improvements
* Some refactoring to reduce duplicate code

## Version 1.6.4

* Adds error handling to entitlements parsing ([#47](https://github.com/ealeksandrov/ProvisionQL/pull/47))
Expand Down
15 changes: 0 additions & 15 deletions NSBezierPath+IOS7RoundedRect/NSBezierPath+IOS7RoundedRect.h

This file was deleted.

49 changes: 0 additions & 49 deletions NSBezierPath+IOS7RoundedRect/NSBezierPath+IOS7RoundedRect.m

This file was deleted.

1 change: 1 addition & 0 deletions PrivateFrameworks/CoreUI.framework/Headers
54 changes: 54 additions & 0 deletions PrivateFrameworks/CoreUI.framework/Versions/A/Headers/CUICatalog.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#import <Foundation/Foundation.h>

@class NSBundle, NSCache, NSMapTable, NSString;
@class CUINamedImage, CUIStructuredThemeStore;

@interface CUICatalog: NSObject {
NSString * _assetStoreName;
NSBundle * _bundle;
unsigned int _fileHasDisplayGamutInKeySpace;
NSCache * _localObjectCache;
NSCache * _lookupCache;
NSCache * _negativeCache;
unsigned short _preferredLocalization;
unsigned int _purgeWhenFinished;
unsigned int _reserved;
NSMapTable * _storageMapTable;
unsigned long long _storageRef;
NSDictionary * _vibrantColorMatrixTints;
}

- (CUIStructuredThemeStore *)_themeStore;

+ (id)defaultUICatalogForBundle:(id)arg1;

- (id)initWithBytes:(const void*)arg1 length:(unsigned long long)arg2 error:(NSError **)arg3;
- (id)initWithName:(id)arg1 fromBundle:(id)arg2;
- (id)initWithName:(id)arg1 fromBundle:(id)arg2 error:(id*)arg3;
- (id)initWithURL:(id)arg1 error:(NSError **)arg2;

- (BOOL)imageExistsWithName:(id)arg1;
- (BOOL)imageExistsWithName:(id)arg1 scaleFactor:(double)arg2;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 appearanceName:(id)arg3;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 appearanceName:(id)arg4;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4 appearanceName:(id)arg5;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4 displayGamut:(long long)arg5 layoutDirection:(long long)arg6 sizeClassHorizontal:(long long)arg7 sizeClassVertical:(long long)arg8;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4 displayGamut:(long long)arg5 layoutDirection:(long long)arg6 sizeClassHorizontal:(long long)arg7 sizeClassVertical:(long long)arg8 appearanceName:(id)arg9;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4 displayGamut:(long long)arg5 layoutDirection:(long long)arg6 sizeClassHorizontal:(long long)arg7 sizeClassVertical:(long long)arg8 memoryClass:(long long)arg9 graphicsClass:(long long)arg10;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4 displayGamut:(long long)arg5 layoutDirection:(long long)arg6 sizeClassHorizontal:(long long)arg7 sizeClassVertical:(long long)arg8 memoryClass:(unsigned long long)arg9 graphicsClass:(unsigned long long)arg10 appearanceIdentifier:(long long)arg11 graphicsFallBackOrder:(id)arg12 deviceSubtypeFallBackOrder:(id)arg13;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4 displayGamut:(long long)arg5 layoutDirection:(long long)arg6 sizeClassHorizontal:(long long)arg7 sizeClassVertical:(long long)arg8 memoryClass:(unsigned long long)arg9 graphicsClass:(unsigned long long)arg10 graphicsFallBackOrder:(id)arg11 deviceSubtypeFallBackOrder:(id)arg12;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4 sizeClassHorizontal:(long long)arg5 sizeClassVertical:(long long)arg6;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 deviceSubtype:(unsigned long long)arg4 sizeClassHorizontal:(long long)arg5 sizeClassVertical:(long long)arg6 appearanceName:(id)arg7;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 deviceIdiom:(long long)arg3 layoutDirection:(long long)arg4 adjustRenditionKeyWithBlock:(id)arg5;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 displayGamut:(long long)arg3 layoutDirection:(long long)arg4;
- (CUINamedImage *)imageWithName:(id)arg1 scaleFactor:(double)arg2 displayGamut:(long long)arg3 layoutDirection:(long long)arg4 appearanceName:(id)arg5;
- (NSArray<CUINamedImage *> *)imagesWithName:(id)arg1;

- (NSArray<NSString *> *)allImageNames;
- (NSArray<NSString *> *)appearanceNames;

@end

Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#import <Foundation/Foundation.h>
#import <CoreUI/CUINamedLookup.h>

@interface CUINamedImage: CUINamedLookup {
struct _cuiniproperties {
unsigned int isVectorBased : 1;
unsigned int hasSliceInformation : 1;
unsigned int hasAlignmentInformation : 1;
unsigned int resizingMode : 2;
unsigned int templateRenderingMode : 3;
unsigned int exifOrientation : 4;
unsigned int isAlphaCropped : 1;
unsigned int isFlippable : 1;
unsigned int isTintable : 1;
unsigned int preservedVectorRepresentation : 1;
unsigned int _reserved : 16;
} _imageProperties;
double _scale;
}

@property (readonly) CGRect NS_alignmentRect;
@property (nonatomic, readonly) NSEdgeInsets alignmentEdgeInsets;
@property (nonatomic, readonly) int blendMode;
@property (nonatomic, readonly) CGImageRef croppedImage;
@property (nonatomic, readonly) NSEdgeInsets edgeInsets;
@property (nonatomic, readonly) int exifOrientation;
@property (nonatomic, readonly) BOOL hasAlignmentInformation;
@property (nonatomic, readonly) BOOL hasSliceInformation;
@property (nonatomic, readonly) CGImageRef image;
@property (nonatomic, readonly) long long imageType;
@property (nonatomic, readonly) BOOL isAlphaCropped;
@property (nonatomic, readonly) BOOL isFlippable;
@property (nonatomic, readonly) BOOL isStructured;
@property (nonatomic, readonly) BOOL isTemplate;
@property (nonatomic, readonly) BOOL isVectorBased;
@property (nonatomic, readonly) double opacity;
@property (nonatomic, readonly) BOOL preservedVectorRepresentation;
@property (nonatomic, readonly) long long resizingMode;
@property (nonatomic, readonly) double scale;
@property (nonatomic, readonly) CGSize size;
@property (nonatomic, readonly) long long templateRenderingMode;

- (id)baseKey;
- (CGRect)alphaCroppedRect;
- (CGImageRef)createImageFromPDFRenditionWithScale:(double)arg1;
- (CGImageRef)croppedImage;

- (id)initWithName:(id)arg1 usingRenditionKey:(id)arg2 fromTheme:(unsigned long long)arg3;

- (CGSize)originalUncroppedSize;
- (double)positionOfSliceBoundary:(unsigned int)arg1;

@end
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#import <Foundation/Foundation.h>

@class CUIRenditionKey;

@interface CUINamedLookup: NSObject <NSLocking> {
unsigned int _distilledInVersion;
CUIRenditionKey * _key;
NSString * _name;
unsigned int _odContent;
NSString * _signature;
unsigned long long _storageRef;
}

- (id)initWithName:(id)arg1 usingRenditionKey:(id)arg2 fromTheme:(unsigned long long)arg3;

@end
1 change: 1 addition & 0 deletions PrivateFrameworks/CoreUI.framework/Versions/Current
9 changes: 9 additions & 0 deletions PrivateFrameworks/CoreUI.framework/module.modulemap
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module CoreUI {
// umbrella header "CoreUI.h"
// Here is the list of your private headers.
header "Headers/CUICatalog.h"
header "Headers/CUINamedLookup.h"
header "Headers/CUINamedImage.h"

export *
}
Loading
Loading