Code Monkey home page Code Monkey logo

androididchanger's Introduction

  • 支持预置fingerprint
  • 支持可扩展fingerprint
  • 支持最新版AndroidStudio编译器
  • 包教会编译、指导
  • 软件架构精良,通俗易懂,维护扩展成本极低
  • 仅仅因为维护和增加fingerprint的工作量较大,作者不再维护。

AndroidIdChanger(安卓手机设备信息查看/安卓改机工具)LatestVersion:1.24

  • 如果Xposed没安装或者没激活,则默认显示原始数值,这样工具作用等于安卓手机设备信息查看工具。
  • 如果安装Xposed并激活该工具,则可以实现改机效果,伪装成不同的手机设备。
  • 新增环境检测功能,主要用Native的方式获取机器的真实信息,持续增加。
  • 一键随机修改设备信息
  • 支持硬编码的设备信息
  • 支持email发送设备信息,主要是方便测试
  • 不同App使用不同的伪装配置信息,在一键改机后指定App。
  • 支持自定义设备信息,在data/data/com.xxx.xxx/shared_prefs/phoneinfo.xml中,可以在电脑中修改该文件,然后覆盖替换掉手机里的这个文件,即刻生效,无须重启手机,但是需要重启App。
  • Wifi Mac地址获取方式修改,解决Android6.0以上系统获取为02:00:00:00:00:00的问题,且获取多个,以供参考。

如有问题或建议,请在这里留言:Issues,当然我并不一定会有时间修复和解决。

中文 (Chinese):

  • 查看并修改安卓手机设备信息: IMEI、AndroidID、Wifi Mac、SerialNum、Wifi SSID、手机号、Bluetooth Mac、Google Ad Id、Wifi BSSID、IMSI、Sim卡状态、运营商信息、机器型号、制造商、品牌、系统版本、CPU_ABI、CPU_ABI2、SDK、BuildID、分辨率、IP等。

使用方法:

  • 安装APP,运行APP即可查看手机信息,可以随机修改信息
  • 安装Xposed
  • 在Xposed框架中启用本模块
  • 重启手机
  • 后面再做的修改一律不需要重启手机

English:

  • View and Change the value of IMEI, Android Id, Serial Number, Wifi Mac Address and service set identifier (SSID) of the current wifi network, Google advertising id, Bluetooth mac address, and so on.

  • You can random or manual set these values.

  • Can apply the values System Wide or in Per APP basis.

How to use :

  • Install app.
  • Enable module in xposed framework.
  • Open app and enter new values.
  • Reboot.
  • No need to reboot the phone later when random the info.

Thanks(感谢)

Example Screenshots

androididchanger's People

Contributors

bigsinger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androididchanger's Issues

Android 7.0 框架提示未启用

在7.0下(手机/平板)不点击随机就无法修改保存(可视化编辑),实际点保存查看xml文件是写入了的,但是在修改的时候选择修改某栏信息,再切换到其他栏目的时候,会丢失或者填入信息变成之前其他栏目填写的内容。

DEBUG: Improve logs

Hi,

In the lasted vesion (v1.12) in the logs isn't writed the hooked values. Without this it's impossible to debug which value is used.

I suggest to change to something like this:

        //////////////////////////////////////////////////////////////////////////
        // FINGERPRINT
        if (Constant.HARDCODED) {
            modValue = "Meizu/meizu_mx3/mx3:4.4.4/KTU84P/m35x.Flyme_OS_3.7.3.20140909113158:user/release-keys";
        } else {
            modValue = PhoneInfoUtils.getValue("FingerPrint");
        }
        if (TextUtils.isEmpty(modValue)) {
            XposedLog.logd("HookerPhone.hook(): no hook FINGERPRINT, it's  null");
        } else {
            final String hookValue = modValue;
            try {
                XposedHelpers.setStaticObjectField(Build.class, "FINGERPRINT", hookValue);
                XposedLog.logd("HookerPhone.hook(): hooked FINGERPRINT with " + hookValue);
            } catch (Exception e) {
                XposedLog.logd("HookerPhone.hook() : error hooking FINGERPRINT");
            }
        }
        //////////////////////////////////////////////////////////////////////////

This will be usefull too when multiple calls are done (like with IMEI) and some exception is triggered. With this will be more easy to find which call fails.

You agree?

能否加一个白名单的功能

大部分程序都可以正常hook,但是有极个别的无法使用,比如说网易云音乐,请问一下能否改一下过滤规则,添加进去不被hook

GoogleAdID & SimOperatorName "null"

Hi,

