FORUMS
Remove All Ads from XDA

VirtualXposed Analysis/Module Development Thread

123 posts
Thanks Meter: 235
 
Post Reply Email Thread
8th June 2018, 05:28 AM |#11  
weishu's Avatar
Member
Flag Beijing
Thanks Meter: 500
 
More
akhilkedia , I have heard from you at github, Thank you ! !

I've put together some information, and I hope this will help.

Q: The app requests a ton of permissions
A: All thre permission are used for app inside VirtualXposed, i don't know what apps will be added to VirtualXposed, so i must request all the permission in advance. If VirtualXposed doesn't have a permission of one app, the app may can not work properly in VirtualXposed.
I am planning to upgrade the targetSdkVersion to 23, then there are little permission requests when install it (VirtualXposed will request permission dynamicly, but if you refuse some permission of one app in VirtualXposed, all the app in VirtualXposed won't grant that permission; this is truly frustrating, XPrivicyLua can not work properly in VirtualXposed: https://github.com/android-hacker/Vi...posed/issues/7, I am trying to add a built-in permission control in VirtualXposed: https://github.com/android-hacker/Vi...osed/issues/33, but there are lot of work to do...

Q: New modules are seemingly often not changed even after re-installing. Un-installed virtual apps are sometimes detected as still being present by the xposed module (?!)
A: This is a bug, the state of installation and launcher3 are not the same.

Q: Epic library's readme says not supported for arm32, x86_64 and mips device architectures for ART.
A: Yes, Epic doesn't support arm32, x86. you can install it on x86 device, but Xposed won't work.

Q: If you have enabled an Xposed Module outside of VirtualXposed, it will still affect apps inside it - So its recommended to turn the module off outside.
A: Yes, Xposed in system will take effect in VirtualXposed, and sometimes may cause conflicts if you enable the same module both in Xposed outside and VirtualXposed.

Q: The original developer seems to not speak perfect English, and the current users are mostly all Chinese.
A: Yes, my English speaking is poor, but my reading skills is good, there are no obstacles to understand what you say
The current users are mostly all Chinese, in fact, there are more than one million users in total If you think it is useful, please tell it to your friends, this is the best way to encourage me to make VirtualXposed better and better.

Q: is there any part of the source code of VirtualXposed (or any of its dependecies) that is proprietary/closed-source
A: No, VirtualXposed is fully open source, but the License is complex. I have no idea of it totally.

Q: If you have some free time later, can you explain in some detail (such as with links to relevant folders/files in Github) how VirtualApp, Epic and VirtualXposed work?
A: See below

Q: How VirtualApp works?

A:

First, you can read my blog and follow my tutorial:
My Blog: http://weishu.me/2016/01/28/understa...work-overview/
My Tutorial: https://github.com/tiann/understand-plugin-framework

These articles tell you how Android Framework works and how Plugin-Framework hooks into system to establish a virtual environment.

If you are familar with Android Framework, you can read the source code of demo.

But sorry, it is fully Chinese, lots of Chinese say it is the best way to understand DroidPlugin/VirtualApp

Then, you can read the VirtyalAppDoc: https://github.com/prife/VirtualAppDoc.

In VirtualXposed, source code of VirtualApp lies in https://github.com/android-hacker/Vi...VirtualApp/lib

The structure of VirtualApp:

JNI:

https://github.com/android-hacker/Vi...jni/Foundation and https://github.com/android-hacker/Vi...c/main/jni/Jni :mainly for IO redirect to make app inside VirtualApp access the corret file system, and also, it do some native hooks for special API(for example, Camera must be hook in native, disable JIT, etc..)
https://github.com/android-hacker/Vi...in/jni/HookZz: This is an inline hook library, it is fully open source, this is the project: https://github.com/jmpews/HookZz
https://github.com/android-hacker/Vi...jni/Substrate: Another inline hook library, it seems to be closed source, but i don't know how the author of VirtualApp get the source code...
https://github.com/android-hacker/Vi...c/main/jni/fb: the JNI framework of facebook.

Java:

https://github.com/android-hacker/Vi...n/java/mirror: the reflection framework of VirtualApp, it is used for use reflection conveniently, it is really elegant.
https://github.com/android-hacker/Vi.../java/android: some hidden API of Android Framework, copy it here for compile.
https://github.com/android-hacker/Vi...irtual/server: the server process of VirtualApp, for example, Android Framework has ActivityManagerService, PackageManagerService, in VirtualApp, there are VActivityManagerService, the procedure of a process to communicate with Android Framework is: Client process -> VitualApp's server process(Virtual System servier) -> Android Framework's system service.
https://github.com/android-hacker/Vi...irtual/client: mainly for hooks in client process(App run inside VirtualApp are all client process); There are four type of process in VirtualApp: 1. Virtual Server process(with hook of AMS & PMS) 2. Virtual client process(with hook of All Android System Service) 3. UI process(a normal process) 4. other process(such as native process)
https://github.com/android-hacker/Vi...dy/virtual/os: the multi-user system of VirtualApp and the some envionment variants, such as directory structure.
https://github.com/android-hacker/Vi...irtual/remote: Parcel data stucture for IPC between Virtual client process and virtual server process.

If you want to read source code of VirtualApp, this class is the best entry:

https://github.com/android-hacker/Vi...rtualCore.java.

Q: How Epic works?
A:

You can refer my design procedure of Epic: http://weishu.me/2017/11/23/dexposed-on-art/
The article introduces many way to hook and tells you how epic solve the problems in the past and why epic does it that way.

Sorry for it is Chinese again...

And then, yon can read the paper : https://publications.cispa.saarland/143/ It is strongly recommended to read that!

In fact, Epic was inspired by https://github.com/mar-v-in/ArtHook, you can also read the source code.

Q: How VirtualXposed work?

VirtualXposed loads Xposed Modules in the entry of VirtualApp's client process, and inject the Xposed ClassLoader to that process to make Xposed module can call Xposed API, and epic provides the abilities to hook, That's all.

All this work is done in https://github.com/android-hacker/exposed

If you have any doubt with VirtualApp/Epic/exposed, feel free to ask me

In addition, I made an origination named android-hacker when i create VirtualXposed, if you want to contribute to VirtualXposed, welcome to join it!(tell me to invite you)
The Following 12 Users Say Thank You to weishu For This Useful Post: [ View ] Gift weishu Ad-Free
 
 
8th June 2018, 02:53 PM |#12  
Junior Member
Thanks Meter: 7
 
More
Quote:
Originally Posted by weishu

You can refer https://github.com/android-hacker/Vi...sed/issues/138 for the License of VirtualXposed.

I am planning to make a fork of GPL-v3 branch of VirtualApp ( it was completed nearly), But i don't know is it permitted.

It is allowed to fork something with a GPL-v3 lisence. You can either do it from the GPL-v3 branch or the commit from 27/10-2017 and start from there.
8th June 2018, 04:56 PM |#13  
mirhl's Avatar
Senior Member
Thanks Meter: 1,075
 
More
Quote:
Originally Posted by weishu

You can refer https://github.com/android-hacker/Vi...sed/issues/138 for the License of VirtualXposed.

I am planning to make a fork of GPL-v3 branch of VirtualApp ( it was completed nearly), But i don't know is it permitted.

As I was saying in the post, the only question would be where you'd be allowed to make it. Either:
https://github.com/asLody/VirtualApp...7c726652c29e8e or
https://github.com/asLody/VirtualApp...a9c2f0afb53ab6 (if nevertheless specifying terms incompatible with GPL, they couldn't be interpreted as an additional separate license, rather than in place of it)
18th August 2018, 06:56 AM |#14  
amakuramio's Avatar
Senior Member
Thanks Meter: 98
 
More
Since rovo89 hasnt been on a while, I dont think xposed will ever be developed again. So this will be the new standard.
18th August 2018, 09:55 AM |#15  
Senior Member
Thanks Meter: 207
 
More
Quote:
Originally Posted by amakuramio

Since rovo89 hasnt been on a while, I dont think xposed will ever be developed again. So this will be the new standard.

Don't be too sure about that - rovo has been missing for quite a while earlier as well, and still continued to develop Xposed. I see no reason to give up so soon on comparison.
The Following User Says Thank You to Namnodorel For This Useful Post: [ View ] Gift Namnodorel Ad-Free
22nd August 2018, 10:33 AM |#16  
Junior Member
Flag Esfahan
Thanks Meter: 2
 
More
This is a magical project and can be a replacement for xposed !
25th August 2018, 03:48 AM |#17  
Senior Member
Flag Jakarta
Thanks Meter: 1,141
 
More
Quote:
Originally Posted by s0me0ned96

This is a magical project and can be a replacement for xposed !

Read carefully. This is in no way a replacement for xposed.
29th October 2018, 12:20 PM |#18  
Senior Member
Thanks Meter: 728
 
More
someone linked this virus scan in the other thread showing 18 "hits": https://www.virustotal.com/#/file/f4...ac0b/detection

I went over it and there's 17 vague "I don't know, maybe" results(pup/gen), which are almost always false positives unless accompanied by actual identified malware results.
DrWeb was more specific saying it installs things without going through the package manager or showing a normal installation UI, but that's an intended and advertised function of this app.
1st December 2018, 01:44 AM |#19  
CarteNoir's Avatar
Senior Member
Thanks Meter: 33
 
More
Quote:
Originally Posted by weishu

akhilkedia , I have heard from you at github, Thank you ! !

I've put together some information, and I hope this will help.

-snip-

Thanks for your hard work on this! Was just wondering; is EXposed/TaiChi also your work? And will you make it open-source? I understand VirtualXposed is safe but we don't know much about this upgraded version.
The Following User Says Thank You to CarteNoir For This Useful Post: [ View ] Gift CarteNoir Ad-Free
1st December 2018, 02:28 AM |#20  
weishu's Avatar
Member
Flag Beijing
Thanks Meter: 500
 
More
Quote:
Originally Posted by CarteNoir

Thanks for your hard work on this! Was just wondering; is EXposed/TaiChi also your work? And will you make it open-source? I understand VirtualXposed is safe but we don't know much about this upgraded version.

EXposed/TaiChi is created by me, and i won't make it open-source.

VirtualXposed is open-source, but there are still so many people think it is dangerous. Open-source can not give me any revenue.
1st December 2018, 02:35 AM |#21  
CarteNoir's Avatar
Senior Member
Thanks Meter: 33
 
More
Quote:
Originally Posted by weishu

EXposed/TaiChi is created by me, and i won't make it open-source.

VirtualXposed is open-source, but there are still so many people think it is dangerous. Open-source can not give me any revenue.

What revenue do you make with it closed source? Also, will it ever support XInsta?
Post Reply Subscribe to Thread

Tags
no-root, virtualxposed, xposed

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes