apple-data 0.1.0 → 1.0.391

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []