146 lines
4.2 KiB
Python
146 lines
4.2 KiB
Python
from datetime import datetime, timedelta
|
|
import os
|
|
import logging
|
|
import random
|
|
|
|
|
|
log = logging.getLogger("NF-ESN")
|
|
|
|
def chrome_esn_generator():
|
|
|
|
ESN_GEN = "".join(random.choice("0123456789ABCDEF") for _ in range(30))
|
|
esn_file = '.esn'
|
|
|
|
def gen_file():
|
|
with open(esn_file, 'w') as file:
|
|
file.write(f'NFCDIE-03-{ESN_GEN}')
|
|
|
|
if not os.path.isfile(esn_file):
|
|
log.warning("Generating a new Chrome ESN")
|
|
gen_file()
|
|
|
|
file_datetime = datetime.fromtimestamp(os.path.getmtime(esn_file))
|
|
time_diff = datetime.now() - file_datetime
|
|
if time_diff > timedelta(hours=6):
|
|
log.warning("Old ESN detected, Generating a new Chrome ESN")
|
|
gen_file()
|
|
|
|
with open(esn_file, 'r') as f:
|
|
esn = f.read()
|
|
|
|
return esn
|
|
|
|
def edge_esn_generator():
|
|
|
|
ESN_GEN = "".join(random.choice("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ") for _ in range(24))
|
|
esn_file = '.esn'
|
|
|
|
def gen_file():
|
|
with open(esn_file, 'w') as file:
|
|
file.write(f'NFCDIE-03-{ESN_GEN}1111')
|
|
|
|
if not os.path.isfile(esn_file):
|
|
log.warning("Generating a new Edge ESN")
|
|
gen_file()
|
|
|
|
file_datetime = datetime.fromtimestamp(os.path.getmtime(esn_file))
|
|
time_diff = datetime.now() - file_datetime
|
|
if time_diff > timedelta(hours=6):
|
|
log.warning("Old ESN detected, Generating a new Edge ESN")
|
|
gen_file()
|
|
|
|
with open(esn_file, 'r') as f:
|
|
esn = f.read()
|
|
|
|
return esn
|
|
|
|
|
|
def playready_esn_generator():
|
|
# Lista di modelli di TV e dispositivi PlayReady
|
|
tv_models = [
|
|
"HE55A7000EUWTS", # Hisense
|
|
"KD55X85J", # Sony
|
|
"UN55TU7000", # Samsung
|
|
"OLED55C1", # LG
|
|
"55PUS7805", # Philips
|
|
"55R635", # TCL
|
|
"L55M5-Z2", # Xiaomi
|
|
]
|
|
|
|
# Lista di produttori
|
|
manufacturers = [
|
|
"HISENSE",
|
|
"SONY",
|
|
"SAMSUNG",
|
|
"LG",
|
|
"PHILIPS",
|
|
"TCL",
|
|
"XIAOMI"
|
|
]
|
|
|
|
# Scegli un produttore e un modello casualmente
|
|
manufacturer = random.choice(manufacturers)
|
|
model = random.choice(tv_models)
|
|
|
|
esn_file = '.esn_playready'
|
|
|
|
def gen_file():
|
|
# Crea un ESN nel formato NFANDROID1-PRN-[MANUFACTURER]-[MODEL]
|
|
esn = f"NFANDROID1-PRN-{manufacturer}-{model}"
|
|
with open(esn_file, 'w') as file:
|
|
file.write(esn)
|
|
|
|
if not os.path.isfile(esn_file):
|
|
log.warning("Generating a new PlayReady ESN")
|
|
gen_file()
|
|
|
|
file_datetime = datetime.fromtimestamp(os.path.getmtime(esn_file))
|
|
time_diff = datetime.now() - file_datetime
|
|
if time_diff > timedelta(hours=6):
|
|
log.warning("Old ESN detected, Generating a new PlayReady ESN")
|
|
gen_file()
|
|
|
|
with open(esn_file, 'r') as f:
|
|
esn = f.read()
|
|
|
|
return esn
|
|
|
|
def android_esn_generator():
|
|
# Parametri per dispositivi Android
|
|
manufacturers = ["SAMSUNG", "ONEPLUS", "XIAOMI", "MOTOROLA", "GOOGLE", "NVIDIA"]
|
|
models = [
|
|
"SM-T865", "SM-G975F", "SM-N975F", # Samsung
|
|
"IN2020", "KB2000", "LE2100", # OnePlus
|
|
"M2007J3SG", "M2004J19C", "M2102J20SG", # Xiaomi
|
|
"Pixel 5", "Pixel 6 Pro", "Pixel 7", # Google
|
|
"SHIELD Android TV", "SHIELD Pro" # NVIDIA
|
|
]
|
|
|
|
# Genera una stringa casuale alfanumerica per l'ID del dispositivo
|
|
device_id = "".join(random.choice("0123456789ABCDEF") for _ in range(16))
|
|
|
|
esn_file = '.esn_android'
|
|
|
|
def gen_file():
|
|
manufacturer = random.choice(manufacturers)
|
|
model = random.choice(models)
|
|
# Formato ESN per Android: NFANDROID1-PRV-[build info]-[device ID]-[model]
|
|
esn = f"NFANDROID1-PRV-{manufacturer[:4]}{random.randint(1000,9999)}-{device_id}-{model}"
|
|
with open(esn_file, 'w') as file:
|
|
file.write(esn)
|
|
|
|
if not os.path.isfile(esn_file):
|
|
log.warning("Generating a new Android ESN")
|
|
gen_file()
|
|
|
|
file_datetime = datetime.fromtimestamp(os.path.getmtime(esn_file))
|
|
time_diff = datetime.now() - file_datetime
|
|
if time_diff > timedelta(hours=6):
|
|
log.warning("Old ESN detected, Generating a new Android ESN")
|
|
gen_file()
|
|
|
|
with open(esn_file, 'r') as f:
|
|
esn = f.read()
|
|
|
|
return esn
|