apple-data 0.1.0 → 1.0.391

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 364470e15839f7c778c71e079e71b390ce25f658badad6fa75dedd951f76aea8
4
- data.tar.gz: b42d763751fba1422c89902c3b8291c368164e370db2ef473b931a34b8ed5f56
3
+ metadata.gz: 679cf0b46aaf202eb833bd59ad432e23e397dff04a0c816f10ecb60ceaba379e
4
+ data.tar.gz: b86753ebca45d2306a5ebfe484561db25d840a2677e8cb9c7ab89787d6450683
5
5
  SHA512:
6
- metadata.gz: ced7544c4aa23fc1f7fcfde68387726ce8aa7f636be4921deb020801a04b7c82cc25bd3221691c263ea1f8f9b9b0bb9d4f0c157c246aee21e3887fae65034f36
7
- data.tar.gz: acef047056e1b709c6564c05c2dc59a285aeb5c9a5e9c5cf093676ee8f1567fcd572f436ef969666f65c532aac7d4d7cb1cc61b4a03c909a11eac9c338a56a3e
6
+ metadata.gz: c656b7690bdf0d4515aa2afc55c01b14c3f7e11de767bb5eb0fd08d5ea075ebde7cf7b72b3edbf023c306f7aab44a806b9c26a1a53fa79b573b927dc922c9014
7
+ data.tar.gz: c77c4e78852f89aa6913a75215c236546d1cf6ea90c1180fefc01da753471cabf926f6a7658d2bac0fb697a3a59d01524abd9f4d4fa958969179e04d6d1f2c01
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class BootArgsData < DataFile
4
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Factory Device Restore
4
+ class FDRData < DataFile
5
+ def initialize
6
+ super 'fdr.yaml'
7
+
8
+ @data ||= {}
9
+
10
+ @data['properties'] = []
11
+ end
12
+
13
+ def ensure_property(prop)
14
+ prop_instance = @data['properties'].find { |p| p['name'] == prop }
15
+ unless prop_instance
16
+ prop_instance = {}
17
+ prop_instance['name'] = prop
18
+ prop_instance['description'] = nil
19
+ @data['properties'] << prop_instance
20
+ end
21
+ prop_instance
22
+ end
23
+
24
+ def data
25
+ @data['properties'].sort_by! { |prop| prop['name'] }
26
+
27
+ @data
28
+ end
29
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Data file for the IOReg data
4
+ class IORegData < DataFile
5
+ def initialize
6
+ super 'ioreg.yaml'
7
+
8
+ @classes = []
9
+
10
+ @data['classes'].each do |single_class|
11
+ @classes << IORegClass.load_one(single_class)
12
+ end
13
+ end
14
+
15
+ def data
16
+ @data = {}
17
+ @data['classes'] = @classes.map(&:to_h)
18
+ end
19
+ end
20
+
21
+ # A single IOKit class
22
+ class IORegClass
23
+ attr_accessor :description, :name, :parents, :known_names
24
+
25
+ def initialize(klass_name)
26
+ @name = klass_name
27
+ @parents = []
28
+ end
29
+
30
+ def self.for_name(name)
31
+ @instances ||= {}
32
+
33
+ @instances[name] = IORegClass.new name unless @instances.key? name
34
+
35
+ @instances[name]
36
+ end
37
+
38
+ def self.values
39
+ @instances.values.sort_by(&:name)
40
+ end
41
+
42
+ def self.load_one(hash)
43
+ instance = for_name hash['name']
44
+ instance.description = hash['description']
45
+ instance.parents = hash['parents']
46
+ instance.known_names = (hash['known_names'] || []).sort
47
+ end
48
+
49
+ def to_h
50
+ { 'name' => @name, 'description' => @description, 'parents' => @parents, 'known_names' => @known_names }
51
+ end
52
+
53
+ def user_client?
54
+ @parents.include? 'IOUserClient'
55
+ end
56
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Schema file for the `lockdownd.yaml` file
4
+ class LockdownData < DataFile
5
+ def initialize
6
+ super 'lockdownd.yaml'
7
+ @data ||= {}
8
+ @data['clients'] ||= []
9
+ @data['domains'] ||= []
10
+ end
11
+
12
+ def ensure_client(client)
13
+ @data['clients'] << client unless @data['clients'].include? client
14
+ end
15
+
16
+ def ensure_domain_has_property(domain, property, _type = nil)
17
+ domain_instance = get_domain domain
18
+
19
+ return unless property
20
+
21
+ domain_instance['properties'] << property unless domain_instance['properties'].include? property
22
+ end
23
+
24
+ def get_domain(domain)
25
+ result = @data['domains'].find { |d| d['name'] == domain }
26
+ unless result
27
+ result = {}
28
+ result['name'] = domain
29
+ @data['domains'] << result
30
+ end
31
+ result['description'] ||= nil
32
+ result['properties'] ||= []
33
+ result
34
+ end
35
+
36
+ def data
37
+ @data['clients'].sort!
38
+
39
+ @data['domains'].each do |domain|
40
+ domain['properties'].sort!
41
+ end
42
+
43
+ @data['domains'].sort_by! { |d| d['name'] }
44
+
45
+ @data
46
+ end
47
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MachoData < DataFile
4
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AppleData
4
+ VERSION = '1.0.391'
5
+ end
data/lib/apple_data.rb ADDED
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'apple-data/boot_args'
4
+ require 'apple-data/fdr'
5
+ require 'apple-data/ioreg'
6
+ require 'apple-data/macho'
7
+ require 'apple-data/lockdown'
data/share/cores.yaml CHANGED
@@ -1,29 +1,89 @@
1
-
2
1
  ---