In the UI, in the Original section, I see that these two values are empty:

  • GoogleAdID (googlead_id)
  • SimOperatorName

Also, I see the same result ('null') in the new "mydevice.htm" file.

These are the only values empty in my device.
I feel we need to verify the code and check about how to recover these values. I'm using Stock Android 7.0.

Add support per App context

Hi,

I like to use this module for changing ID info for only one specific App, not at the entire global environment.

Please, can this do it?
Thank you!

Xposed Module Repository

Hi,

Great to publish this module in "repo.xposed.info". However, I suggest to enhance the description. For example: indicate the supported Android versions (at time, only [KK,L,M]).

Thank you for this!

BUG: Changes in UI save incorrect values in "phoneinfo.xml"

Hi @bigsinger ,

In the last two versions (v1.14 & v1.15; even from others too, I don't remember), when changing the values using the UI and "saving" it, then the "phoneinfo.xml" file is corrupted. This is in the sense of some values are changed with others. Please, check it! Now I edit the file directly using nano in the shell and not using the UI (more easy for large text). However, if I change some simple value in the UI, then the file has changed others values too (with incorrect values).

Chan you fix it, please?
Thank you!

Core: Nougat problem with preferences

Hi,

In the lasted version (v1.12) all the functionality is working... except that in some devicies the preferences aren't avaliable. The observable behaviour is this: the user selects some hook values but the module reads "" (aka empty) values, and then none of the values are hooked.

After reading a lot of documents, the problems seems to be related with the SECURITY context. As the module is running inside the Xposed Framework Context, it can't read/write the preferences. Using "root" privileges for this task is a very dirty hack. So a different solution is required.

Here you can found a detailed description of the the problem by the reputated developer C3C0 (with responses from robo89, the main developer of Xposed):
rovo89/XposedBridge#74

I'll check in my device if changing file permissions (with 'chmod') is sufficient for fix the "read" issue.

Feature Request: Add MAC change for Eth0

Would you be able to add MAC change for ETH0 for android TV box? app works perfectly, I didn't know how to get in touch, so added an issue. Please consider this request to save my device from randomly changing
network mac address on reboot. Thank you.

Improve HOMEPAGE

Hi,

I suggest to improve the README.md file:

# AndroidIdChanger

## 中文 (Chinese):

- 查看并修改安卓手机设备信息:
IMEI、AndroidID、Wifi Mac、SerialNum、Wifi SSID、手机号、Bluetooth Mac、Google Ad Id、Wifi BSSID、IMSI、Sim卡状态、运营商信息、机器型号、制造商、品牌、系统版本、CPU_ABI、CPU_ABI2、SDK、BuildID、分辨率、IP等。

### 使用方法:
- 安装APP,运行APP即可查看手机信息,可以随机修改信息
- 安装Xposed
- 在Xposed框架中启用本模块
- 重启手机

## English:

- View and Change the value of IMEI, Android Id, Serial Number, Wifi Mac Address and service set identifier (SSID) of the current wifi network, Google advertising id, Bluetooth mac address, and so on.

- You can random or manual set these values.

- Can apply the values System Wide or in Per APP basis.

### How to use :
- Install app.
- Enable module in xposed framework.
- Open app and enter new values.
- Reboot.

## Example Screenshots

![](https://github.com/bigsinger/AndroidIdChanger/blob/master/screenshot/1.png)

![](https://github.com/bigsinger/AndroidIdChanger/blob/master/screenshot/2.png)

I hope you agree!

Nougat support

Hi,

I confirm that it doesn't work with Android 7.0.
I see a lot (haundred) of errors in the Xposed's log.

If you agree I can assist for adding Nougat support (with testing, not conding).

The first part of the log:

10-16 09:51:12.923 E/Xposed  ( 1732): de.robv.android.xposed.XposedHelpers$ClassNotFoundError: java.lang.ClassNotFoundException: com.android.internal.telephony.PhoneSubInfo
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:69)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:258)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at com.bigsing.changer.b.b.a(SourceFile:34)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at com.bigsing.changer.MainHook.handleLoadPackage(SourceFile:63)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:34)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:61)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:106)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.XposedInit$5.afterHookedMethod(XposedInit.java:202)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:353)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.LoadedApk.<init>(<Xposed>)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.ActivityThread.getPackageInfo(ActivityThread.java:1988)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.ActivityThread.getPackageInfo(ActivityThread.java:1943)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.ActivityThread.getPackageInfo(ActivityThread.java:1915)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.ContextImpl.createPackageContextAsUser(ContextImpl.java:1839)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.ContextImpl.createPackageContext(ContextImpl.java:1827)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.content.ContextWrapper.createPackageContext(ContextWrapper.java:778)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.ActivityThread.installProvider(ActivityThread.java:5825)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.ActivityThread.installContentProviders(ActivityThread.java:5444)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at android.app.ActivityThread.installSystemProviders(ActivityThread.java:6037)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at com.android.server.am.ActivityManagerService.installSystemProviders(ActivityManagerService.java:11610)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at com.android.server.SystemServer.startOtherServices(SystemServer.java:591)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at com.android.server.SystemServer.run(SystemServer.java:330)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at com.android.server.SystemServer.main(SystemServer.java:215)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at java.lang.reflect.Method.invoke(Native Method)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:103)
10-16 09:51:12.923 E/Xposed  ( 1732): Caused by: java.lang.ClassNotFoundException: com.android.internal.telephony.PhoneSubInfo
10-16 09:51:12.923 E/Xposed  ( 1732): 	at java.lang.Class.classForName(Native Method)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at java.lang.Class.forName(Class.java:400)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at external.org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:823)
10-16 09:51:12.923 E/Xposed  ( 1732): 	at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:67)
10-16 09:51:12.923 E/Xposed  ( 1732): 	... 26 more

