Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: android-hacker/VirtualXposed
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.20.3
Choose a base ref
...
head repository: android-hacker/VirtualXposed
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: vxp
Choose a head ref

Commits on Feb 24, 2021

  1. [Android 12]: fix crash of atms

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Feb 24, 2021
    Copy the full SHA
    4f385db View commit details
  2. [Android 12]: Fix launcher icon

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Feb 24, 2021
    Copy the full SHA
    f5b1174 View commit details
  3. Fix Android 11 broken obb

    Fix obb directory fetching and crash.
    Add a mount point.
    梁丽欣 authored Feb 24, 2021
    Copy the full SHA
    dfa1862 View commit details
  4. Fix Android 11 storage redirect

    Android 11 must enable storage redirect or crash
    梁丽欣 authored Feb 24, 2021
    Copy the full SHA
    13e6157 View commit details

Commits on Jun 12, 2021

  1. Merge pull request #986 from lianglixin/patch-1

    Fix Android 11 broken obb
    tiann authored Jun 12, 2021
    Copy the full SHA
    7c5a17a View commit details

Commits on Aug 18, 2021

  1. [Android 11]: Fix registerReceiverWithFeature on Android 11.

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Aug 18, 2021
    Copy the full SHA
    015764e View commit details
  2. FIX getDeviceIdWithFeature

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Aug 18, 2021
    Copy the full SHA
    067f21e View commit details
  3. [Android 11]: Fix Android 11 window session

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Aug 18, 2021
    Copy the full SHA
    3fb999c View commit details

Commits on Aug 19, 2021

  1. [Android 11]: fix getIntentWithFeature & getAppTasks in AMS.

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Aug 19, 2021
    Copy the full SHA
    3874cc9 View commit details
  2. [Android 11]: Fix junit libraries

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Aug 19, 2021
    Copy the full SHA
    317727b View commit details
  3. [Android 10]: Add getSerialForPackage hook

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Aug 19, 2021
    Copy the full SHA
    406925b View commit details
  4. Update README.md

    tiann authored Aug 19, 2021
    Copy the full SHA
    9c20336 View commit details

Commits on Nov 25, 2021

  1. Copy the full SHA
    e46e4d7 View commit details
  2. Update VClientImpl.java

    imsourcandy authored Nov 25, 2021
    Copy the full SHA
    877c6ae View commit details

Commits on Nov 26, 2021

  1. Copy the full SHA
    f33ceb6 View commit details
  2. Copy the full SHA
    9516bd4 View commit details
  3. Copy the full SHA
    c0dc3d6 View commit details
  4. Android 11: Fix crash on getContentProvider

    SecurityException on call getContentProvider, wrong packageName.
    imsourcandy authored Nov 26, 2021
    Copy the full SHA
    529e1bb View commit details
  5. Copy the full SHA
    7623a40 View commit details

Commits on Nov 28, 2021

  1. Merge pull request #1067 from so-lli/vxp

    Android 11: fixed opening of many applications
    tiann authored Nov 28, 2021
    Copy the full SHA
    229df1d View commit details

Commits on Apr 12, 2022

  1. Restore getCallingUid Hook

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    fa86886 View commit details
  2. Copy the full SHA
    4d43f3c View commit details
  3. Copy the full SHA
    fb0a654 View commit details
  4. Android 12: Fix splash screen

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    065eea3 View commit details
  5. Android 12: Fix provider hook

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    6bb556d View commit details
  6. Android 12: Fix ClientTransactionHandler

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    056dc68 View commit details
  7. Android 12: Fix registerReciverWithFeature

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    c38673a View commit details
  8. Android 12: Fix listenWithEventList

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    f224868 View commit details
  9. Android 12: Fix package info

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    a2a5244 View commit details
  10. Android 12: Fix junit

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    5c9a95f View commit details
  11. Android 12: make component lazy load

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Apr 12, 2022
    Copy the full SHA
    6978d7b View commit details

Commits on May 25, 2022

  1. minor fixes

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed May 25, 2022
    Copy the full SHA
    1e94179 View commit details

Commits on Jun 7, 2022

  1. 0.22.0

    Signed-off-by: tiann <twsxtd@gmail.com>
    tiann committed Jun 7, 2022
    Copy the full SHA
    122beb3 View commit details
