Motorola Admiral XT603 SPC \ MSL unlocking

waqas aamir

Member
Oct 7, 2015
5
0
0
Visit site
Can i use this script to get MSL for my Motorola Electrify 2 XT881? In Electrify 2 ##MSL# does nothing. First I've to dial #073887* send, then programming menu opens & I've to enter the MSL code and hit Verify. Or if there is some other method for Electrify 2 please let me know

Thanks
 

garbb

Well-known member
Nov 26, 2011
70
3
0
Visit site
Can i use this script to get MSL for my Motorola Electrify 2 XT881? In Electrify 2 ##MSL# does nothing. First I've to dial #073887* send, then programming menu opens & I've to enter the MSL code and hit Verify. Or if there is some other method for Electrify 2 please let me know

Thanks

How do you know that ##MSL# does nothing on your phone if you don't know what the MSL is? Or are you saying that you have heard from other people with that phone who know their MSL that ##MSL# does nothing?
 

waqas aamir

Member
Oct 7, 2015
5
0
0
Visit site
I've tested it on another electrify 2 whose MSL is 000000. Actually in Electrify 2 (US Cellular) initially the MSL is 0 when its new but MSL changes once number is activated.
 

garbb

Well-known member
Nov 26, 2011
70
3
0
Visit site
Hmm, well you might be out of luck then. The only reason that the script works is that there is no limit on how many attempts you can make to guess the MSL by typing ##xxxxxx#, Usually with menus like that programming menu it will usually shut off the phone or make you wait a while after a few incorrect MSL guesses. So even if you were to modify the script to type MSL guesses into the menu it would take waaaaayy too long.
You could always try *#*#MSL#*#* which works on some phones, but I've only seen it for samsungs.
 
Last edited:

garbb

Well-known member
Nov 26, 2011
70
3
0
Visit site
I've made some improvements to this script. It is now much less likely to get false positives and will also save the last MSL that it tried and automatically resume from that number the next time that you run it.
link: d-h.st/ALNc

how to use:
Before you install the script, get to a shell with adb and run "logcat -c" to clear the log. Then go to the dialer on your phone and type in a random 6 digit MSL (##xxxxxx#). Then run "logcat -d" to dump everything in the log since you cleared it.
Hopefully you will see something in the log that indicates that the MSL was not correct, for example for my current phone I see "I/MSL_Service( 1567): not msl and otksl : 963250" where 963250 was the MSL I input that was incorrect.
In the 2nd line of the script where it says failtext= put part of the text that you see in the log for an incorrect MSL in quotes after the failtext=. So for my phone, I put failtext="not msl"

put your phone into airplane mode so that the script cannot be interrupted by a call or text, etc...
go to settings, display, animations, and set it to 'no animations' to make the script run a bit faster
go to settings, sounds and turn off audible touch tones to make the script run a bit faster
open the phone dialer
unzip the file and copy the msl.bf.sh and busybox files to /data/local/tmp/ on your phone with adb
get to a shell with adb and type the following commands and hit enter:
"cd /data/local/tmp/"
"chmod 777 msl.bf.sh"
"chmod 777 busybox"
now make sure that the screen is on and unlocked and the phone dialer app is on the screen
run the command "./msl.bf.sh"

Code:
#text that is output in logdump if incorrect MSL is entered
failtext="not msl"

#change current working directory to script directory
cd ${0%/*}

#this line makes the "read" command for input non-blocking so it doesn't wait for input before proceeding
if ./busybox [ -t 0 ]; then ./busybox stty -echo -icanon -icrnl time 0 min 0; fi

#if last number has been saved then use this as starting number, if not then start at 000000
if ./busybox [ -f ./last.txt ]; then
	echo resume file exists
	s=$(cat last.txt)
else
	echo resume file does not exist, starting at 000000
	s="000000"
fi
echo "$s"

keypress=''
for i in $(./busybox seq -w $s 999999)
do
	read keypress
	if ./busybox [ "x$keypress" != "x" ]; then exit 1; fi
	./busybox printf "##$i#"
	logcat -c
	input text "##$i#"
	count=1		#reset logcat dump counter
	while true; do
		./busybox printf " logcat check #$count "
		# d="`logcat -d -s MSL_Service`"
		d="`logcat -d`"
		e=$(echo $d | ./busybox grep "$failtext")
		if ./busybox [ "$e" != "" ] ; then	#found fail text
			echo "not MSL"
			break
		else
			if ./busybox [ $count -ge 10 ] ; then	#didn't find fail text and we checked logcat dump multiple times, maybe found MSL?
				./busybox printf "\n"
				echo "$d"
				echo "success?"
				echo $i > done.txt
				echo $d >> done.txt
				exit 1
			fi
		fi
		count=`./busybox expr $count + 1`	#increment logcat dump counter
	done
	echo $i > last.txt	#store last number for resuming
done

It will now try every combination of numbers from 000000 to 999999 to guess the MSL. Yes, this will take a while. I recommend letting it run overnight. If it successfully finds the MSL you will see the service programming menu on the screen and your MSL should be the last number that you see in the console window on your computer. If you want to stop the script before it finishes then press any letter key (on your computer in the console window) and hit enter.(PLEASE NOTE:if you do not stop the script this way it will continue to run on your phone even if you unplug it from your computer which will be annoying and probably require you to reboot your phone to stop it...)
 
Last edited:

Trending Posts

Forum statistics

Threads
943,148
Messages
6,917,517
Members
3,158,847
Latest member
fallingOutOfLoveWfithTech