This is the first error. However, all errors refers to
"java.lang.ClassNotFoundException: com.android.internal.telephony.PhoneSubInfo"

I feel in Nougat this class has another name.

SerialNo no change on Meizu Note M2

Hi, @bigsinger !
I tested your application on the device Meizu Note M2. And there were errors with the work of the application.
Problem:

  1. The application does not change the serial number of the device.
  2. Very often the application breaks the android. After the system is rebooted, the android desktop is not displayed on the screen. Instead of a desktop, a black screen. And to restore the work of the android device, have to restore the partition /system/.

Your application is very good and I want to use it. Help to solve these 2 problems.

P.S. Android version of my device: 5.1

Core: Spoof MAC address

Hi,

In order to change the MAC address of Wireless, Wired, Bluetoooth networks, two options are available:

  1. Physical change of the MAC. This will change the effective Ethernet address, and the network will use this address. This implies to modify the value in the Kernel. I think this can't be done using Xposed.

  2. Change the value readed by Apps & SystemUI. This will not change the network address, but the App will think that the value is different.

To achieve the option 2 some examples (for wifi already in the code):

XposedHelpers.findAndHookMethod("android.net.wifi.WifiInfo", loadPackageParam.classLoader, "getMacAddress", ...
XposedHelpers.findAndHookMethod("android.bluetooth.BluetoothAdapter", loadPackageParam.classLoader, "getAddress", ...

I'll search for wired connections.

Core/UI: Share values over EMAIL

Hi,

I suggest to include a method for sharing by email (for make a backup or send to developer) the used values.
You can use this code for use your regular email client installed in your device:

public void composeEmail(String[] addresses, String subject) {
    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:")); // only email apps should handle this
    intent.putExtra(Intent.EXTRA_EMAIL, addresses);
    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

You agree?

Hi there, plz help me .

My tvbox with rk3288 chip ,Android 4.4 system. already root and installed xposed.installer_2.7. Busybox...
And i'v try many MAC Changer form google playstore,but all not work for my tvbox.😰
And install AndroidIdChanger ,not work too. But its work on my mobilephone.Can any 1 help ???plz😢

Core: Additional ID data

Hi,

Please, can you add other useful info?

  • Manufacturer Name
  • Model Name
  • Hardware Name
  • Board Name
  • Product Name
  • Brand Name
  • Manufacturer Device Name
  • Bootloader Name

Thank you!

希望增加一项设置参数 characteristics

ro.build.characteristics
这个参数默认为 default,可以修改为平板、手机、电视三种模式:tablet/phone/tv, 默认是手机模式,配合density 修改 dpi 和机型来解除 Google Play 市场对目标平台的下载限制,有些手机App在平板和电视上不给下载,实际是可以安装使用的。

另外,能不能给不同app指定不同的配置呢?

TODO

  • SKU: getprop ro.boot.hardware.sku
    `
    XposedHelpers.findAndHookMethod(System.class, "getProperty", String.class, new XC_MethodHook() {
    @OverRide
    protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
    XposedBridge.log("==== System BEFORE ==== " + param.args[0]);
    }

    @Override
    protected void afterHookedMethod(MethodHookParam param) throws Throwable {
      if (param.args[0].toString().equals("http.agent")) {
        XposedBridge.log("==== System AFTER ==== " + (String) param.getResult());
        param.setResult("Dalvik/2.1.0 (Linux; U; Android 6.0.1; Nexus 5 Build/LMY47X)");
        XposedBridge.log("==== System AFTER ==== " + (String) param.getResult());
      }
    }
    

    });
    `
    ref

  • NO HOOK VALUES:

  • googlead_id

  • IP

  • NetType

  • NetworkOperatorName

  • Resolution

  • Width

  • SimSerialNo

  • Height

  • [ ]
    `
    <application ...
    android:allowBackup="true">

`
  • Randow don't update, use 'SAVE'
  • an't change ICC_ID, IP, and MNC & MCC & Operator (in some apps). Also you have cool feature to change resolution but it also not work

无法模拟

网易的某些应用无法模拟
Android 7.1
例如 com.netease.*

Core: Split preferences values

Hi,

At time, the file "CHANGER.xml" has two types of values:

  1. General settings, like "hook_all_app", "debug_mode" and "use_hardcoded_value".
  2. Values to hook, like "IMEI", "SerialNo", "CODENAME", etc.

I suggest to move the values of type 2 to the "phoneinfo.xml" as it will be more consistent.
You agree?

Futhermore, I want to know if the file "com.bigsing.changer.BETA_VALUES.xml" it's really necessary. Perhaps the content can be incorporated to "CHANGER.xml" (even "ThemeColor.xml" too). The idea is have one file for App config, and one file for Hooks config.

MAC 02:00:00:00:00:00

I have tried everything and I can not make it read and change the mac address of the ANDROID device 7.1.1 AND XPOSED 87

UI: HARDCODED in options

Hi,

The new HARDCODED option in the UI is great. It works like charm!
However, I have two suggestions for this in the UI:

  1. The colour of letters in the Settings option is white, identical to the background colour. Please, use another different colour for the text.

  2. When the HARDCODED is ON, the values in the "After" settion needs to be the hardcoded values. If not, the users are confused. Perhaps in this case you can write the values in red (or different colour, but not black or gray as the regular values).

You agree with this improvement?

Internet connection problem

Hi. Help solve the problem. The program in which I use the substitution, does not see the Internet connection. When I remove it from the Changer v1.13 list, it sees an Internet connection. Android Nougat 7.0 / Xposed Framework 88.1 / Changer v1.13 /
Sorry for the bad English. I am from Ukraine, use the translator.

Source code

Hi,

Even you can't post the full source code of the project, I suggest to share the main java file (the one with hooks). This will simplifies the review of the code and creates the oportunity for sharing ideas.

You agree?

(Note: Simply put "HookerPhone.java" in "/src" subdirectory).

UI: Original attributes

Hi,

I like leave some of the values as original. So I suggest these improvements:

  • In section "AFTER" write in gray color the attributes not changed.
  • In section "BEFORE" a toggle button for "reset" (or copy) the original value.
  • Use any "empty" value as "original" one.

I hope you agree to implement this.
Regards.

Crumble the app

Hi. After installing the module . Other applications refuse to start . Such as OpenVPN and some others . How to fix ?please tell me

SUGGESTION: Disable "Random" autosave

Hi,

When changing between "Original" and "After" in the UI for checking the values, sometimes I select "Random". That's not my intention, but it happens.

The problem then is that: when you select "Random" the file "phoneinfo.xml" is always update. I find this quite annoying. I prefer to select "Save" for commit the changes. So, I suggest this simple change in the UI:

  • Only when you select "SAVE" the values are updated in the "phoneinfo.xml" file. Moreover, I suggest to use capital letters fir SAVE for distinguish it from "Original", "After" and "Random".

I hope you agree.
Thank you for this project!

UI: New format for "Specific App" Activity

Hi,

I suggest a new format for the UI Activity "Specific App".
Here an example:

≡  Changer v1.x
--------------------
 System wide  (-x)

Application 1   [ ]
Application 2   [ ]
Application 3   [X]
Application 4   [ ]
Application 5   [ ]
      ...

The idea is integrate a global switch for selecting "global wide" chaging. This switch enables the rewrite of values for the entire system when it's on. Futhermore, when it's on then the list of Apps is grayed (disabled). However, when the switch is off, then you can select the Apps you like to rewrite. You can select one or more; and only in these Apps the values are changed.

You agree with this new format?

使用过程中相关BUG及建议

1.xposed中模块已启用并重启,可总提示未启用,实测改变生效
2.作者能否不要进行全局HOOK, 建议可设置对单个APP进行HOOK
3.建议增加保存配置及加载配置的功能,有些HOOK并非一次性
以上仅个人建言, 谢谢.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.