feat(spoof): пер-аккаунтный спуф с тумблером и прокидыванием в веб-аппы
- спуф теперь свой на каждый аккаунт, вмораживается при входе - тумблер вкл/выкл в настройках (по умолчанию выключен) - новый аккаунт добавляется со своим включённым спуфом (другое устройство) - UA спуфа прокинут в Сферум, Цифровой ID (вебвью + HTTP) - генерация выбирает Android или iOS; iOS отдаёт deviceType IOS - экран спуфа показывает текущую личность, а не свежесгенерированную
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
class SpoofProfile {
|
||||
final bool enabled;
|
||||
final String deviceName;
|
||||
final String osVersion;
|
||||
final String screen;
|
||||
final String timezone;
|
||||
final String locale;
|
||||
final String deviceLocale;
|
||||
final String deviceId;
|
||||
final String deviceType;
|
||||
final String arch;
|
||||
final String appVersion;
|
||||
final int buildNumber;
|
||||
final String pushDeviceType;
|
||||
final String instanceId;
|
||||
final int? clientSessionId;
|
||||
final String userAgent;
|
||||
|
||||
const SpoofProfile({
|
||||
required this.enabled,
|
||||
this.deviceName = '',
|
||||
this.osVersion = '',
|
||||
this.screen = '',
|
||||
this.timezone = '',
|
||||
this.locale = '',
|
||||
this.deviceLocale = '',
|
||||
this.deviceId = '',
|
||||
this.deviceType = 'ANDROID',
|
||||
this.arch = 'arm64-v8a',
|
||||
this.appVersion = '',
|
||||
this.buildNumber = 0,
|
||||
this.pushDeviceType = 'GCM',
|
||||
this.instanceId = '',
|
||||
this.clientSessionId,
|
||||
this.userAgent = '',
|
||||
});
|
||||
|
||||
Map<String, dynamic> toJson() => {
|
||||
'enabled': enabled,
|
||||
'device_name': deviceName,
|
||||
'os_version': osVersion,
|
||||
'screen': screen,
|
||||
'timezone': timezone,
|
||||
'locale': locale,
|
||||
'device_locale': deviceLocale,
|
||||
'device_id': deviceId,
|
||||
'device_type': deviceType,
|
||||
'arch': arch,
|
||||
'app_version': appVersion,
|
||||
'build_number': buildNumber,
|
||||
'push_device_type': pushDeviceType,
|
||||
'instance_id': instanceId,
|
||||
'client_session_id': clientSessionId,
|
||||
'user_agent': userAgent,
|
||||
};
|
||||
|
||||
factory SpoofProfile.fromJson(Map<String, dynamic> json) => SpoofProfile(
|
||||
enabled: json['enabled'] as bool? ?? false,
|
||||
deviceName: json['device_name'] as String? ?? '',
|
||||
osVersion: json['os_version'] as String? ?? '',
|
||||
screen: json['screen'] as String? ?? '',
|
||||
timezone: json['timezone'] as String? ?? '',
|
||||
locale: json['locale'] as String? ?? '',
|
||||
deviceLocale: json['device_locale'] as String? ?? '',
|
||||
deviceId: json['device_id'] as String? ?? '',
|
||||
deviceType: json['device_type'] as String? ?? 'ANDROID',
|
||||
arch: json['arch'] as String? ?? 'arm64-v8a',
|
||||
appVersion: json['app_version'] as String? ?? '',
|
||||
buildNumber: (json['build_number'] as num?)?.toInt() ?? 0,
|
||||
pushDeviceType: json['push_device_type'] as String? ?? 'GCM',
|
||||
instanceId: json['instance_id'] as String? ?? '',
|
||||
clientSessionId: (json['client_session_id'] as num?)?.toInt(),
|
||||
userAgent: json['user_agent'] as String? ?? '',
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user