Skip to content

Commit 9e28956

Browse files
committed
Change how configs are named and how they are detected and processed
1 parent d9cbcd1 commit 9e28956

File tree

7 files changed

+32
-24
lines changed

7 files changed

+32
-24
lines changed

openandroidinstaller/assets/configs/Fairphone 2.yaml renamed to openandroidinstaller/assets/configs/FP2.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
metadata:
2-
- maintainer: Tobias Sterbak (tsterbak)
2+
maintainer: Tobias Sterbak (tsterbak)
3+
devicename: Fairphone 2
34
requirements:
45
steps:
56
- title: "Flash a custom recovery"

openandroidinstaller/assets/configs/Samsung Galaxy A3 2017.yaml renamed to openandroidinstaller/assets/configs/a3y17lte.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
metadata:
2-
- maintainer: Tobias Sterbak (tsterbak)
2+
maintainer: Tobias Sterbak (tsterbak)
3+
devicename: Samsung Galaxy A3 (2017)
34
requirements:
45
- heimdall
56
steps:

openandroidinstaller/assets/configs/Samsung Galaxy A5 2016.yaml renamed to openandroidinstaller/assets/configs/a5xelte.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
metadata:
2-
- maintainer: Tobias Sterbak (tsterbak)
2+
maintainer: Tobias Sterbak (tsterbak)
3+
devicename: Samsung Galaxy A5 (2016)
34
requirements:
45
- heimdall
56
steps:

openandroidinstaller/assets/configs/Pixel 3a.yaml renamed to openandroidinstaller/assets/configs/sargo.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
metadata:
2-
- maintainer: Tobias Sterbak (tsterbak)
2+
maintainer: Tobias Sterbak (tsterbak)
3+
devicename: Pixel 3a
34
requirements:
45
steps:
56
- title: "Unlock the bootloader"

openandroidinstaller/assets/configs/Xperia Z.yaml renamed to openandroidinstaller/assets/configs/yuga.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
metadata:
2-
- maintainer: Tobias Sterbak (tsterbak)
2+
maintainer: Tobias Sterbak (tsterbak)
3+
devicename: Sony Xperia Z
34
requirements:
45
steps:
56
- title: "Unlock the bootloader"

openandroidinstaller/installer_config.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,20 @@ def __init__(
3737

3838

3939
class InstallerConfig:
40-
def __init__(self, steps: List[Step]):
40+
def __init__(self, steps: List[Step], metadata: dict):
4141
self.steps = steps
42+
self.metadata = metadata
4243

4344
@classmethod
4445
def from_file(cls, path):
4546
with open(path, "r") as stream:
4647
try:
47-
raw_steps = yaml.safe_load(stream)
48-
raw_steps = dict(raw_steps)["steps"]
48+
raw_config = yaml.safe_load(stream)
49+
config = dict(raw_config)
50+
raw_steps = config["steps"]
51+
metadata = config["metadata"]
4952
except yaml.YAMLError as exc:
5053
print(exc)
5154

5255
steps = [Step(**raw_step) for raw_step in raw_steps]
53-
return cls(steps)
56+
return cls(steps, metadata)

openandroidinstaller/openandroidinstaller.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353

5454
# Toggle to True for development purposes
5555
DEVELOPMENT = False
56-
DEVELOPMENT_CONFIG = "Samsung Galaxy A3 2017" # "Pixel 3a"
56+
DEVELOPMENT_CONFIG = "a3y17lte" # "sargo"
5757

5858

5959
PLATFORM = sys.platform
@@ -178,22 +178,20 @@ def close_developer_options_dlg(self, e):
178178
self.page.update()
179179

180180
def search_devices(self, e):
181+
"""Search the device when the button is clicked."""
182+
logger.info("Search devices...")
181183
try:
182184
# read device properties
183185
# TODO: This is not windows ready...
184-
if PLATFORM in ("linux", "MacOS"):
186+
if PLATFORM in ("linux", "darwin"):
185187
output = check_output(
186188
[
187189
str(BIN_PATH.joinpath(Path("adb"))),
188190
"shell",
189-
"dumpsys",
190-
"bluetooth_manager",
191+
"getprop",
191192
"|",
192193
"grep",
193-
"'name:'",
194-
"|",
195-
"cut",
196-
"-c9-",
194+
"ro.product.device"
197195
],
198196
stderr=STDOUT,
199197
).decode()
@@ -202,27 +200,29 @@ def search_devices(self, e):
202200
[
203201
str(BIN_PATH.joinpath(Path("adb"))),
204202
"shell",
205-
"dumpsys",
206-
"bluetooth_manager",
203+
"getprop",
207204
"|",
208205
"findstr",
209-
"'name:'",
210-
"|",
211-
"-split",
212-
"-c9-",
206+
"ro.product.device"
213207
],
214208
stderr=STDOUT,
215209
).decode()
216210
else:
217211
raise Exception(f"Unknown platform {PLATFORM}.")
218212

213+
output = output.split("[")[-1][:-2]
214+
logger.info(f"Detected {output}")
215+
# write the device code to the text shown in the box
219216
self.device_name.value = output.strip()
220217
# load config from file
221218
path = CONFIG_PATH.joinpath(Path(f"{output.strip()}.yaml"))
222219
load_config_success = self.load_config(path)
220+
# display success in the application
223221
if load_config_success:
224222
self.config_found_box.value = True
225223
self.continue_button.disabled = False
224+
# overwrite the text field with the real name from the config
225+
self.device_name.value = f"{load_config_success} (code: {output.strip()})"
226226
else:
227227
# show alternative configs here
228228
# select a new path and load again
@@ -427,7 +427,7 @@ def load_config(self, path: str):
427427
try:
428428
self.config = InstallerConfig.from_file(path)
429429
self.num_total_steps = len(self.config.steps)
430-
return True
430+
return self.config.metadata.get("devicename", "No device name in config.")
431431
except FileNotFoundError:
432432
return False
433433

0 commit comments

Comments
 (0)