Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 14 additions & 0 deletions crates/ltbox-core/src/model.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ pub const TB320FC_MODEL: &str = "TB320FC";
/// Model token reported by LAVIE Tab 9QHD1 firmware.
pub const LAVIE_TAB_9QHD1_MODEL: &str = "LAVIETab9QHD1";

/// Model token reported by Lenovo Y700 Gen 5 firmware.
pub const TB323FU_MODEL: &str = "TB323FU";

/// Model token reported by Lenovo Y700 5G firmware.
pub const TB324ZC_MODEL: &str = "TB324ZC";

/// Model token reported by Xiaoxin Pro 13 PRC firmware.
pub const TB376FC_MODEL: &str = "TB376FC";

Expand Down Expand Up @@ -121,5 +127,13 @@ mod tests {
"qti/LAVIETab9QHD1X/build",
TB320FC_MODEL
));
assert!(!fingerprint_model_match(
"qti/TB323FU/TB323FU:15/build",
TB324ZC_MODEL
));
assert!(!fingerprint_model_match(
"qti/TB324ZC/TB324ZC:16/build",
TB323FU_MODEL
));
}
}
Binary file added crates/ltbox-gui/assets/devices/tb324zc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 9 additions & 9 deletions crates/ltbox-gui/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@
"err_edl_probe_work_dir_failed": "EDL probe work directory creation failed: {error}",
"err_edl_session_open_failed": "EDL session open failed: {error}",
"err_edl_transition_failed": "Could not reboot the device to EDL mode.",
"err_efisp_loader_manifest_required": "{model} requires a multi-image loader manifest. Pick `qsahara_device_programmer.xml` (or its encrypted `.x`) directly, or place it next to the chosen .melf file ({path}).",
"err_fastboot_command_failed": "{command}: {error}",
"err_fastboot_open_failed": "Bootloader device open failed: {error}",
"err_fastboot_recovery_unsupported": "Bootloader mode cannot reboot to recovery directly; switch to ADB first.",
Expand All @@ -228,8 +229,8 @@
"err_flash_parts_erase_failed": "Failed to erase partition {label}: {error}",
"err_flash_parts_part_failed": "Failed to flash partition {label}: {error}",
"err_flash_phys_write_failed": "Failed to write LUN {lun}: {error}",
"err_flash_prc_only": "Flash: {model} is PRC-only - cross-region or non-CN country settings are not allowed; aborting",
"err_flash_set_bootable_lun_failed": "Failed to set bootable LUN: {error}",
"err_flash_tb322fc_prc_only": "Flash: TB322FC is PRC-only - cross-region or non-CN country settings are not allowed; aborting",
"err_flash_vbmeta_key_unknown": "Flash: firmware vbmeta_system is signed with an unknown key (neither AOSP test-key nor LenovoRSA-key) - aborting before any write",
"err_flash_xiaoxin_arb_downgrade": "The device rollback index is higher than this firmware's, so this firmware cannot be installed.",
"err_flash_xiaoxin_arb_floor_unreadable": "Could not determine both device rollback floors from boot and vbmeta_system; installation aborted.",
Expand Down Expand Up @@ -307,7 +308,6 @@
"err_task_failed": "Task failed.",
"err_task_failed_with_error": "Task failed: {error}",
"err_task_panicked": "Task panicked.",
"err_tb323fu_loader_manifest_required": "TB323FU requires a multi-image loader manifest. Pick `qsahara_device_programmer.xml` (or its encrypted `.x`) directly, or place it next to the chosen .melf file ({path}).",
"err_unroot_backup_manifest_invalid": "Invalid root backup manifest {manifest}: {error}",
"err_unroot_flash_failed": "Flash {label} failed: {error}",
"err_unroot_image_missing": "{image} not found in selected folder",
Expand Down Expand Up @@ -581,6 +581,7 @@
"live_flash_efisp_flash": "Flashing efisp (LUN 4)…",
"live_flash_efisp_flash_failed": "efisp flash failed ({error}) — continuing to system reset",
"live_flash_efisp_flashed": "efisp flashed",
"live_flash_efisp_force_auto": "Efisp/GBL target detected — rollback protection bypass forced to Auto.",
"live_flash_fastboot_timeout": "adb reboot bootloader returned success, but Fastboot did not appear within {seconds}s — continuing without bootloader vars",
"live_flash_files_count": ".x files: {x_count}, rawprogram XML: {xml_count}",
"live_flash_firmware_folder": "Firmware folder: {path}",
Expand All @@ -589,11 +590,10 @@
"live_flash_no_rawprogram_pack": "No rawprogram pack (.x / .xml) in this folder - it doesn't look like a valid firmware image folder.",
"live_flash_phase3_xml_counts": "{raw} rawprogram + {patch} patch XML",
"live_flash_region_convert": "Region convert: {value}",
"live_flash_region_efisp": "Region handled by efisp GBL; vendor_boot/vbmeta AVB conversion skipped.",
"live_flash_rollback_bypass": "Bypass rollback protection: {value}",
"live_flash_set_bootable": "Set bootable LUN to {lun} (xbl_a)",
"live_flash_skip_adb": "Device in Bootloader/EDL — skipping ADB step",
"live_flash_tb323fu_force_auto": "TB323FU detected — rollback protection bypass forced to Auto.",
"live_flash_tb323fu_region_efisp": "TB323FU: region handled by efisp GBL; vendor_boot/vbmeta AVB conversion skipped.",
"live_flash_vbmeta_key_unknown": "Firmware vbmeta_system signing key is unknown (neither AOSP test-key nor LenovoRSA-key) - aborting",
"live_flash_vbmeta_status": "vbmeta.img: {status}",
"live_flash_vendor_boot_status": "vendor_boot.img: {status}",
Expand Down Expand Up @@ -674,10 +674,10 @@
"live_xml_decrypt_done": "Decrypted {count} .x file(s) → .xml",
"live_xml_keep_excludes": "Excluding userdata/metadata",
"loader_default_ext_unsupported": "The file set as the default EDL loader has an extension that isn't supported on the connected device.",
"loader_desc_efisp_gbl": "qsahara_device_programmer.xml",
"loader_desc_standard": "xbl_s_devprg_ns.melf",
"loader_desc_tb323fu": "qsahara_device_programmer.xml",
"loader_desc_unknown": "xbl_s_devprg_ns.melf\nor qsahara_device_programmer.xml (Y700 Gen 5 only)",
"loader_model_mismatch_tooltip": "The connected device needs a different EDL loader (TB323FU: .xml/.x manifest; every other model: .melf).",
"loader_desc_unknown": "xbl_s_devprg_ns.melf\nor qsahara_device_programmer.xml (Snapdragon 8 Elite Gen 5 only)",
"loader_model_mismatch_tooltip": "The connected device needs a different EDL loader (TB323FU/TB324ZC: .xml/.x manifest; every other model: .melf).",
"log_apatch_extract_kernel": "Extracting kernel: {input} → {output}",
"log_apatch_extracted_kpimg": "extracted assets/kpimg → {path} ({bytes} bytes)",
"log_apatch_kallsyms_all_missing": "CONFIG_KALLSYMS_ALL=y missing — non-fatal, but some KPMs may need it",
Expand Down Expand Up @@ -789,7 +789,7 @@
"log_reboot_target_from": "→ {target} (from {source})",
"log_reboot_target_from_edl": "→ {target} (from EDL, loader={loader})",
"log_release_latest_asset": "latest: {tag} — asset {name}",
"log_root_efisp_check": "TB323FU detected — verifying efisp (GBL) provisioning…",
"log_root_efisp_check": "Efisp/GBL route detected — verifying efisp provisioning…",
"log_root_efisp_ok": "efisp is provisioned — continuing (AVB/vbmeta handled by GBL)",
"log_root_installing_manager_apk": "Installing manager APK: {path}",
"log_root_loader": "Loader: {path}",
Expand Down Expand Up @@ -999,6 +999,7 @@
"rollback_format_raw": "Raw (hex)",
"rollback_format_unix": "Unix timestamp",
"rollback_manual_desc": "Set the boot and vbmeta_system rollback indexes. Values must be earlier than now.",
"rollback_manual_efisp_disabled": "Efisp/GBL targets cannot use Manual rollback; it was disabled.",
"rollback_manual_error_clock": "System clock unavailable.",
"rollback_manual_error_date_shape": "Use YYYY-MM-DD.",
"rollback_manual_error_date_value": "Enter a real calendar date.",
Expand All @@ -1009,7 +1010,6 @@
"rollback_manual_error_prefix": "Start with 0x.",
"rollback_manual_original": "Image index: {index}",
"rollback_manual_placeholder": "Rollback index",
"rollback_manual_tb323fu_disabled": "TB323FU cannot use Manual rollback; it was disabled.",
"rollback_off": "Off",
"rollback_on": "On",
"rollback_open_tip": "View the stored rollback indices",
Expand Down
18 changes: 9 additions & 9 deletions crates/ltbox-gui/lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@
"err_edl_probe_work_dir_failed": "EDL プローブ作業フォルダーの作成に失敗しました: {error}",
"err_edl_session_open_failed": "EDL セッションを開けませんでした: {error}",
"err_edl_transition_failed": "デバイスを EDL モードで再起動できませんでした。",
"err_efisp_loader_manifest_required": "{model} にはマルチイメージローダーマニフェストが必要です。`qsahara_device_programmer.xml` (または暗号化された `.x`) を直接選択するか、選択した .melf ファイルの隣に配置してください ({path})。",
"err_fastboot_command_failed": "{command}: {error}",
"err_fastboot_open_failed": "ブートローダーデバイスを開けませんでした: {error}",
"err_fastboot_recovery_unsupported": "ブートローダーモードではリカバリへ直接再起動できません。先に ADB に切り替えてください。",
Expand All @@ -228,8 +229,8 @@
"err_flash_parts_erase_failed": "パーティション {label} の消去に失敗しました: {error}",
"err_flash_parts_part_failed": "パーティション {label} のフラッシュに失敗しました: {error}",
"err_flash_phys_write_failed": "LUN {lun} の書き込みに失敗しました: {error}",
"err_flash_prc_only": "フラッシュ: {model} は中国専用 — 他リージョンへの変換や CN 以外の国設定は不可、中止します",
"err_flash_set_bootable_lun_failed": "起動可能 LUN の設定に失敗しました: {error}",
"err_flash_tb322fc_prc_only": "フラッシュ: TB322FC は中国専用 — 他リージョンへの変換や CN 以外の国設定は不可、中止します",
"err_flash_vbmeta_key_unknown": "フラッシュ: ファームウェアの vbmeta_system が不明な鍵で署名されています(AOSP テスト鍵でも LenovoRSA 鍵でもない)— 書き込み前に中止します",
"err_flash_xiaoxin_arb_downgrade": "デバイスのロールバックインデックスがこのファームウェアより高いため、インストールできません。",
"err_flash_xiaoxin_arb_floor_unreadable": "boot と vbmeta_system から両方のデバイスロールバック下限を取得できなかったため、インストールを中止しました。",
Expand Down Expand Up @@ -307,7 +308,6 @@
"err_task_failed": "タスクに失敗しました。",
"err_task_failed_with_error": "タスクに失敗しました: {error}",
"err_task_panicked": "タスクがパニックで停止しました。",
"err_tb323fu_loader_manifest_required": "TB323FU にはマルチイメージローダーマニフェストが必要です。`qsahara_device_programmer.xml` (または暗号化された `.x`) を直接選択するか、選択した .melf ファイルの隣に配置してください ({path})。",
"err_unroot_backup_manifest_invalid": "root バックアップマニフェスト {manifest} が無効です: {error}",
"err_unroot_flash_failed": "{label} のフラッシュに失敗しました: {error}",
"err_unroot_image_missing": "選択したフォルダーに {image} が見つかりません",
Expand Down Expand Up @@ -581,6 +581,7 @@
"live_flash_efisp_flash": "efisp (LUN 4) をフラッシュ中...",
"live_flash_efisp_flash_failed": "efisp のフラッシュに失敗しました ({error}) — システムリセットを続行します",
"live_flash_efisp_flashed": "efisp がフラッシュされました",
"live_flash_efisp_force_auto": "efisp/GBL 対象が検出されました — ロールバック保護のバイパスを自動に強制します。",
"live_flash_fastboot_timeout": "adb reboot bootloader は成功しましたが、{seconds} 秒以内に Fastboot が現れませんでした — ブートローダー変数なしで続行します",
"live_flash_files_count": ".x ファイル: {x_count}個, rawprogram XML: {xml_count}個",
"live_flash_firmware_folder": "ファームウェアフォルダ: {path}",
Expand All @@ -589,11 +590,10 @@
"live_flash_no_rawprogram_pack": "このフォルダーに rawprogram(.x / .xml)がありません — 正しいファームウェアイメージのフォルダーではないようです。",
"live_flash_phase3_xml_counts": "{raw} rawprogram + {patch} patch XML",
"live_flash_region_convert": "リージョン変換: {value}",
"live_flash_region_efisp": "リージョンは efisp GBL によって処理されます。vendor_boot/vbmeta の AVB 変換をスキップします。",
"live_flash_rollback_bypass": "ロールバック保護のバイパス: {value}",
"live_flash_set_bootable": "起動可能なLUNを {lun} (xbl_a) に設定します",
"live_flash_skip_adb": "デバイスはブートローダー/EDLモードです — ADBステップをスキップします",
"live_flash_tb323fu_force_auto": "TB323FU が検出されました — ロールバック保護のバイパスを自動に強制します。",
"live_flash_tb323fu_region_efisp": "TB323FU: リージョンは efisp GBL によって処理されます。vendor_boot/vbmeta の AVB 変換をスキップします。",
"live_flash_vbmeta_key_unknown": "ファームウェア vbmeta_system の署名鍵が不明(AOSP テスト鍵/LenovoRSA 鍵ではない)— 中止します",
"live_flash_vbmeta_status": "vbmeta.img: {status}",
"live_flash_vendor_boot_status": "vendor_boot.img: {status}",
Expand Down Expand Up @@ -674,10 +674,10 @@
"live_xml_decrypt_done": "{count} 個の .x ファイルを復号しました → .xml",
"live_xml_keep_excludes": "userdata / metadata を除外しています",
"loader_default_ext_unsupported": "既定の EDL ローダーに指定されたファイルの拡張子は、接続中の端末ではサポートされていません。",
"loader_desc_efisp_gbl": "qsahara_device_programmer.xml",
"loader_desc_standard": "xbl_s_devprg_ns.melf",
"loader_desc_tb323fu": "qsahara_device_programmer.xml",
"loader_desc_unknown": "xbl_s_devprg_ns.melf\nまたは qsahara_device_programmer.xml (Y700 Gen 5 のみ)",
"loader_model_mismatch_tooltip": "接続中の端末には別の EDL ローダーが必要です(TB323FU: .xml/.x マニフェスト、その他のモデル: .melf)。",
"loader_desc_unknown": "xbl_s_devprg_ns.melf\nまたは qsahara_device_programmer.xml (Snapdragon 8 Elite Gen 5 のみ)",
"loader_model_mismatch_tooltip": "接続中の端末には別の EDL ローダーが必要です(TB323FU/TB324ZC: .xml/.x マニフェスト、その他のモデル: .melf)。",
"log_apatch_extract_kernel": "カーネルを抽出中: {input} → {output}",
"log_apatch_extracted_kpimg": "assets/kpimg を抽出しました → {path} ({bytes} バイト)",
"log_apatch_kallsyms_all_missing": "CONFIG_KALLSYMS_ALL=y がありません — 致命的ではありませんが、一部の KPM で必要になる場合があります",
Expand Down Expand Up @@ -789,7 +789,7 @@
"log_reboot_target_from": "→ {target} ({source} から)",
"log_reboot_target_from_edl": "→ {target} (EDLから, ローダー={loader})",
"log_release_latest_asset": "最新: {tag} — アセット {name}",
"log_root_efisp_check": "TB323FU が検出されました — efisp (GBL) プロビジョニングを検証中...",
"log_root_efisp_check": "efisp/GBL ルートが検出されました — efisp のプロビジョニングを検証中...",
"log_root_efisp_ok": "efisp がプロビジョニングされています — 続行します (AVB/vbmetaはGBLによって処理されます)",
"log_root_installing_manager_apk": "マネージャー APK をインストール中: {path}",
"log_root_loader": "ローダー: {path}",
Expand Down Expand Up @@ -999,6 +999,7 @@
"rollback_format_raw": "元の値 (16進数)",
"rollback_format_unix": "Unix タイムスタンプ",
"rollback_manual_desc": "boot および vbmeta_system のロールバックインデックスを設定します。値は現在時刻より前である必要があります。",
"rollback_manual_efisp_disabled": "efisp/GBL 対象では手動ロールバックを使用できません。無効になりました。",
"rollback_manual_error_clock": "システムクロックを利用できません。",
"rollback_manual_error_date_shape": "YYYY-MM-DD 形式で入力してください。",
"rollback_manual_error_date_value": "実在する日付を入力してください。",
Expand All @@ -1009,7 +1010,6 @@
"rollback_manual_error_prefix": "0x で始めてください。",
"rollback_manual_original": "イメージインデックス: {index}",
"rollback_manual_placeholder": "ロールバックインデックス",
"rollback_manual_tb323fu_disabled": "TB323FU は手動ロールバックを使用できません。無効になりました。",
"rollback_off": "オフ",
"rollback_on": "オン",
"rollback_open_tip": "保存されたロールバックインデックスを表示",
Expand Down
Loading
Loading