2
+ description: attributes about various Apple SoCs and Boards
3
+ credits:
4
+ templates:
5
+ - &checkm8_payload_arm64
6
+ payload_offset: 0x180
7
+ payload_size: 0x240
8
+ - &checkm8_payload_armv7
9
+ payload_offset: 0x180
10
+ payload_size: 0x140
11
+ - &usb_magic_32
12
+ exec_magic: 0x65786563
13
+ done_magic: 0x646F6E65
14
+ memc_magic: 0x6D656D63
15
+ mems_magic: 0x6D656D73
16
+ - &usb_magic_64
17
+ exec_magic: 0x6578656365786563
18
+ done_magic: 0x646F6E65646F6E65
19
+ memc_magic: 0x6D656D636D656D63
20
+ mems_magic: 0x6D656D736D656D73
21
+ - &dfu_load_s894x
22
+ dfu_image_base: 0x34000000
23
+ dfu_load_base: 0x9FF00000
24
+ recovery_image_base: 0x9FF00000
25
+ recovery_load_base: 0x80000000
26
+ - &dfu_load_s895x
27
+ dfu_image_base: 0x10000000
28
+ dfu_load_base: 0xBFF00000
29
+ recovery_image_base: 0xBFF00000
30
+ recovery_load_base: 0x80000000
31
+ - &dfu_load_t8002_t8004
32
+ dfu_image_base: 0x48818000
33
+ dfu_load_base: 0x80000000
34
+ recovery_image_base: 0x48818000
35
+ recovery_load_base: 0x80000000
36
+ - &dfu_load_t8010_t8011
37
+ dfu_image_base: 0x1800B0000
38
+ dfu_load_base: 0x800000000
39
+ recovery_image_base: 0x1800B0000
40
+ recovery_load_base: 0x800000000
41
+ - &dfu_load_t8012_t8015
42
+ dfu_image_base: 0x18001C000
43
+ dfu_load_base: 0x800000000
44
+ recovery_image_base: 0x18001C000
45
+ recovery_load_base: 0x800000000
46
+ heap_base: 0x1801E8000
47
+ heap_offset: 0x5000
48
+ trampoline_base: 0x180018000
49
+ trampoline_offset: 0x620
50
+ page_offset: 0x400
51
+ - &dfu_load_t800x
52
+ dfu_image_base: 0x180380000
53
+ dfu_load_base: 0x180000000
54
+ recovery_image_base: 0x83D7F7000
55
+ recovery_load_base: 0x800000000
56
+ trampoline_base: 0x00000001800c0000
57
+
58
+
3
59
  bootrom_exploits:
