mirror of
https://mirror.ghproxy.com/https://github.com/StarCitizenToolBox/app.git
synced 2024-12-23 00:33:42 +08:00
feat: unp4kTools extract_memory
This commit is contained in:
parent
9bdccc3bbf
commit
a7e1d8d0b7
Binary file not shown.
@ -223,4 +223,23 @@ class Unp4kCModel extends _$Unp4kCModel {
|
|||||||
rsPid: _rsPid!, data: "$mode<:,:>$filePath<:,:>$outputPath\n");
|
rsPid: _rsPid!, data: "$mode<:,:>$filePath<:,:>$outputPath\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<Uint8List> unp4kTools(
|
||||||
|
String applicationBinaryModuleDir, List<String> args) async {
|
||||||
|
await BinaryModuleConf.extractModule(
|
||||||
|
["unp4kc"], applicationBinaryModuleDir);
|
||||||
|
final execDir = "$applicationBinaryModuleDir\\unp4kc";
|
||||||
|
final exec = "$execDir\\unp4kc.exe";
|
||||||
|
final r = await Process.run(exec, args);
|
||||||
|
if (r.exitCode != 0) {
|
||||||
|
throw Exception(
|
||||||
|
"error: ${r.exitCode} , info= ${r.stdout} , err= ${r.stderr}");
|
||||||
|
}
|
||||||
|
final eventJson = await compute(json.decode, r.stdout.toString());
|
||||||
|
if (eventJson["action"] == "data: Uint8List") {
|
||||||
|
final data = eventJson["data"];
|
||||||
|
return Uint8List.fromList((data as List).cast<int>());
|
||||||
|
}
|
||||||
|
throw Exception("error: data error");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ part of 'unp4kc.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$unp4kCModelHash() => r'0f1bff187bbc4e043405f60e95c08af6e1159b57';
|
String _$unp4kCModelHash() => r'69117c5857797683e2d080da9238bfecc5948898';
|
||||||
|
|
||||||
/// See also [Unp4kCModel].
|
/// See also [Unp4kCModel].
|
||||||
@ProviderFor(Unp4kCModel)
|
@ProviderFor(Unp4kCModel)
|
||||||
|
@ -7,7 +7,7 @@ part of 'home_game_login_dialog_ui_model.dart';
|
|||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$homeGameLoginUIModelHash() =>
|
String _$homeGameLoginUIModelHash() =>
|
||||||
r'862fac9e29e55937e1246542feac75cf55062182';
|
r'e8afccb7bba7c79e766e30a27f64128918a63dd7';
|
||||||
|
|
||||||
/// See also [HomeGameLoginUIModel].
|
/// See also [HomeGameLoginUIModel].
|
||||||
@ProviderFor(HomeGameLoginUIModel)
|
@ProviderFor(HomeGameLoginUIModel)
|
||||||
|
@ -6,7 +6,7 @@ part of 'home_ui_model.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$homeUIModelHash() => r'415891e3528a681a9c11eed5bb78070a2a08da86';
|
String _$homeUIModelHash() => r'8308b6e327b7eeda64c39bcd73e9f2d9e6470437';
|
||||||
|
|
||||||
/// See also [HomeUIModel].
|
/// See also [HomeUIModel].
|
||||||
@ProviderFor(HomeUIModel)
|
@ProviderFor(HomeUIModel)
|
||||||
|
@ -18,6 +18,7 @@ import 'package:starcitizen_doctor/common/utils/log.dart';
|
|||||||
import 'package:starcitizen_doctor/common/utils/provider.dart';
|
import 'package:starcitizen_doctor/common/utils/provider.dart';
|
||||||
import 'package:starcitizen_doctor/data/sc_localization_data.dart';
|
import 'package:starcitizen_doctor/data/sc_localization_data.dart';
|
||||||
import 'package:starcitizen_doctor/generated/no_l10n_strings.dart';
|
import 'package:starcitizen_doctor/generated/no_l10n_strings.dart';
|
||||||
|
import 'package:starcitizen_doctor/provider/unp4kc.dart';
|
||||||
import 'package:starcitizen_doctor/ui/home/home_ui_model.dart';
|
import 'package:starcitizen_doctor/ui/home/home_ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/widgets/widgets.dart';
|
import 'package:starcitizen_doctor/widgets/widgets.dart';
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
@ -88,6 +89,17 @@ class LocalizationUIModel extends _$LocalizationUIModel {
|
|||||||
await _loadData();
|
await _loadData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
readEnglishInI() async {
|
||||||
|
final data = await Unp4kCModel.unp4kTools(
|
||||||
|
appGlobalState.applicationBinaryModuleDir!, [
|
||||||
|
"extract_memory",
|
||||||
|
"$_scInstallPath\\Data.p4k",
|
||||||
|
"Data\\Localization\\english\\global.ini"
|
||||||
|
]);
|
||||||
|
final iniData = String.fromCharCodes(data);
|
||||||
|
dPrint("read english ini => ${iniData.length}");
|
||||||
|
}
|
||||||
|
|
||||||
final Map<String, Map<String, ScLocalizationData>>
|
final Map<String, Map<String, ScLocalizationData>>
|
||||||
_allVersionLocalizationData = {};
|
_allVersionLocalizationData = {};
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ part of 'localization_ui_model.dart';
|
|||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$localizationUIModelHash() =>
|
String _$localizationUIModelHash() =>
|
||||||
r'da9d0a3ae28825fd9331dd2b6db3d094cf3c0eb9';
|
r'a4e33b337db587ad3e766450d9bd8ac4aa7b4c49';
|
||||||
|
|
||||||
/// See also [LocalizationUIModel].
|
/// See also [LocalizationUIModel].
|
||||||
@ProviderFor(LocalizationUIModel)
|
@ProviderFor(LocalizationUIModel)
|
||||||
|
@ -16,7 +16,6 @@ final _privateConstructorUsedError = UnsupportedError(
|
|||||||
|
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
mixin _$SettingsUIState {
|
mixin _$SettingsUIState {
|
||||||
dynamic get isDeviceSupportWinHello => throw _privateConstructorUsedError;
|
|
||||||
bool get isEnableToolSiteMirrors => throw _privateConstructorUsedError;
|
bool get isEnableToolSiteMirrors => throw _privateConstructorUsedError;
|
||||||
String get inputGameLaunchECore => throw _privateConstructorUsedError;
|
String get inputGameLaunchECore => throw _privateConstructorUsedError;
|
||||||
String? get customLauncherPath => throw _privateConstructorUsedError;
|
String? get customLauncherPath => throw _privateConstructorUsedError;
|
||||||
@ -35,8 +34,7 @@ abstract class $SettingsUIStateCopyWith<$Res> {
|
|||||||
_$SettingsUIStateCopyWithImpl<$Res, SettingsUIState>;
|
_$SettingsUIStateCopyWithImpl<$Res, SettingsUIState>;
|
||||||
@useResult
|
@useResult
|
||||||
$Res call(
|
$Res call(
|
||||||
{dynamic isDeviceSupportWinHello,
|
{bool isEnableToolSiteMirrors,
|
||||||
bool isEnableToolSiteMirrors,
|
|
||||||
String inputGameLaunchECore,
|
String inputGameLaunchECore,
|
||||||
String? customLauncherPath,
|
String? customLauncherPath,
|
||||||
String? customGamePath,
|
String? customGamePath,
|
||||||
@ -56,7 +54,6 @@ class _$SettingsUIStateCopyWithImpl<$Res, $Val extends SettingsUIState>
|
|||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
Object? isDeviceSupportWinHello = freezed,
|
|
||||||
Object? isEnableToolSiteMirrors = null,
|
Object? isEnableToolSiteMirrors = null,
|
||||||
Object? inputGameLaunchECore = null,
|
Object? inputGameLaunchECore = null,
|
||||||
Object? customLauncherPath = freezed,
|
Object? customLauncherPath = freezed,
|
||||||
@ -64,10 +61,6 @@ class _$SettingsUIStateCopyWithImpl<$Res, $Val extends SettingsUIState>
|
|||||||
Object? locationCacheSize = null,
|
Object? locationCacheSize = null,
|
||||||
}) {
|
}) {
|
||||||
return _then(_value.copyWith(
|
return _then(_value.copyWith(
|
||||||
isDeviceSupportWinHello: freezed == isDeviceSupportWinHello
|
|
||||||
? _value.isDeviceSupportWinHello
|
|
||||||
: isDeviceSupportWinHello // ignore: cast_nullable_to_non_nullable
|
|
||||||
as dynamic,
|
|
||||||
isEnableToolSiteMirrors: null == isEnableToolSiteMirrors
|
isEnableToolSiteMirrors: null == isEnableToolSiteMirrors
|
||||||
? _value.isEnableToolSiteMirrors
|
? _value.isEnableToolSiteMirrors
|
||||||
: isEnableToolSiteMirrors // ignore: cast_nullable_to_non_nullable
|
: isEnableToolSiteMirrors // ignore: cast_nullable_to_non_nullable
|
||||||
@ -101,8 +94,7 @@ abstract class _$$SettingsUIStateImplCopyWith<$Res>
|
|||||||
@override
|
@override
|
||||||
@useResult
|
@useResult
|
||||||
$Res call(
|
$Res call(
|
||||||
{dynamic isDeviceSupportWinHello,
|
{bool isEnableToolSiteMirrors,
|
||||||
bool isEnableToolSiteMirrors,
|
|
||||||
String inputGameLaunchECore,
|
String inputGameLaunchECore,
|
||||||
String? customLauncherPath,
|
String? customLauncherPath,
|
||||||
String? customGamePath,
|
String? customGamePath,
|
||||||
@ -120,7 +112,6 @@ class __$$SettingsUIStateImplCopyWithImpl<$Res>
|
|||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
Object? isDeviceSupportWinHello = freezed,
|
|
||||||
Object? isEnableToolSiteMirrors = null,
|
Object? isEnableToolSiteMirrors = null,
|
||||||
Object? inputGameLaunchECore = null,
|
Object? inputGameLaunchECore = null,
|
||||||
Object? customLauncherPath = freezed,
|
Object? customLauncherPath = freezed,
|
||||||
@ -128,9 +119,6 @@ class __$$SettingsUIStateImplCopyWithImpl<$Res>
|
|||||||
Object? locationCacheSize = null,
|
Object? locationCacheSize = null,
|
||||||
}) {
|
}) {
|
||||||
return _then(_$SettingsUIStateImpl(
|
return _then(_$SettingsUIStateImpl(
|
||||||
isDeviceSupportWinHello: freezed == isDeviceSupportWinHello
|
|
||||||
? _value.isDeviceSupportWinHello!
|
|
||||||
: isDeviceSupportWinHello,
|
|
||||||
isEnableToolSiteMirrors: null == isEnableToolSiteMirrors
|
isEnableToolSiteMirrors: null == isEnableToolSiteMirrors
|
||||||
? _value.isEnableToolSiteMirrors
|
? _value.isEnableToolSiteMirrors
|
||||||
: isEnableToolSiteMirrors // ignore: cast_nullable_to_non_nullable
|
: isEnableToolSiteMirrors // ignore: cast_nullable_to_non_nullable
|
||||||
@ -159,16 +147,12 @@ class __$$SettingsUIStateImplCopyWithImpl<$Res>
|
|||||||
|
|
||||||
class _$SettingsUIStateImpl implements _SettingsUIState {
|
class _$SettingsUIStateImpl implements _SettingsUIState {
|
||||||
_$SettingsUIStateImpl(
|
_$SettingsUIStateImpl(
|
||||||
{this.isDeviceSupportWinHello = false,
|
{this.isEnableToolSiteMirrors = false,
|
||||||
this.isEnableToolSiteMirrors = false,
|
|
||||||
this.inputGameLaunchECore = "0",
|
this.inputGameLaunchECore = "0",
|
||||||
this.customLauncherPath,
|
this.customLauncherPath,
|
||||||
this.customGamePath,
|
this.customGamePath,
|
||||||
this.locationCacheSize = 0});
|
this.locationCacheSize = 0});
|
||||||
|
|
||||||
@override
|
|
||||||
@JsonKey()
|
|
||||||
final dynamic isDeviceSupportWinHello;
|
|
||||||
@override
|
@override
|
||||||
@JsonKey()
|
@JsonKey()
|
||||||
final bool isEnableToolSiteMirrors;
|
final bool isEnableToolSiteMirrors;
|
||||||
@ -185,7 +169,7 @@ class _$SettingsUIStateImpl implements _SettingsUIState {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'SettingsUIState(isDeviceSupportWinHello: $isDeviceSupportWinHello, isEnableToolSiteMirrors: $isEnableToolSiteMirrors, inputGameLaunchECore: $inputGameLaunchECore, customLauncherPath: $customLauncherPath, customGamePath: $customGamePath, locationCacheSize: $locationCacheSize)';
|
return 'SettingsUIState(isEnableToolSiteMirrors: $isEnableToolSiteMirrors, inputGameLaunchECore: $inputGameLaunchECore, customLauncherPath: $customLauncherPath, customGamePath: $customGamePath, locationCacheSize: $locationCacheSize)';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -193,8 +177,6 @@ class _$SettingsUIStateImpl implements _SettingsUIState {
|
|||||||
return identical(this, other) ||
|
return identical(this, other) ||
|
||||||
(other.runtimeType == runtimeType &&
|
(other.runtimeType == runtimeType &&
|
||||||
other is _$SettingsUIStateImpl &&
|
other is _$SettingsUIStateImpl &&
|
||||||
const DeepCollectionEquality().equals(
|
|
||||||
other.isDeviceSupportWinHello, isDeviceSupportWinHello) &&
|
|
||||||
(identical(
|
(identical(
|
||||||
other.isEnableToolSiteMirrors, isEnableToolSiteMirrors) ||
|
other.isEnableToolSiteMirrors, isEnableToolSiteMirrors) ||
|
||||||
other.isEnableToolSiteMirrors == isEnableToolSiteMirrors) &&
|
other.isEnableToolSiteMirrors == isEnableToolSiteMirrors) &&
|
||||||
@ -211,7 +193,6 @@ class _$SettingsUIStateImpl implements _SettingsUIState {
|
|||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(
|
int get hashCode => Object.hash(
|
||||||
runtimeType,
|
runtimeType,
|
||||||
const DeepCollectionEquality().hash(isDeviceSupportWinHello),
|
|
||||||
isEnableToolSiteMirrors,
|
isEnableToolSiteMirrors,
|
||||||
inputGameLaunchECore,
|
inputGameLaunchECore,
|
||||||
customLauncherPath,
|
customLauncherPath,
|
||||||
@ -228,15 +209,12 @@ class _$SettingsUIStateImpl implements _SettingsUIState {
|
|||||||
|
|
||||||
abstract class _SettingsUIState implements SettingsUIState {
|
abstract class _SettingsUIState implements SettingsUIState {
|
||||||
factory _SettingsUIState(
|
factory _SettingsUIState(
|
||||||
{final dynamic isDeviceSupportWinHello,
|
{final bool isEnableToolSiteMirrors,
|
||||||
final bool isEnableToolSiteMirrors,
|
|
||||||
final String inputGameLaunchECore,
|
final String inputGameLaunchECore,
|
||||||
final String? customLauncherPath,
|
final String? customLauncherPath,
|
||||||
final String? customGamePath,
|
final String? customGamePath,
|
||||||
final int locationCacheSize}) = _$SettingsUIStateImpl;
|
final int locationCacheSize}) = _$SettingsUIStateImpl;
|
||||||
|
|
||||||
@override
|
|
||||||
dynamic get isDeviceSupportWinHello;
|
|
||||||
@override
|
@override
|
||||||
bool get isEnableToolSiteMirrors;
|
bool get isEnableToolSiteMirrors;
|
||||||
@override
|
@override
|
||||||
|
@ -6,7 +6,7 @@ part of 'settings_ui_model.dart';
|
|||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$settingsUIModelHash() => r'897176bc24ec5397cce0dd1ceea58338ac7841e0';
|
String _$settingsUIModelHash() => r'2be0fe230d23f84796e0a3a39dd3248c2aa90f23';
|
||||||
|
|
||||||
/// See also [SettingsUIModel].
|
/// See also [SettingsUIModel].
|
||||||
@ProviderFor(SettingsUIModel)
|
@ProviderFor(SettingsUIModel)
|
||||||
|
Loading…
Reference in New Issue
Block a user