目前用MarketEnable,MarketAccess 之类的软件可以做到,但也有缺点:被修改apn,重启后无效。
大陆第三方ROM,一般都直接修改了电子市场包,观察一下安卓网自制的ROM,build.prop中都多了两行代码:
hiapk.vending.operator.name=T-Mobile
hiapk.vending.operator=310260
把运营商改为美国的。然后用
SystemProperties.get("hiapk.vending.operator.name");
SystemProperties.get("hiapk.vending.operator");
替换
TelephonyManager.getSimOperatorName();
TelephonyManager.getSimOperator()
下面是我修改的2.2.7版本的patch:
$ colordiff Vending_o/smali/com/android/vending/VendingApplication\$ApiClientContext.smali Vending/smali/com/android/vending/VendingApplication\$ApiClientContext.smali
239,245c239
< iget-object v2, p0, Lcom/android/vending/VendingApplication$ApiClientContext;->this$0:Lcom/android/vending/VendingApplication;
<
< invoke-static {v2}, Lcom/android/vending/VendingApplication;->access$100(Lcom/android/vending/VendingApplication;)Landroid/telephony/TelephonyManager;
<
< move-result-object v2
<
< invoke-virtual {v2}, Landroid/telephony/TelephonyManager;->getSimOperatorName()Ljava/lang/String;
---
> const-string v2, "T-Mobile"
247c241
< move-result-object v7
---
> move-object/from16 v7, v2
259,265c253
< iget-object v2, p0, Lcom/android/vending/VendingApplication$ApiClientContext;->this$0:Lcom/android/vending/VendingApplication;
<
< invoke-static {v2}, Lcom/android/vending/VendingApplication;->access$100(Lcom/android/vending/VendingApplication;)Landroid/telephony/TelephonyManager;
<
< move-result-object v2
<
< invoke-virtual {v2}, Landroid/telephony/TelephonyManager;->getSimOperator()Ljava/lang/String;
---
> const-string v2, "310260"
267c255
< move-result-object v9
---
> move-object/from16 v9, v2
重新打包,签名即可。
Leave a Reply