4
60
  - alloc8
5
61
  - checkm8
6
62
 
7
63
 
8
64
  secondary_cores:
9
- homr:
10
65
  - name: isp
11
66
  firmware_type: ispf
12
67
  description: Image Signal Processor
68
+
13
69
  - name: maggie
14
70
  description: Ultra low power FPGA (iCE5LP4K) / Lattice iCEcube2
15
71
  firmware_type: magg
72
+
16
73
  - name: pmp
17
74
  description: Power Management Processor
18
75
  firmware_type: pmpf
76
+
19
77
  - name: AppleNandStorage
20
78
  firmware_type: rans
79
+
21
80
  - name: Veridian
22
81
  type: arm7m
23
82
  is_rtkit: false
24
83
  stack_size: 0x6000
25
84
  ram_base: 0x20000000
26
85
  mmio_base: 0x40000000
86
+
27
87
  - name: Vinyl
28
88
  description: >
29
89
  the eUICC or eSIM
metadata CHANGED
@@ -1,21 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apple-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.391
5
5
  platform: ruby
6
6
  authors:
7
- - Ruby Coder
8
- autorequire:
7
+ - Rick Mark
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-10 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Much longer explanation of the example!
14
- email: rubycoder@example.com
11
+ date: 2022-03-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pathutil
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: This package includes machine readable data about Apple platforms maintained
28
+ by hack-different
29
+ email: rickmark@outlook.com
15
30
  executables: []
16
31
  extensions: []
17
32
  extra_rdoc_files: []
18
33
  files:
34
+ - lib/apple_data.rb
35
+ - lib/apple_data/boot_args.rb
36
+ - lib/apple_data/fdr.rb
37
+ - lib/apple_data/ioreg.rb
38
+ - lib/apple_data/lockdown.rb
39
+ - lib/apple_data/macho.rb
40
+ - lib/apple_data/version.rb
19
41
  - share/4cc.yaml
20
42
  - share/apns.yaml
21
43
  - share/backup.yaml
@@ -50,13 +72,12 @@ files:
50
72
  - share/sep.yaml
51
73
  - share/services.yaml
52
74
  - share/syscfg.yaml
53
- homepage: https://rubygems.org/gems/example
75
+ homepage: https://docs.hackdiffe.rent
54
76
  licenses:
55
77
  - MIT
56
78
  metadata:
57
- source_code_uri: https://github.com/example/example
58
- rubygems_mfa_required: 'true'
59
- post_install_message:
79
+ source_code_uri: https://github.com/hack-different/apple-knowledge
80
+ post_install_message:
60
81
  rdoc_options: []
61
82
  require_paths:
62
83
  - lib
@@ -64,15 +85,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
85
  requirements:
65
86
  - - ">="
66
87
  - !ruby/object:Gem::Version
67
- version: '3.0'
88
+ version: '3.1'
68
89
  required_rubygems_version: !ruby/object:Gem::Requirement
69
90
  requirements:
70
91
  - - ">="
71
92
  - !ruby/object:Gem::Version
72
93
  version: '0'
73
94
  requirements: []
74
- rubygems_version: 3.3.5
75
- signing_key:
95
+ rubygems_version: 3.3.7
96
+ signing_key:
76
97
  specification_version: 4
77
- summary: This is an example!
98
+ summary: Static data from https://docs.hackdiffe.rent
78
99
  test_files: []