TFT Unlocker Digital Source Code (Unpacked)

Standard

TFT Unlocker Digital

TFT Unlocker Digital  is supported mediatek , spd , samsung , huawei, xiaomi,oppo and more … to repair service (like imei , flash, frp and more …)

 

About Source code of TFT Unlocker

As a security researcher, we analyzed this project.
This software used the obfuscation,virtualization method to protect. that we bypassed all its security layers and reached the raw code.

Now the source code of this software (up to the latest version) is available, which you can read in vb.net, c# language.

Certainly, considering the capabilities of this tool, studying its source codes will be very useful.

 

To get the src & solution of this project contact Telegram: @GsmCoder

Huawei Retail DEMO Remove in adb mode

Aside

How to Remove Demo mode in huawei devices ?

  • in this case you can remove huawei demo and convert to Global mode!
  • enable usb debuging
  • download adb client
  • For this operation , we need to uninstall some service
  • Run this command with adb

adb shell

pm uninstall -k –user 0 com.huawei.retaildemo

pm uninstall -k –user 0 com.huawei.retail.assistant

pm uninstall -k –user 0 com.booking

pm uninstall -k –user 0 com.huawei.experience.ec

pm uninstall -k –user 0 com.android.managedprovisioning

pm uninstall -k –user 0 com.gamious.briquidmini

pm uninstall -k –user 0 com.gamious.lines

pm uninstall -k –user 0 com.microfun.munchkin.test

pm uninstall -k –user 0 com.vectorunit.silver.demo

pm uninstall -k –user 0 com.neuralprisma.huawei.retail

 

reboot device

 

Remove FRP And Bypass Mi Account solution for Xiaomi devices in sideload mode

Standard

with this feature you can remove frp protection also mi Account(mi cloud) in sideload mode.

  • micloud account never back after connect to internet.
  • Just need to boot device to recovery mode and select “connect with mi assistant button“ and do our solution

 

what device is support?

mojito  Redmi Note 10
sunny  Redmi Note 10
agate  Xiaomi 11T
alioth POCO F3
cmi Mi 10 Pro
courbet Mi 11 Lite 4G
curtana Note 9S/Redmi Note 9 Pro/Redmi Note 10 Lite
davinci  Redmi K20 / Mi 9T
excalibur Redmi Note 9 Pro Max
fog Redmi 10C
gauguin  Mi 10T Lite / Mi 10i / Redmi Note 9 Pro
ginkgo  Redmi Note 8 / 8T 
joyeuse Redmi Note 9 Pro
lime Redmi Note 9 4G/9T / 9 Powe
lisa Mi 11 LE / Xiao 11 Lite 5G
raphael Redmi K20 Pro/Mi 9T Pro.
renoir Mi 11 Lite 5G
rosemary Redmi Note 10S / POCO M5S / Note 11 SE
spes Redmi Note 11
spesn Redmi Note 11 NFC
Star Xiaomi Redmi Note 11 Pro
surya POCO X3 NFC
sweetin  Redmi Note 10 Pro / Pro Max
toco Mi Note 10 Lite
umi  Mi 10 
apollo Mi 10T/Mi 10T Pro/Redmi K30S 
vayu POCO X3 Pro
veux Note 11 Pro 5G
vili  Xiaomi 11T Pro
zeus Xiaomi 12 Pro
gram POCO M2 Pro
phoenixin POCO X2
sweet Redmi Note 10 Pro

 

https://github.com/Alephgsm/Mi-Acccount-Bypass-in-sideload-mode

Direct bypass (cert) (Fix NV data corrupted) After repair imei in Xiaomi devices

Standard

If you are a mobile technician or tool developer, you should know that Xiaomi devices are automatically redirected to recovery mode after IMEI repair and display a NV data corrupted message!
What is the reason?
The reason for displaying this error is that the IMEI written on the device cannot be authenticated.

 