Showing with 553 additions and 62 deletions.
  1. +1 −0 README.md
  2. +2 −2 VirtualApp/app/build.gradle
  3. +1 −1 VirtualApp/launcher
  4. +9 −0 VirtualApp/lib/src/main/java/android/app/ActivityOptions.java
  5. +77 −0 VirtualApp/lib/src/main/java/android/app/ClientTransactionHandler.java
  6. +93 −0 VirtualApp/lib/src/main/java/android/app/TransactionHandlerProxy.java
  7. +28 −3 VirtualApp/lib/src/main/java/com/lody/virtual/client/VClientImpl.java
  8. +4 −0 VirtualApp/lib/src/main/java/com/lody/virtual/client/core/InvocationStubManager.java
  9. +38 −24 VirtualApp/lib/src/main/java/com/lody/virtual/client/env/SpecialComponentList.java
  10. +21 −0 VirtualApp/lib/src/main/java/com/lody/virtual/client/fixer/ContextFixer.java
  11. +33 −3 VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/providers/ProviderHook.java
  12. +6 −0 VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/am/ActivityTaskManagerStub.java
  13. +63 −12 VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/am/MethodProxies.java
  14. +6 −0 VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/location/MethodProxies.java
  15. +14 −4 VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/notification/MethodProxies.java
  16. +37 −0 ...lib/src/main/java/com/lody/virtual/client/hook/proxies/os/DeviceIdentifiersPolicyServiceStub.java
  17. +5 −0 ...alApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/telephony/TelephonyRegistryStub.java
  18. +32 −1 VirtualApp/lib/src/main/java/com/lody/virtual/client/hook/proxies/telephony/TelephonyStub.java
  19. +7 −1 ...App/lib/src/main/java/com/lody/virtual/client/hook/proxies/window/session/WindowSessionPatch.java
  20. +15 −0 VirtualApp/lib/src/main/java/com/lody/virtual/client/ipc/VPackageManager.java
  21. +4 −0 VirtualApp/lib/src/main/java/com/lody/virtual/helper/compat/BuildCompat.java
  22. +1 −1 VirtualApp/lib/src/main/java/com/lody/virtual/helper/utils/ComponentUtils.java
  23. +5 −1 VirtualApp/lib/src/main/java/com/lody/virtual/server/pm/VPackageManagerService.java
  24. +14 −0 VirtualApp/lib/src/main/java/com/lody/virtual/server/pm/parser/PackageParserEx.java
  25. +2 −0 VirtualApp/lib/src/main/java/mirror/android/app/ContextImpl.java
  26. +24 −0 VirtualApp/lib/src/main/java/mirror/android/os/IDeviceIdentifiersPolicyService.java
  27. +10 −0 VirtualApp/lib/src/main/java/mirror/mirror/android/security/net/config/ApplicationConfig.java
  28. +1 −4 VirtualApp/lib/src/main/jni/Foundation/VMPatch.cpp
  29. +0 −5 VirtualApp/lib/src/main/jni/fb/jni/Environment.cpp
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -83,6 +83,7 @@ For Developers

