[Android Software/Hacking General [Developers Only]] alzakx:
Hey!

This is my first contribution to the forum. So, pretty much I also want to cure Skype from the ridiculous restriction it has on the US. I bet phone carriers were not too happy with the idea of allowing Skype users make voice calls on their 3G network instead of using their voice service. It always come down to the money. Bare this idea in your mind: They take away our freedom because they want more money.

Ok, with that being said, I give you all the file that in theory needs to be modifed to allow 3G calls in the attachment.

Also, I'm not too sure about this, but I guess the hack must be done somewhere near this method:

.method public static a(Landroid/content/Context;)Z
.locals 4

const/4 v3, 0x0

const/4 v2, 0x1

const-string v0, "connectivity"

invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

move-result-object v0

check-cast v0, Landroid/net/ConnectivityManager;

invoke-virtual {v0}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;

move-result-object v0

if-eqz v0, :cond_0

invoke-virtual {v0}, Landroid/net/NetworkInfo;->getType()I

move-result v1

if-ne v1, v2, :cond_0

move v1, v2

:goto_0
if-eqz v0, :cond_1

invoke-virtual {v0}, Landroid/net/NetworkInfo;->isConnected()Z

move-result v0

if-eqz v0, :cond_1

move v0, v2

:goto_1
if-eqz v1, :cond_2

if-eqz v0, :cond_2

move v0, v2

:goto_2
return v0

:cond_0
move v1, v3

goto :goto_0

:cond_1
move v0, v3

goto :goto_1

:cond_2
const-string v0, "phone"

invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

move-result-object p0

check-cast p0, Landroid/telephony/TelephonyManager;

invoke-virtual {p0}, Landroid/telephony/TelephonyManager;->getPhoneType()I

move-result v0

const/4 v1, 0x2

if-ne v0, v1, :cond_4

invoke-virtual {p0}, Landroid/telephony/TelephonyManager;->isNetworkRoaming()Z

move-result v0

if-nez v0, :cond_3

invoke-virtual {p0}, Landroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;

move-result-object v0

invoke-static {v0}, Lcom/skype/raider/service/y;->d(Ljava/lang/String;)Z

move-result v0

if-nez v0, :cond_3

move v0, v2

goto :goto_2

:cond_3
move v0, v3

goto :goto_2

:cond_4
invoke-virtual {p0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;

move-result-object v0

invoke-static {v0}, Lcom/skype/raider/service/y;->d(Ljava/lang/String;)Z

move-result v0

if-nez v0, :cond_5

move v0, v2

goto :goto_2

:cond_5
move v0, v3

goto :goto_2
.end method

You'll find it on line 1776.

The one that caught my attention was line 1859

invoke-virtual {p0}, Landroid/telephony/TelephonyManager;->getSimCountryIso()Ljava/lang/String;

and line 1879

invoke-virtual {p0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;

If someone wants to take a crack at it, please, let us know. I tried and failed miserably. This is what I did:

1- Downloaded the Skype App from the market to my phone.

2- Used Astro file manager to backup the app

3- Connected the phone to my PC un USB mode

4- Pulled the skype apk from the backups folder on the SD card to my pc

5- Unpacked the apk with apktool

6- looked for the file y.smali

7- Opened it with notepad

8- Crack my head trying to figure out how the syntax of the smali files work

9- Guessed about the best suspect method calls

10-Tried to modify the file changing: move v0, v3 to move v0, v2 on 1894

11-Saved the file

12-Repacked the file with apktool

13-Sign the apk with Keytool and Jarsinger from the Java SDK

14-Notice that the file size was smaller that the one I pulled from my phone

15-Think that I f*cked up and that this will not work

16-Copy the apk back to the sd card

17-Try to install it with Astro file manager

18-Once installed I open the app and BAM! it crashes!

19-Give up

That's pretty much it. Please let me know if I can help.

Tnx!