How to fix Fix NV data corrupted?

  • this solution is working on mediatek devices.
  • we send a solution to bypass nvdata certificate to repair in direct mode
  • in this case , you can patch cert in flashmode(da mode (prom,preloader))
  • It doesn’t matter how you restore the imei on device (for example, metamode or flashmode).

To get the src & solution contact Telegram: @GsmCoder

 

Freya – a beautifull tool for samsung flash with the best features

Standard

Freya

Freya is a beautifull .Net project for samsung flash Based on (https://github.com/Alephgsm/SharpOdinClient)

Freya is like odin for flash, Read info,repartition (Automatically) but with faster and best features

Feature

  • Read Pit
  • Repartition
  • Select the desired files from inside the package that you want to Flash on device.

Screenshot

Manually Select Files

In this method, you can select the files that you want to be flashed on the device. 

Auto find pit

After selecting the Tar file, Freya starts searching its contents to find the pit file, if can find , Freya can select pit package in the pit section. 

Fast Flash, Read info,Repartition

you can see your device information in flashing process also you can checked repartition option in freya 

Donate

theter TRC20 TXZ1KviFtRzEiumVD8UCH1W7etJ2vM9VsQ

SharpOdinClient – samsung devices flash library in C#

Standard

SharpOdinClient

SharpOdinClient is a .NET library that allows .NET applications to communicate with samsung android devices in download mode.

A suitable client for flash(image , tar.md5 , lz4), getting info and implementing other features.

It provides a .NET implementation of the odin protocol.

Requirements:

  • .NET Framework 4.5.1
  • Official Samsung usb driver

How does work?

USB communication in SharpOdinClient is serialport.

  1. install Official Samsung usb driver
  2. Connect your device in download mode

Namespaces

first add namespaces of SharpOdinClient on your project

using SharpOdinClient.structs;
using SharpOdinClient.util;

Subscribe for events

        public MainWindow()
        {
            InitializeComponent();

            Odin.Log += Odin_Log;
            Odin.ProgressChanged += Odin_ProgressChanged;
        }

        private void Odin_ProgressChanged(string filename, long max, long value, long WritenSize)
        {
        }

        private void Odin_Log(string Text, SharpOdinClient.util.utils.MsgType Color)
        {
        }

Find Automatically samsung devices in download mode

        {
            //Find Auto odin device
            var device = await Odin.FindDownloadModePort();
            //device name
            Console.WriteLine(device.Name);

            // COM Port Of device 
            Console.WriteLine(device.COM);

            // VID and PID Of Device
            Console.WriteLine(device.VID);
            Console.WriteLine(device.PID);
        }

Read Info from device

        {
            if(await Odin.FindAndSetDownloadMode())
            {
                //get info from device
                var info = await Odin.DVIF();
                await Odin.PrintInfo();
            }
        }

in info variable we get dictionary of string , string The concept of some ‘keys’

  • capa = Capa Number
  • product = Product Id
  • model = Model Number
  • fwver = Firmware Version
  • vendor = vendor
  • sales = Sales Code
  • ver = Build Number
  • did = did Number
  • un = Unique Id
  • tmu_temp = Tmu Number
  • prov = Provision

Read Pit from device

        {
            if(await Odin.FindAndSetDownloadMode())
            {
                await Odin.PrintInfo();
                if (await Odin.IsOdin())
                {
                    if(await Odin.LOKE_Initialize(0))
                    {
                        var Pit = await Odin.Read_Pit();
                        if (Pit.Result)
                        {
                            var buffer = Pit.data;
                            var entry = Pit.Pit;
                        }
                    }
                }
            }
        }

for doing any action in download mode , need first to check IsOdin and Run LOKE_Initialize argument, if you do not want to write anything on device set LOKE_Initialize totalfilesize parameter to zero(0)

buffer = is byte array of pit from device , you can write this buffer on file for saving pit entry = is list of partition information of your device

Write Pit On Device

  /// <summary>
        /// write pit file on your device
        /// </summary>
        /// <param name="pit">in this parameter, you can set tar.md5 contains have pit file(Like csc package of firmware)
        /// or pit file with .pit format
        /// </param>
        /// <returns>true if success</returns>
        public async Task<bool> Write_Pit(string pit)
        {
            if (await Odin.FindAndSetDownloadMode())
            {
                await Odin.PrintInfo();
                if (await Odin.IsOdin())
                {
                    if (await Odin.LOKE_Initialize(0))
                    {
                        var Pit = await Odin.Write_Pit(pit);
                        return Pit.status;
                    }
                }
            }
            return false;
        }
  • pit parameter = if you want to write pit from tar or tar.md5(Like CSC) file on device you can set your tar type file path , also you can set your pit single file with .pit format file

Flash List Of tar.md5 package on device

        /// Add List Of Your tar package (bl,ap,cp,csc , or more)
        /// </summary>
        /// <param name="ListOfTarFile">add tar type files path in this list</param>
        /// <returns></returns>
        public async Task<bool> FlashFirmware(List<string> ListOfTarFile)
        {
            var FlashFile = new List<FileFlash>();
            foreach(var i in ListOfTarFile)
            {
                var item = Odin.tar.TarInformation(i);
                if(item.Count > 0)
                {
                    foreach (var Tiem in item)
                    {
                        if (!Exist(Tiem , FlashFile))
                        {
                            var Extension = System.IO.Path.GetExtension(Tiem.Filename);
                            var file = new FileFlash
                            {
                                Enable = true,
                                FileName = Tiem.Filename,
                                FilePath = i
                            };

                            if (Extension == ".pit")
                            {
                                //File Contains have pit
                            }
                            else if (Extension == ".lz4")
                            {
                                file.RawSize = Odin.CalculateLz4SizeFromTar(i, Tiem.Filename);
                            }
                            else
                            {
                                file.RawSize = Tiem.Filesize;
                            }
                            FlashFile.Add(file);
                        }
                    }
                }
               
            }

            if(FlashFile.Count > 0)
            {
                var Size = 0L;
                foreach (var item in FlashFile)
                {
                    Size += item.RawSize;
                }
                if (await Odin.FindAndSetDownloadMode())
                {
                    await Odin.PrintInfo();
                    if (await Odin.IsOdin())
                    {
                        if (await Odin.LOKE_Initialize(Size))
                        {
                            var findPit = FlashFile.Find(x => x.FileName.ToLower().EndsWith(".pit"));
                            if(findPit != null)
                            {
                                var res = MessageBox.Show("Pit Finded on your tar package , you want to repartition?", "", MessageBoxButton.YesNo);
                                if (res == MessageBoxResult.Yes)
                                {
                                    var Pit = await Odin.Write_Pit(findPit.FilePath);

                                }
                            }
                          
                            var ReadPit = await Odin.Read_Pit();
                            if (ReadPit.Result)
                            {
                                var EfsClearInt = 0;
                                var BootUpdateInt = 1;
                                if (await Odin.FlashFirmware(FlashFile, ReadPit.Pit, EfsClearInt, BootUpdateInt, true))
                                {
                                    if (await Odin.PDAToNormal())
                                    {
                                        return true;
                                    }
                                }
                            }
                        }
                    }
                }
            }


            return false;
        }

for flashing tar,tar.md5 contains files(lz4 , image, bin and more …) we need to create list of FileFlash from you tar package information.

Enable property in FileFlash is bool if you set this propery to false, SharpOdinClient does not Flash on the phone.

in FlashFirmware function , SharpOdinClient can write lz4 from contains of your tar package

Flash Single File

You can Flash your single file like boot.img or more files on partitions

        /// <summary>
        /// Flash Single File lz4 , image
        /// </summary>
        /// <param name="FilePath">path of your file</param>
        /// <param name="PartitionFileName">like boot.img , sboot.bin or more ...</param>
        /// <returns></returns>
        public async Task<bool> FlashSingleFile(string FilePath , string PartitionFileName)
        {
            var FlashFile = new FileFlash
            {
                Enable = true,
                FileName = PartitionFileName,
                FilePath = FilePath,
                RawSize = new FileInfo(FilePath).Length
            };

            if (await Odin.FindAndSetDownloadMode())
            {
                await Odin.PrintInfo();
                if (await Odin.IsOdin())
                {
                    if (await Odin.LOKE_Initialize(FlashFile.RawSize))
                    {
                        var ReadPit = await Odin.Read_Pit();
                        if (ReadPit.Result)
                        {
                            var EfsClearInt = 0;
                            var BootUpdateInt = 0;
                            if (await Odin.FlashSingleFile(FlashFile, ReadPit.Pit, EfsClearInt, BootUpdateInt, true))
                            {
                                if (await Odin.PDAToNormal())
                                {
                                    return true;
                                }
                            }
                        }
                    }
                }
            }


            return false;
        }

donate

theter TRC20 TXZ1KviFtRzEiumVD8UCH1W7etJ2vM9VsQ

Mediatek devices MT67xx direct imei Repair (LD0B_001)

Standard

About Source code

imei repair for mediatek device (MTK67XX) dual repair solution available

for MT65xx it’s already public long time ago, like this About MT67xx if you need for OEMs like VIVO,Huawei we can repair directly,

functions :

  • AES key to encrypt/decrypt the IMEI LID (LDB0_001).

  • POC to update nvram partition with the new IMEI the code written by some help from public kernel sources.
  • The key currently only supports MT67xx
  • No vendor specific, but for Xiaomi as I mentioned need to Patch CERT to get both new imei’s working.
  • For other OEM’s like (VIVO – HUAWEI – NOKIA) it’s ok.
  • 5G modem’s uses different encryption keys/ways not managed to get it working yet.
  • as I mentioned (reminder OPPO/XIAOMI needs to patch CERT/MODEM)

contact us for buy this source code

https://t.me/GsmCoder

samsung device download mode to brom and brom to normal algorithm

Standard

 switch your Samsung phone(mediatek chipset) from download mode to bootrom mode  !!

Also switch from bootrom mode to normal mode.

With this project, you will be able to switch any Samsung phone that has a mediatek processor from download mode to brom mode.

Well, you know about brom, right? Brom mode is present on all MediaTek processors, but depends on the device brand.
Samsung does not normally allow access to brom mode, and you need to Remove back Cover and  short test point .
Well, a lot of people might not like the Remove back Cover of the phone and the screws on their phone, we have a special solution for that.

so with our algorithm , you can switch download mode to brom , after doing anythink on your device , you can switch brom to normal mode.

This algorithm does not write static packet or binary . And performs calculations based on the data it receives from the device.

In this way, you can do bypass frp, imei repair, network unlock and anything that can be done in bootrom mode without the need for a point test.

This means that you connect the phone in download mode and you can perform your desired operations and return the phone to its normal state.

————————————-

If you have a special order, you can share it with us.

contact us for buy this source code

https://t.me/GsmCoder

C# mtkclient, mtk chipset protocol

Standard

About Source code

this project is rewrited from mtkclient python source code to c# step by step and tested all features working fine.

source code in github :

https://github.com/bkerler/mtkclient

this protocol is serialport (bypass sla\daa is libusb api) and no need to install usbdk,python or more … all features rewrited

Lasted updated :

  • updated to last version

Gallery of Codes:

Features

      • auto detect mtk devices from pid&amp;vid
      • DA(Download Agent) parser
      • supprted ufs,nand , emmc & up to last cpu
      • auto bypass sla & daa
      • crash preloader
      • Flash
      • Flash raw firmware
      • Read Partition tables(gpt)
      • Flash GPT
      • rebuild GPT
      • dump (backup) partitions
      • read preloader
      • flash preloader
      • Erase partitions
      • safe format
      • manual format
      • erase frp
      • backup , write , erase nv partitions
      • bootloader unlock/ relock
      • fix read/orange error after bootloader unlock
      • rpmb read/write/erase
      • rpmb read key
      • more ….

    • contact us for buy this source code

      https://t.me/GsmCoder