- [File a bug](https://github.com/android-hacker/exposed/issues)
- [Wiki](https://github.com/android-hacker/VirtualXposed/wiki)
- [Telegram](https://t.me/vxp_devs)

Credits
-------
4 changes: 2 additions & 2 deletions VirtualApp/app/build.gradle
Original file line number Diff line number Diff line change
@@ -23,8 +23,8 @@ android {
applicationId "io.va.exposed64"
minSdkVersion 21
targetSdkVersion 23
versionCode 203
versionName "0.20.3"
versionCode 220
versionName "0.22.0"
multiDexEnabled false
android {
defaultConfig {
2 changes: 1 addition & 1 deletion VirtualApp/launcher
9 changes: 9 additions & 0 deletions VirtualApp/lib/src/main/java/android/app/ActivityOptions.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package android.app;

/**
* @author weishu
* @date 2021/2/24.
*/

class ActivityOptions {
}
Original file line number Diff line number Diff line change
@@ -23,12 +23,15 @@
import android.content.res.CompatibilityInfo;
import android.content.res.Configuration;
import android.os.IBinder;
import android.os.Parcelable;
import android.util.MergedConfiguration;
import android.view.DisplayAdjustments;

import java.util.List;
import java.util.Map;

import mirror.com.android.internal.content.ReferrerIntent;

/**
* Defines operations that a {@link ClientTransaction} or its items
* can perform on client.
@@ -68,6 +71,15 @@ public abstract void handleDestroyActivity(IBinder token, boolean finishing, int
/** Pause the activity. */
public abstract void handlePauseActivity(IBinder token, boolean finished, boolean userLeaving,
int configChanges, PendingTransactionActions pendingActions, String reason);

// Android 12
/** Destroy the activity. */
public abstract void handleDestroyActivity(ActivityThread.ActivityClientRecord r, boolean finishing,
int configChanges, boolean getNonConfigInstance, String reason);

/** Pause the activity. */
public abstract void handlePauseActivity(ActivityThread.ActivityClientRecord r, boolean finished, boolean userLeaving,
int configChanges, PendingTransactionActions pendingActions, String reason);
/**
* Resume the activity.
* @param token Target activity token.
@@ -78,6 +90,11 @@ public abstract void handlePauseActivity(IBinder token, boolean finished, boolea
*/
public abstract void handleResumeActivity(IBinder token, boolean finalStateRequest,
boolean isForward, String reason);

// Android 12
public abstract void handleResumeActivity(ActivityThread.ActivityClientRecord record, boolean finalStateRequest,
boolean isForward, String reason);

/**
* Stop the activity.
* @param token Target activity token.
@@ -96,27 +113,59 @@ public abstract void handleStopActivity(IBinder token, boolean show, int configC
public abstract void handleStopActivity(IBinder token, int configChanges,
PendingTransactionActions pendingActions, boolean finalStateRequest, String reason);

// Android 12
public abstract void handleStopActivity(ActivityThread.ActivityClientRecord r, int configChanges,
PendingTransactionActions pendingActions, boolean finalStateRequest, String reason);

/** Report that activity was stopped to server. */
public abstract void reportStop(PendingTransactionActions pendingActions);
/** Restart the activity after it was stopped. */
public abstract void performRestartActivity(IBinder token, boolean start);
/** Restart the activity after it was stopped. */
public abstract void performRestartActivity(ActivityThread.ActivityClientRecord r, boolean start);

/** Deliver activity (override) configuration change. */
public abstract void handleActivityConfigurationChanged(IBinder activityToken,
Configuration overrideConfig, int displayId);
public abstract void handleActivityConfigurationChanged(ActivityThread.ActivityClientRecord r,
Configuration overrideConfig, int displayId);

/** Deliver result from another activity. */
public abstract void handleSendResult(IBinder token, List results, String reason);

/** Deliver result from another activity. */
public abstract void handleSendResult(
ActivityThread.ActivityClientRecord r, List results, String reason);

/** Deliver multi-window mode change notification. */
public abstract void handleMultiWindowModeChanged(IBinder token, boolean isInMultiWindowMode,
Configuration overrideConfig);
/** Deliver new intent. */
public abstract void handleNewIntent(IBinder token, List intents,
boolean andPause);
public abstract void handleNewIntent(
ActivityThread.ActivityClientRecord r, List<ReferrerIntent> intents);
/** Deliver picture-in-picture mode change notification. */
public abstract void handlePictureInPictureModeChanged(IBinder token, boolean isInPipMode,
Configuration overrideConfig);

// Android 11
public abstract void handlePictureInPictureRequested(IBinder token);
public abstract void handlePictureInPictureRequested(ActivityThread.ActivityClientRecord r);

/** Signal to an activity (that is currently in PiP) of PiP state changes. */
public abstract void handlePictureInPictureStateChanged(ActivityThread.ActivityClientRecord r,
Parcelable pipState);

/** Whether the activity want to handle splash screen exit animation */
public abstract boolean isHandleSplashScreenExit(IBinder token);

/** Attach a splash screen window view to the top of the activity */
public abstract void handleAttachSplashScreenView(ActivityThread.ActivityClientRecord r,
Parcelable parcelable);

/** Hand over the splash screen window view to the activity */
public abstract void handOverSplashScreenView(ActivityThread.ActivityClientRecord r);

/** Update window visibility. */
public abstract void handleWindowVisibility(IBinder token, boolean show);
@@ -127,6 +176,11 @@ public abstract Activity handleLaunchActivity(ActivityThread.ActivityClientRecor
public abstract void handleStartActivity(ActivityThread.ActivityClientRecord r,
PendingTransactionActions pendingActions);

// Android 12
/** Perform activity start. */
public abstract void handleStartActivity(ActivityThread.ActivityClientRecord r,
PendingTransactionActions pendingActions, ActivityOptions options);

// Android 11
public abstract void handleStartActivity(IBinder binder,
PendingTransactionActions pendingActions);
@@ -139,6 +193,26 @@ public abstract LoadedApk getPackageInfoNoCheck(ApplicationInfo ai,
public abstract void handleFixedRotationAdjustments(IBinder token,
DisplayAdjustments.FixedRotationAdjustments fixedRotationAdjustments);

/**
* Add {@link ActivityThread.ActivityClientRecord} that is preparing to be launched.
* @param token Activity token.
* @param activity An initialized instance of {@link ActivityThread.ActivityClientRecord} to use during launch.
*/
public abstract void addLaunchingActivity(IBinder token, ActivityThread.ActivityClientRecord activity);

/**
* Get {@link ActivityThread.ActivityClientRecord} that is preparing to be launched.
* @param token Activity token.
* @return An initialized instance of {@link ActivityThread.ActivityClientRecord} to use during launch.
*/
public abstract ActivityThread.ActivityClientRecord getLaunchingActivity(IBinder token);

/**
* Remove {@link ActivityThread.ActivityClientRecord} from the launching activity list.
* @param token Activity token.
*/
public abstract void removeLaunchingActivity(IBinder token);

/**
* Get {@link ActivityThread.ActivityClientRecord} instance that corresponds to the
* provided token.
@@ -184,6 +258,9 @@ public abstract void handleRelaunchActivity(ActivityThread.ActivityClientRecord

public abstract void handleTopResumedActivityChanged(IBinder arg1, boolean arg2, String arg3);

public abstract void handleTopResumedActivityChanged(ActivityThread.ActivityClientRecord record, boolean arg2, String arg3);


/** Count how many activities are launching. */
public abstract void countLaunchingActivities(int num);

Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@
import android.content.res.CompatibilityInfo;
import android.content.res.Configuration;
import android.os.IBinder;
import android.os.Parcelable;
import android.util.Log;
import android.util.MergedConfiguration;
import android.view.DisplayAdjustments;
@@ -26,6 +27,7 @@

import mirror.android.app.ActivityManagerNative;
import mirror.android.app.IActivityManager;
import mirror.com.android.internal.content.ReferrerIntent;


/**
@@ -72,11 +74,26 @@ public void handlePauseActivity(IBinder token, boolean finished, boolean userLea
originalHandler.handlePauseActivity(token, finished, userLeaving, configChanges, pendingActions, reason);
}

@Override
public void handleDestroyActivity(ActivityClientRecord r, boolean finishing, int configChanges, boolean getNonConfigInstance, String reason) {
originalHandler.handleDestroyActivity(r, finishing, configChanges, getNonConfigInstance, reason);
}

@Override
public void handlePauseActivity(ActivityClientRecord r, boolean finished, boolean userLeaving, int configChanges, PendingTransactionActions pendingActions, String reason) {
originalHandler.handlePauseActivity(r, finished, userLeaving, configChanges, pendingActions, reason);
}

@Override
public void handleResumeActivity(IBinder token, boolean finalStateRequest, boolean isForward, String reason) {
originalHandler.handleResumeActivity(token, finalStateRequest, isForward, reason);
}

@Override
public void handleResumeActivity(ActivityClientRecord record, boolean finalStateRequest, boolean isForward, String reason) {
originalHandler.handleResumeActivity(record, finalStateRequest, isForward, reason);
}

@Override
public void handleStopActivity(IBinder token, boolean show, int configChanges, PendingTransactionActions pendingActions, boolean finalStateRequest, String reason) {
originalHandler.handleStopActivity(token, show, configChanges, pendingActions, finalStateRequest, reason);
@@ -87,6 +104,11 @@ public void handleStopActivity(IBinder token, int configChanges, PendingTransact
originalHandler.handleStopActivity(token, configChanges, pendingActions, finalStateRequest, reason);
}

@Override
public void handleStopActivity(ActivityClientRecord r, int configChanges, PendingTransactionActions pendingActions, boolean finalStateRequest, String reason) {
originalHandler.handleStopActivity(r, configChanges, pendingActions, finalStateRequest, reason);
}

@Override
public void reportStop(PendingTransactionActions pendingActions) {
originalHandler.reportStop(pendingActions);
@@ -97,16 +119,31 @@ public void performRestartActivity(IBinder token, boolean start) {
originalHandler.performRestartActivity(token, start);
}

@Override
public void performRestartActivity(ActivityClientRecord r, boolean start) {
originalHandler.performRestartActivity(r, start);
}

@Override
public void handleActivityConfigurationChanged(IBinder activityToken, Configuration overrideConfig, int displayId) {
originalHandler.handleActivityConfigurationChanged(activityToken, overrideConfig, displayId);
}

@Override
public void handleActivityConfigurationChanged(ActivityClientRecord r, Configuration overrideConfig, int displayId) {
originalHandler.handleActivityConfigurationChanged(r, overrideConfig, displayId);
}

@Override
public void handleSendResult(IBinder token, List results, String reason) {
originalHandler.handleSendResult(token, results, reason);
}

@Override
public void handleSendResult(ActivityClientRecord r, List results, String reason) {
originalHandler.handleSendResult(r, results, reason);
}

@Override
public void handleMultiWindowModeChanged(IBinder token, boolean isInMultiWindowMode, Configuration overrideConfig) {
originalHandler.handleMultiWindowModeChanged(token, isInMultiWindowMode, overrideConfig);
@@ -127,6 +164,31 @@ public void handlePictureInPictureRequested(IBinder token) {
originalHandler.handlePictureInPictureRequested(token);
}

@Override
public void handlePictureInPictureRequested(ActivityClientRecord r) {
originalHandler.handlePictureInPictureRequested(r);
}

@Override
public void handlePictureInPictureStateChanged(ActivityClientRecord r, Parcelable pipState) {
originalHandler.handlePictureInPictureStateChanged(r, pipState);
}

@Override
public boolean isHandleSplashScreenExit(IBinder token) {
return originalHandler.isHandleSplashScreenExit(token);
}

@Override
public void handleAttachSplashScreenView(ActivityClientRecord r, Parcelable parcelable) {
originalHandler.handleAttachSplashScreenView(r, parcelable);
}

@Override
public void handOverSplashScreenView(ActivityClientRecord r) {
originalHandler.handOverSplashScreenView(r);
}

@Override
public void handleWindowVisibility(IBinder token, boolean show) {
originalHandler.handleWindowVisibility(token, show);
@@ -181,6 +243,11 @@ public Activity handleLaunchActivity(ActivityClientRecord r, PendingTransactionA
return originalHandler.handleLaunchActivity(r, pendingActions, customIntent);
}

@Override
public void handleStartActivity(ActivityClientRecord r, PendingTransactionActions pendingActions, ActivityOptions options) {
originalHandler.handleStartActivity(r, pendingActions, options);
}

@Override
public void handleStartActivity(ActivityClientRecord r, PendingTransactionActions pendingActions) {
originalHandler.handleStartActivity(r, pendingActions);
@@ -206,6 +273,21 @@ public void handleFixedRotationAdjustments(IBinder token, DisplayAdjustments.Fix
originalHandler.handleFixedRotationAdjustments(token, fixedRotationAdjustments);
}

@Override
public void addLaunchingActivity(IBinder token, ActivityClientRecord activity) {
originalHandler.addLaunchingActivity(token, activity);
}

@Override
public ActivityClientRecord getLaunchingActivity(IBinder token) {
return originalHandler.getLaunchingActivity(token);
}

@Override
public void removeLaunchingActivity(IBinder token) {
originalHandler.removeLaunchingActivity(token);
}

@Override
public ActivityClientRecord getActivityClient(IBinder token) {
Log.i(TAG, "getActivityClient : " + token);
@@ -247,6 +329,11 @@ public void handleTopResumedActivityChanged(IBinder arg1, boolean arg2, String a
originalHandler.handleTopResumedActivityChanged(arg1, arg2, arg3);
}

@Override
public void handleTopResumedActivityChanged(ActivityClientRecord record, boolean arg2, String arg3) {
originalHandler.handleTopResumedActivityChanged(record, arg2, arg3);
}

@Override
public void countLaunchingActivities(int num) {
originalHandler.countLaunchingActivities(num);
@@ -256,4 +343,10 @@ public void countLaunchingActivities(int num) {
public void handleNewIntent(IBinder token, List intents) {
originalHandler.handleNewIntent(token, intents);
}

@Override
public void handleNewIntent(ActivityClientRecord r, List<ReferrerIntent> intents) {
originalHandler.handleNewIntent(r, intents);
}

}
Loading