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 +4 -4
- data/lib/apple_data/boot_args.rb +4 -0
- data/lib/apple_data/fdr.rb +29 -0
- data/lib/apple_data/ioreg.rb +56 -0
- data/lib/apple_data/lockdown.rb +47 -0
- data/lib/apple_data/macho.rb +4 -0
- data/lib/apple_data/version.rb +5 -0
- data/lib/apple_data.rb +7 -0
- data/share/cores.yaml +62 -2
- metadata +36 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 679cf0b46aaf202eb833bd59ad432e23e397dff04a0c816f10ecb60ceaba379e
|
4
|
+
data.tar.gz: b86753ebca45d2306a5ebfe484561db25d840a2677e8cb9c7ab89787d6450683
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c656b7690bdf0d4515aa2afc55c01b14c3f7e11de767bb5eb0fd08d5ea075ebde7cf7b72b3edbf023c306f7aab44a806b9c26a1a53fa79b573b927dc922c9014
|
7
|
+
data.tar.gz: c77c4e78852f89aa6913a75215c236546d1cf6ea90c1180fefc01da753471cabf926f6a7658d2bac0fb697a3a59d01524abd9f4d4fa958969179e04d6d1f2c01
|
@@ -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
|
data/lib/apple_data.rb
ADDED
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:
|
4
|
+
version: 1.0.391
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
autorequire:
|
7
|
+
- Rick Mark
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
|
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://
|
75
|
+
homepage: https://docs.hackdiffe.rent
|
54
76
|
licenses:
|
55
77
|
- MIT
|
56
78
|
metadata:
|
57
|
-
source_code_uri: https://github.com/
|
58
|
-
|
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.
|
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.
|
75
|
-
signing_key:
|
95
|
+
rubygems_version: 3.3.7
|
96
|
+
signing_key:
|
76
97
|
specification_version: 4
|
77
|
-
summary:
|
98
|
+
summary: Static data from https://docs.hackdiffe.rent
|
78
99
|
test_files: []
|