Attempting to make the latest Bluestacks 3N Android Emulator, Undetectable - Android Q&A, Help & Troubleshooting

I know this seems ridiculous to want to do, but there's a lot of reasons someone would want to run android software on their PC, without the software being able to detect that they're doing so! When I thought of this idea, the first thing I did was try think as if I'm the developer of an app that I don't want running on emulators, and I did what a person in their shoes might do, I googled the issue at hand. Not surprisingly I found some articles on XDA's forums, but also articles in other places. Some of the techniques developers are using are actually pretty simple, for example on this XDA thread (sorry couldn't post links, im too new)they talked about a method where the app looks for specific words in the devices build information that confirm whether the device is a emulator or not. So of course my next step is to check an app I know is currrently detecting the emulator correctly, and see if this code is in their app files. I'm going to use quite a popular apk that does this, PUBG Mobile. So I've decompiled the apk and am going to start a search for anything in their files like this, if you are interested, please tag along, or even just offer some ideas. I would love to get some help on this project!
Some linksSorry couldnt post links, im too new)

I was right!
Smartish said:
I know this seems ridiculous to want to do, but there's a lot of reasons someone would want to run android software on their PC, without the software being able to detect that they're doing so! When I thought of this idea, the first thing I did was try think as if I'm the developer of an app that I don't want running on emulators, and I did what a person in their shoes might do, I googled the issue at hand. Not surprisingly I found some articles on XDA's forums, but also articles in other places. Some of the techniques developers are using are actually pretty simple, for example on this XDA thread (sorry couldn't post links, im too new)they talked about a method where the app looks for specific words in the devices build information that confirm whether the device is a emulator or not. So of course my next step is to check an app I know is currrently detecting the emulator correctly, and see if this code is in their app files. I'm going to use quite a popular apk that does this, PUBG Mobile. So I've decompiled the apk and am going to start a search for anything in their files like this, if you are interested, please tag along, or even just offer some ideas. I would love to get some help on this project!
Some linksSorry couldnt post links, im too new)
Click to expand...
Click to collapse
Here's the code that I found within the app files:
C:\Users\Other User\Desktop\com.tencent.ig_0.5.0-8025_source_from_JADX\com\tencent\imsdk\android\tools\log\FileLogger.java:
97 }
98
99: private static boolean isEmulator() {
100: return Build.FINGERPRINT.startsWith("generic") || Build.FINGERPRINT.startsWith("unknown") || Build.MODEL.contains("google_sdk") || Build.MODEL.contains("Emulator") || Build.MODEL.contains("Android SDK built for x86") || Build.MANUFACTURER.contains("Genymotion") || ((Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic")) || "google_sdk".equals(Build.PRODUCT));
101 }
102
...
106
107 private void postFileToServer(List<File> list) {
108: if (!isWifiState() && !isEmulator()) {
109 Log.d("iMSDK", "current network is not Wi-Fi");
110 } else if (fileListNotNull(list)) {
Even better is that they use the exact method! they check for these things:
Build.FINGERPRINT.startsWith("generic")
Build.FINGERPRINT.startsWith("unknown")
Build.MODEL.contains("google_sdk")
Build.MODEL.contains("Emulator")
Build.MODEL.contains("Android SDK built for x86"
Build.MANUFACTURER.contains("Genymotion")
"google_sdk".equals(Build.PRODUCT));
(Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
Now I just need to change these things in Bluestacks files and try to modify build information if it's even possible!

Related

Default Messaging App Source Code

Hi guys,
I was wanting to look at the default sms app to see how it works and possibly look into modifying parts. I've googled high and low and still havent found the source, does anyone know how I would get it just for the sms app?
Any help is much appreciated.
Sorry, can't post links, but here is some source for you.
Code:
public void sendSMS(String phoneNumber, String message)
{
SmsManager sms = SmsManager.getDefault();
Pendingetent pi = Pendingetent.getActivity(this, 0, new Intent(this, SMS.class), 0);
sms.sendTextMessage(phoneNumber, null, message, pi, null);
}
Don't forget to set manifest permissions for "SEND_SMS" and "RECEIVE_SMS" if required.
Code:
<manifest>
...
<uses-permission android:name="android.permission.SEND_SMS">
</uses-permission>
...
</manifest>
Thanks, much appreciated. How come you are not able to post links? would it be possible to PM them to me? Thanks again.
http://android.git.kernel.org/?p=platform/packages/apps/Mms.git;a=summary
I had this exact same thought yesterday.
I was thinking that I could easily take the stock SMS app and modify it to include what I consider an annoyingly missing feature, marking a message or thread unread. How hard could it be? Just add a new item to a context menu and then some SQL that will mark the message unread.
Well, apparently it is kinda hard.
Here's what I did:
I got the source for the SMS app by typing this:
git clone git://android.git.kernel.org/platform/packages/apps/Mms.git
Then I went to Eclipse, created a new Android project and said "from existing source" and pointed it to this folder I'd just checked out of the repository.
FAIL.
Tons of red Xs in Eclipse. Tons of references it couldn't find. I started digging through the repo to see if I could find the things it wanted and started adding those to the project, but one thing just lead to another missing dependency and after adding half a dozen other apps I just gave up.
Maybe I need the entire framework or something? In that case, I have no idea how to set up the project and how to build just that app based on the stock app.
I know this can be done. People have branched other stock apps (the launcher, the email client, etc.) and released their own enhanced versions. But I just couldn't figure out how to get started -- I couldn't even build an UNMODIFIED version.
If anyone can point me in the right directions, that would be quite helpful.
Thanks!
Sorry for pushing a somewhat dated thread, but this topic is very interessting for me as well since all Messaging apps currently kind of suck and I really like the minimalistic approach of the default app but it lacks basic features.
Any new ideas?
A link to the best source I could find:
http://grepcode.com/file/repository...pps/4.0.3_r1/com/android/mms/MmsApp.java?av=f
Questions or Problems Should Not Be Posted in the Development Forum
Please Post in the Correct Forums & Read the Forum Rules
Moving to Q&A
okay thank you
Anyone knows where to get the source?
Any help would be greatly appreciated!
Found it!
https://github.com/android/platform_packages_apps_mms
edit: Weird problem. Lots of errors with missing classes/methods even though I can find those classes in online repos with the same API level (4.0.3). Importing those classes is not an option since a lot of new dependencies would be missing.
I know that the source is MMS for 4.0.4 but I find a lot of sources with the needed classes in the 4.0.3 framework. How is that possible?
edit2: Just found out that Google introduced their own Javadoc where they can hide experimental methods/classes for certain APIs but still use them in their stock apps. Now I only have to find a way to trick the system

[REQ] Yelp app

One of the few things I wish I had that seemingly every other mobile OS does is a Yelp application. It's a review site for pretty much any business you can think of - very popular for restaurants, bars, etc. I know people in the US use it a lot. I know Yelp is in the UK as well, not sure how often it is used though.
"Why don't you just go to m.yelp.com and search there"
Yeah I could, but if you get the Yelp app for iPhone, webOS, Android, BB, etc., it'll use your phone's 'network triangulation' or GPS to automatically show you what's around you. Of course, once you have that, you can filter by category (restaurant, shopping, etc.), and sort by rating (and other various features.) If you click on an item of interest, you can read the reviews, get details on the store (location, hours, etc.), and if the app is developed enough - write reviews, post pictures, and be a contributing member of the site.
Yelp has an API that seems pretty easy and robust, where requests are passed along like so
Code:
Sample Request:
http://api.yelp.com/business_review_search?term=yelp&lat=37.788022&long=-122.399797&radius=10&limit=5&ywsid=XXXXXXXXXXXXXXXXXX
And you get a crapload of data back, all nicely formatted and easy to handle. More info here: http://www.yelp.com/developers
TBH, I would try and code it myself, but I'd only be able to create a backend, maybe (never coded for WM before.) The GUI is the most important part since a lot of the heavy lifting is done with the API (otherwise, we'd have to scrape and... ugh.)
Not sure how the network triangulation part works - I think I saw a guide or a framework somewhere on these forums. The GPS part, if I had to guess would be something like running the following when you open the app or switch to the app after an appropriate delay time:
Code:
gps = new Gps();
gps.LocationChanged +=
new LocationChangedEventHandler(gps_LocationChanged);
gps.Open();
void gps_LocationChanged(object sender, LocationChangedEventArgs args)
{
if (args.Position.LatitudeValid && args.Position.LongitudeValid)
{
currentPosition = args.Position;
UpdatePosition();
}
}
gps.Close();
Anyways, I'd be willing to put a bounty up, and I'm sure others would be willing to pay for it. I'll start off with a $20 bounty and hopefully someone else will be interested as well!

[Q] Visusal Kitchen for Android?

Just curious, but does anyone know if there's an android kitchen in the works that will be more like the EvirisVisual Kitchen for WM? I, as well as several others I'm sure, would have a little less of a learning curve if there was an android kitchen that was set up the same way as the WM kitchens. Just a thought... What does everyone else think?
PMDColeslaw said:
Just curious, but does anyone know if there's an android kitchen in the works that will be more like the EvirisVisual Kitchen for WM? I, as well as several others I'm sure, would have a little less of a learning curve if there was an android kitchen that was set up the same way as the WM kitchens. Just a thought... What does everyone else think?
Click to expand...
Click to collapse
What is there to learn though? I thought Visual Kitchen involved a learning curve.
The Bepe Platform Rebuilder (which the VK was based off of) was command-line driven and simple.
dsixda said:
What is there to learn though? I thought Visual Kitchen involved a learning curve.
The Bepe Platform Rebuilder (which the VK was based off of) was command-line driven and simple.
Click to expand...
Click to collapse
True, but what I liked about the VK was that it ran the command line stuff in the background based on options the user set on the front end UI. It was a big help to those who aren't code/script guru's by letting us set up our roms in a visual UI.
EDIT:Your Kitchen is pretty user friendly BTW. I just miss the point and click UI and not having to edit so many xml files.
PMDColeslaw said:
True, but what I liked about the VK was that it ran the command line stuff in the background based on options the user set on the front end UI. It was a big help to those who aren't code/script guru's by letting us set up our roms in a visual UI.
EDIT:Your Kitchen is pretty user friendly BTW. I just miss the point and click UI and not having to edit so many xml files.
Click to expand...
Click to collapse
I'm pretty sure a nice UI-based kitchen can be done in Windows, except the person who does it will soon realize there will be platform incompatibilities over Windows XP/7 and 32-bit and 64-bit.. but those can be fixed easily if they include all possible working binaries for all the platforms.
dsixda said:
I'm pretty sure a nice UI-based kitchen can be done in Windows, except the person who does it will soon realize there will be platform incompatibilities over Windows XP/7 and 32-bit and 64-bit.. but those can be fixed easily if they include all possible working binaries for all the platforms.
Click to expand...
Click to collapse
Not necessarily. If the UI is coded in a multi-platform language (Qt, C#-Mono, Python, even PHP) then it is possible to port to any platform. Also, if all the command line stuff from the BAT files are placed into the UI too, then only one executable (with the resources of course) and it is done.
dsixda said:
I'm pretty sure a nice UI-based kitchen can be done in Windows, except the person who does it will soon realize there will be platform incompatibilities over Windows XP/7 and 32-bit and 64-bit.. but those can be fixed easily if they include all possible working binaries for all the platforms.
Click to expand...
Click to collapse
fonix232 said:
Not necessarily. If the UI is coded in a multi-platform language (Qt, C#-Mono, Python, even PHP) then it is possible to port to any platform. Also, if all the command line stuff from the BAT files are placed into the UI too, then only one executable (with the resources of course) and it is done.
Click to expand...
Click to collapse
I would very much like that if someone could do it. I know a lot of people have Linux running on a virtual machine or whatever but I actually like Windows 7. Maybe its laziness but I'd really like to not have to learn an entirely new OS before I can continue building my own ROMs. Again just my opinion. I noticed Fresh's kitchen appears to have a nice UI but it's still not released and I have no idea if it will be completely Windows ran or not.
PMDColeslaw said:
I would very much like that if someone could do it. I know a lot of people have Linux running on a virtual machine or whatever but I actually like Windows 7. Maybe its laziness but I'd really like to not have to learn an entirely new OS before I can continue building my own ROMs. Again just my opinion. I noticed Fresh's kitchen appears to have a nice UI but it's still not released and I have no idea if it will be completely Windows ran or not.
Click to expand...
Click to collapse
You don't need a virtual machine, just use Cygwin in Windows
fonix232 said:
Not necessarily. If the UI is coded in a multi-platform language (Qt, C#-Mono, Python, even PHP) then it is possible to port to any platform. Also, if all the command line stuff from the BAT files are placed into the UI too, then only one executable (with the resources of course) and it is done.
Click to expand...
Click to collapse
The problem is, there are certain functions that cannot be handled with one language alone. So, we can have a GUI-based application, like one using Tk on top of TCL (just an example!), but we'd still need to run it from Cygwin/Linux etc. so that other commands like perl, sed, od etc. will be able to work. Or maybe there is a better solution that I am not aware of.
dsixda said:
The problem is, there are certain functions that cannot be handled with one language alone. So, we can have a GUI-based application, like one using Tk on top of TCL (just an example!), but we'd still need to run it from Cygwin/Linux etc. so that other commands like perl, sed, od etc. will be able to work. Or maybe there is a better solution that I am not aware of.
Click to expand...
Click to collapse
How about a Java front-end for the existing Kitchen? The thought has occurred to me, but my focus is already spread amongst several different projects.
Something like this code from jcase(?) might be a good start?
String txt = ((EditText) findViewById(R.id.txtCmd)).getText().toString(); // cmd line
boolean su = ((CheckBox) findViewById(R.id.asRoot)).isChecked(); // run as root
Process p;
try {
if (su) {
p = Runtime.getRuntime().exec("su");
(new DataOutputStream(p.getOutputStream())).writeBytes(txt + "; exit\n"); // you want the shell to terminate itself so you know the command has finished
} else
p = Runtime.getRuntime().exec(txt);
} catch (Exception e) {
e.printStackTrace();
return;
}
try {
StringBuilder sb = new StringBuilder();
InputStreamReader isr = new InputStreamReader(p.getInputStream());
int r;
while ((r = isr.read()) > 0)
sb.append((char) r); // you may want to use a buffer
msg = sb.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}​
I haven't done Java development in 10 years But I'll definitely put this in my "TO DO" list for future work. Thanks
gnarlyc said:
How about a Java front-end for the existing Kitchen? The thought has occurred to me, but my focus is already spread amongst several different projects.
Something like this code from jcase(?) might be a good start?
String txt = ((EditText) findViewById(R.id.txtCmd)).getText().toString(); // cmd line
boolean su = ((CheckBox) findViewById(R.id.asRoot)).isChecked(); // run as root
Process p;
try {
if (su) {
p = Runtime.getRuntime().exec("su");
(new DataOutputStream(p.getOutputStream())).writeBytes(txt + "; exit\n"); // you want the shell to terminate itself so you know the command has finished
} else
p = Runtime.getRuntime().exec(txt);
} catch (Exception e) {
e.printStackTrace();
return;
}
try {
StringBuilder sb = new StringBuilder();
InputStreamReader isr = new InputStreamReader(p.getInputStream());
int r;
while ((r = isr.read()) > 0)
sb.append((char) r); // you may want to use a buffer
msg = sb.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}​
Click to expand...
Click to collapse
dsixda said:
I haven't done Java development in 10 years But I'll definitely put this in my "TO DO" list for future work. Thanks
Click to expand...
Click to collapse
Dude. I don't know what I was smoking when I posted that. That was code that you would run on an Android phone! Should I edited it out so future generations don't think I'm a total goob?
Anyway, you get the idea. If I can get a few things cleaned up, I'll try to do it myself or get you started or help or at least cheer you on.
gnarlyc said:
How about a Java front-end for the existing Kitchen? The thought has occurred to me, but my focus is already spread amongst several different projects.
Something like this code from jcase(?) might be a good start?
String txt = ((EditText) findViewById(R.id.txtCmd)).getText().toString(); // cmd line
boolean su = ((CheckBox) findViewById(R.id.asRoot)).isChecked(); // run as root
Process p;
try {
if (su) {
p = Runtime.getRuntime().exec("su");
(new DataOutputStream(p.getOutputStream())).writeBytes(txt + "; exit\n"); // you want the shell to terminate itself so you know the command has finished
} else
p = Runtime.getRuntime().exec(txt);
} catch (Exception e) {
e.printStackTrace();
return;
}
try {
StringBuilder sb = new StringBuilder();
InputStreamReader isr = new InputStreamReader(p.getInputStream());
int r;
while ((r = isr.read()) > 0)
sb.append((char) r); // you may want to use a buffer
msg = sb.toString();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}​
Click to expand...
Click to collapse
Are you SERIOUS??? After the Oracle vs. Google incident, you are suggesting we use Java??
I appreciate the help but its way easier coding for 32bit Windows since any 64bit Windows will run 32bit and use .Net for kitchen GUI.
If Linux fan boys want some love, they can use WINE
Then again, my coding skills SUCK and I wish someone would create some type of Visual kitchen
DJGonzo said:
Are you SERIOUS??? After the Oracle vs. Google incident, you are suggesting we use Java??
I appreciate the help but its way easier coding for 32bit Windows since any 64bit Windows will run 32bit and use .Net for kitchen GUI.
If Linux fan boys want some love, they can use WINE
Then again, my coding skills SUCK and I wish someone would create some type of Visual kitchen
Click to expand...
Click to collapse
Most of the apps on your phone are in Java. If something happens and we are unable to use Java anymore, I don't think people will really care about a GUI front-end to an already working and great kitchen. So, yes, I AM SERIOUS!
Creating a GUI front-end instead of a whole new kitchen should be relatively easy in most languages, depending on how fancy you want to get. (A window with buttons that launch scripts, more or less... That's simplifying it somewhat, but you get the idea.)
I'm probably making myself look like an ass which I am in the sense that I have no coding skills but isn't Fresh's Kitchen a visual kitchen or am I not understanding the concept.
The only reason I'm asking is, even though I have no knowledge of taking something like this on it seems to me that if it's already been done it should be a little easier to figure out.
Again, I might just be an ass and if so I apologize.
DJGonzo said:
Are you SERIOUS??? After the Oracle vs. Google incident, you are suggesting we use Java??
I appreciate the help but its way easier coding for 32bit Windows since any 64bit Windows will run 32bit and use .Net for kitchen GUI.
If Linux fan boys want some love, they can use WINE
Then again, my coding skills SUCK and I wish someone would create some type of Visual kitchen
Click to expand...
Click to collapse
Java is still platform independent, but has some really annoying requirements, and would run slow on big files.
.Net: We could use Mono for that. Mono libraries are to included in Windows .Net (or was to be. I heard somewhere that Mono Project will ask Windows to include their libraries too so any .Net app can run on Linux, Windows, and Mac, with the same user experience), and also installing it is easy. Yes, it is harder to develop under Mono, harder than Visual Studio, but still possible.
But .Net has some serious restrictions too. Can not use JAVA apps (only with launching a command line, so no direct inclusion), thus SignAPK is out (until you want to see some ugly black window, or use a backside process). And also it would need a lot of things to do, like update itself frequently, so someone needs to maintain a mod/firmware/rom/app/kernel/recovery server, and so much more.
It is simplyer to make a nice PHP site what does the same, write a UI for it, and upload to the site itself. Thus people can always access the latest stuff, and also, save their work (as a config file) for further modding. Oh and do not forget, the server would produce the file a lot faster than a PC
fonix232 said:
Java is still platform independent, but has some really annoying requirements, and would run slow on big files.
.Net: We could use Mono for that. Mono libraries are to included in Windows .Net (or was to be. I heard somewhere that Mono Project will ask Windows to include their libraries too so any .Net app can run on Linux, Windows, and Mac, with the same user experience), and also installing it is easy. Yes, it is harder to develop under Mono, harder than Visual Studio, but still possible.
But .Net has some serious restrictions too. Can not use JAVA apps (only with launching a command line, so no direct inclusion), thus SignAPK is out (until you want to see some ugly black window, or use a backside process). And also it would need a lot of things to do, like update itself frequently, so someone needs to maintain a mod/firmware/rom/app/kernel/recovery server, and so much more.
It is simplyer to make a nice PHP site what does the same, write a UI for it, and upload to the site itself. Thus people can always access the latest stuff, and also, save their work (as a config file) for further modding. Oh and do not forget, the server would produce the file a lot faster than a PC
Click to expand...
Click to collapse
I suggested Java for several reasons:
1) as you say, it's multiplatform - That fits really nicely with the kitchen.
2) The kitchen already uses Java, so the requirements have already been met.
3) I'm not a programmer. I say that, but I've taken three college programming courses now. Two of them were Java. So, I know Java well enough.
4) I was suggesting a front-end GUI to the existing kitchen, not something entirely new.
It basically boils down to whoever gets motivated enough to volunteer their time. If they choose Java, then it's Java. If they choose Motorola 68k assembly, then that's what it is. Who knows, dsixda may make something that ties in with his kitchen, and someone else may make something similar in their language of choice. That would be great. More choices are generally a good thing up to a point.
gnarlyc said:
Most of the apps on your phone are in Java. If something happens and we are unable to use Java anymore, I don't think people will really care about a GUI front-end to an already working and great kitchen. So, yes, I AM SERIOUS!
Click to expand...
Click to collapse
Android does NOT run Java. It runs Dalvik bytecode.
Whether the language is "very similar" p) or not is a different thing.
Google just made made a compiler that can compiler Java code, but its not Java
LOL Im just teasing.
I DO like the PHP kitchen idea. They do it for the HTC Desire and that would be a great project.
aerajan said:
I'm probably making myself look like an ass which I am in the sense that I have no coding skills but isn't Fresh's Kitchen a visual kitchen or am I not understanding the concept.
The only reason I'm asking is, even though I have no knowledge of taking something like this on it seems to me that if it's already been done it should be a little easier to figure out.
Again, I might just be an ass and if so I apologize.
Click to expand...
Click to collapse
No you're right, Fresh's Kitchen is along the lines (visually) of what I am used to coming from WM and the VK. It just doesnt seem to get updated very often so far. If I read correctly it still only works with 1.5 roms which is great... If you like 1.5, which virtually no one does, lol.
How an AIR front end combined with a PHP backend?
DJGonzo said:
Android does NOT run Java. It runs Dalvik bytecode.
Whether the language is "very similar" p) or not is a different thing.
Google just made made a compiler that can compiler Java code, but its not Java
LOL Im just teasing.
I DO like the PHP kitchen idea. They do it for the HTC Desire and that would be a great project.
Click to expand...
Click to collapse
The problem I have with an online PHP kitchen is that it goes away from the idea of giving the user full control of their files and helping them learn that way too. In addition it may be inconvenient when you want to move files around.

Making "Stock" Custom ROMs Defunct (XposedFramework) - Tweaks for any ROM Version

Making "Stock" Custom ROMs Defunct (XposedFramework) - Tweaks for any ROM Version
Introduction
Recently it has dismayed me how, across the Android Community, people seem to feel that it's necessary to run a "Custom ROM" in order to get improvements and changes to your ROM. Of course, some of you know it's possible to modify the APK files directly to change things, but these changes need to be done every time your base ROM is updated. Once Samsung starts leaking out updates to 4.2 like a sieve, you guys will be all over them, needing to update your patches and tweaks every time.
Anyway, seeing this displeases me, as it encourages people to see "Custom ROMs" as a commodity, and something you consume. In essence, users were getting their "fix" of tweaks from their "chef", but not learning how to do it themselves, nor realising their beloved chef isn't doing anything magical. In fact, their chef is likely decompiling the applications, and using baksmali/apktool to take apart the app, hard-code in their changes, then rebuild it. This method has worked well for 3 years, but it's been in need of an update for some time.
The Enlightenment
Then I saw this thread by rovo89. That man deserves a beer for every Android user there is, for his work on the Xposed Framework! His and Tungstwenty's work on this has made it possible to modify the core Android system, without doing any actual modifying of applications.
OK... Why are you telling me this?
This invention seems to have pretty much gone unnoticed by the world. The reasons this is vastly superior to any other way of making modifications to apps and the system are:
Your modifications are not tied into a single version of the APK or app or framework. If the ROM is updated, the patch should still work perfectly on the new version of the app (this doesn't necessarily apply across major updates like 4.1 to 4.2, but should be fine across 4.1.0 to 4.1.2 style changes).
You are not actually modifying any files on the phone! If something goes wrong, you can just disable the support for the framework, and the tweaks will do nothing. As such, it's easier to get a working phone if something dies - in fact there is a ZIP placed on your SD for this very purpose. Just flash it in CWM and it will disable the framework.
As no actual files are being modified, it doesn't matter if your ROM is odexed, deodexed, or a bit of both (ie. certain apps deodexed, but frameworks odexed). With this, there is no reason to run a deodexed ROM, since you can change pretty much everything you want to without touching the raw files. So leave them as odex files and you'll not have any problems. Bear in mind we deodex to allow easier customisation, odexed is actually slightly faster, and removes the majority of the dexopt process on first boot.
No application signatures are modified, as the apps are not touched, so if you were to use this to modify an app like Maps or Gmail, you won't get issues when trying to update to a new version of the app via the market.
The only way this can succeed is for you to try it. I usually run a "custom ROM" on my phone. For the first time ever, I've been using a stock ROM for a significant period of time. On the Note2 in particular, Samsung is really getting good at this. But they're not perfect. And as such, I started to look at using this to perfect their work.
When you run a custom ROM, look at what you're getting, and ask yourself why it doesn't use this method. I've only made one little modification so far, but it's one that annoys me hugely! The blooming SMS -> MMS conversion when you try to write any form of prose in a text message. I cannot stand the limitation of SMS to 160 characters, so the ability to chain together messages is a godsend to me. Unfortunately though, Google and Samsung seem to like to restrict you to 3 SMS messages worth of text before converting to an MMS message. Which is wonderful, except when you have totally unlimited SMS, but pay for MMS. As such, I was finding my ability to communicate in my usual verbose way somewhat hindered by the messaging app.
Alas that is no longer an issue. If you want to get started, here's how.
OK... How do I use this?
Download and install the APK file from this post - http://forum.xda-developers.com/showthread.php?t=1574401. I have tested it on the N7100, it works fine. Run it, install the framework, grant it root (yes, this requires root!), and reboot. I have mirrored the APK below just in case of issues.
Download and install the APK modification you want from http://www.villainrom.co.uk/forum/microdownloads/
When you get a notification about enabling the modification (after the APK is installed), tap that notification, and enable the plugin by ticking the box.
Reboot your phone
Go test your modification
If you have any issues with this, please paste the contents of /data/xposed/debug.log on a pastebin site or in
Code:
tags.
[SIZE="5"][B]How can I make my own modifications like this?[/B][/SIZE]
Will post this a bit later, along with the source of this plugin.
[SIZE="5"][B]References[/B][/SIZE]
[url]http://forum.xda-developers.com/showthread.php?t=1574401[/url]
[url=http://forum.xda-developers.com/member.php?u=4322181]Tungstwenty[/url]
[url=http://forum.xda-developers.com/member.php?u=4419114]Robo89[/url]
[SIZE="5"][B]Sources[/B][/SIZE]
You can find the sources for Xposed Framework at [url]https://github.com/rovo89[/url]
You can find the sources for all Xposed modifications I have made so far on Github:
[url=https://github.com/pulser/xposedSMStoMMS]Disable SMS -> MMS Conversion[/url]
[url=https://github.com/pulser/xposedDisableBatteryFullAlert]Disable 100% Battery Notification[/url]
[url=https://github.com/pulser/xposedEnableCallRecording]Enable Call Recording[/url]
[url=https://github.com/pulser/xposedScrollingLauncherWallpaper]Enable scrolling wallpaper in stock launcher[/url]
[url=https://github.com/pulser/xposedEmailTextColour]Make text in email app message list clearer to read (lighter) on the black background[/url]
Install the Xposed Framework from this thread: http://forum.xda-developers.com/showthread.php?t=1574401
Modifications
OK so a few people suggested an addon repository... I have got one sorted
Downloads
http://www.villainrom.co.uk/forum/microdownloads/
I've added some of mine so far, but I won't add other people's - they can add them themselves, and maintain them
This system is vastly superior to a stickied forum thread, as you can update your own modification (as a developer), and as a user, receive notifications if a modification is updated.
Developers
Register for an account (Free, easy, no spam etc)
Go to http://www.villainrom.co.uk/forum/account/join-user-groups
Tick the option for Xposed Uploader, and hit Save. A request will be sent to me for your application. I'll approve it when I see it (should be quite fast, it gives me a popup)
Head back to http://www.villainrom.co.uk/forum/microdownloads/ and click the Upload button at the top right.
Use a general title that describes what your modification does. Put in a version string too. I tend to use the format 1.0, 1.1, 1.2 etc, but this is up to you. You can add Alpha or Beta or other designations if you wish.
For author, pop in your name or username. And enter a brief description of what the modification does (which will appear in the index)
Click Categories/Agreements, and select which category the modification falls under. If you think there's a category which should be added, let me know.
Under Full Description, you can enter a detailed description of your modification. Finally, under File Options, use File to Upload to select your APK file. You can optionally add an Image to Upload. The Use File URL should be set to no, and the File URL box left blank.
Users
There is no need to register an account to download files from the repository. If you wish to receive notifications of updates, you can register an account - just hit the red "Log in or Sign up" button - you can use a Twitter or Google account if you want, or just make a plain account. It makes no difference.
Head across to http://www.villainrom.co.uk/forum/microdownloads/ and have a look at the modifications you want.
Click watch file (at the bottom right) if you want notifications about updates to a modification
Click Report to report a modification for being malicious or problematic.
Click "add comment" to discuss or comment on the modification, or leave a "review" or feedback
Click on the stars under (0 votes) to leave a star rating on the modification, which will help generate most popular lists on the main page.
Click to see licence details of mine:
Feel free to use these as you wish, for non-commercial purposes. You may share these for personal use. Note that distribution in any kind of "package" or "custom ROM" is not personal use. Sending a friend a copy is personal use, feel free to do that and share the love.
Feel free to make changes to the source code of the modifications if you think you can improve them, provided you make your changes available in a similar manner. If you fix a bug or error, please send a pull request.
If you wish to use these commercially, please contact me. This includes in any "distribution package", be it a ROM, app, store, marketplace or other package. That's not in the spirit of this project, so get in touch with me and we'll discuss it.
Tl;dr:
End users, have fun, use these, enjoy them, share them, tweak them, just be sure to share your source changes and/or send a pull request if you improve something!
"Custom ROM" Developers, and anyone wanting to try to use these for commercial purposes: Don't. These are to encourage people to learn about these changes, so contact me if you want to do something else with them. Commercial use, including distribution in "Custom ROMs" is not permitted.
How to make your own such modification
This information is NOT complete. This example only uses 1 of about 10 different types of modification. I have spoken to rovo89 and he has said it would probably be possible to document this further. This example covers ONE usage case - I am going to override an entire method.
1. Create a new empty Android project in Eclipse.
2. Within the "application" section of your AndroidManifest.xml, add the following metadata:
Code:
<meta-data android:name="xposedmodule" android:value="true"/>
<meta-data android:name="xposedminversion" android:value="2.0rc1.*" />
3. Within the assets folder of the project, add a plain text file, "xposed_init". Within this, I have put
Code:
uk.co.villainrom.pulser.allowlongsms.AllowLongSMS
uk.co.villainrom.pulser.allowlongsms is the PACKAGE name of my Java package. AllowLongSMS is my class name. The purpose of this is to tell the Xposed Framework what to run.
4. Within AllowLongSMS.java (ie. the class name, with .java on the end), I put the following code:
PHP:
package uk.co.villainrom.pulser.allowlongsms; //this sets the package for our project, this is the first part of the value in xposed_init file in assets.
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XC_MethodReplacement;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
//above includes all the required parts of the xposed framework that we need here
public class AllowLongSMS implements IXposedHookLoadPackage { //here we declare the class AllowLongSMS. We say it implements IXposedHookLoadPackage, as we want to make use of the hook-in on package load. Other options are available here for working with native libs etc, and resources, but I'm not using these right now.
public static final String MY_PACKAGE_NAME = AllowLongSMS.class.getPackage()
.getName(); //this doesn't do anything, I just left it here for if I needed to write logs and wanted to have the package name easily accessible.
public static final String TAG = "PulserMmsTweak"; //same here, this doesn't do anything.
@Override //we are going to override the method handleLoadPackage, if it exists further up the hierarchy
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
//this method is called every time a package is loaded. We have a parameter that we're going to call lpparam, that is passed in, that relates to what package was loaded
if (lpparam.packageName.equals("com.android.mms")) { //if the package that has just been loaded is called "com.android.mms" then
ClassLoader classLoader = lpparam.classLoader; //create a classloader object that we can now use
XC_MethodReplacement methodreplacer = new XC_MethodReplacement() { //create a method replacer object, as we are going to REPLACE an entire method within the mms app.
protected Object replaceHookedMethod( //we make an object here, that passes in the parameters of what to actually change
XC_MethodHook.MethodHookParam paramAnonymousMethodHookParam)
throws Throwable {
return Integer.valueOf(255);
/* THIS IS THE IMPORTANT LINE
* This line returns the value 255. Why this happens won't make sense yet, but THIS is where you put your "new method" code.
*
*/
}
};
XposedHelpers.findAndHookMethod("com.android.mms.MmsConfig", //here we say that we want to find and hook into the method "getSMSToMmsTextThreshold" which is part of the class com.android.mms.MmsConfig. We then say that we're passing this to methodreplacer, which we defined earlier
classLoader, "getSmsToMmsTextThreshold", methodreplacer);
}
//if the package wasn't com.android.mms, do nothing.
}
}
Awesome work mate. Wish I had a Note 2 to check this on.
EDIT: Wait.. I can use this on any device! Rock on. Thanks!
Wow this is great post. While reading this it makes me learn something like what is going on in background.
Sent from my GT-N7100 using Tapatalk 2
Thanks for continuing that amazing project pulser!!
I think i'm going to create some small apks for some stuff very soon (and release them of course).
Cool stuff as always pulser, keep it up
simone201 said:
Thanks for continuing that amazing project pulser!!
I think i'm going to create some small apks for some stuff very soon (and release them of course).
Cool stuff as always pulser, keep it up
Click to expand...
Click to collapse
The original guys are not gone, was talking to them recently
There's scarce documentation so far on this, but I will see what else I can do with it... I might make post 2 a repository of these APKs for now...
chaitanya87 said:
Wow this is great post. While reading this it makes me learn something like what is going on in background.
Sent from my GT-N7100 using Tapatalk 2
Click to expand...
Click to collapse
That's the intention Glad it worked! This is about learning, and not just "using".
Sure, you can download the APK and use it, but that's no better than just downloading some zipkang ROM that claims it does everything including making your morning coffee... This is about taking a look at HOW it works too That way people can make their own tweaks and share them!
pulser_g2 said:
The original guys are not gone, was talking to them recently
There's scarce documentation so far on this, but I will see what else I can do with it... I might make post 2 a repository of these APKs for now...
Click to expand...
Click to collapse
A small repo for APKs would be really cool and useful for users....
tell me if i can contribute in some ways (i'm an app dev mainly also)
simone201 said:
A small repo for APKs would be really cool and useful for users....
tell me if i can contribute in some ways (i'm an app dev mainly also)
Click to expand...
Click to collapse
I will work something out (I can easily make a repository if this kicks off, so people can upload them and they appear).
TBH right now it's more a case of thinking up some ideas. For now, I can add anything people send into the second post (though I think it would be reasonable that we request source for all such modifications, just given the sheer ability to modify anything that this has...)
I can't think of enough things to tweak, we just need to work out WHAT people will like to modify, and implement it
I'll be a good example and put mine onto git shortly
My own notepad of things I need...
http://forum.xda-developers.com/showthread.php?t=1965801
http://forum.xda-developers.com/showthread.php?t=1924905
call record:
http://forum.xda-developers.com/showthread.php?t=1938808
http://forum.xda-developers.com/showthread.php?t=1871525
Hey folks,
I'm happy to see some new interest on Xposed.
I've been using it since rovo89 came up with this brilliant idea, and have to admit I was kind of sad to see not many saw its great potential.
Personally, I'm using a couple of hacks for my individual use, but if the community starts to be interested in the HOWs rather than merely nagging about the apks I guess I can try to make an effort to clean and share the code.
Please do ask away stuff, I'm eager to seeing this being used to its full potential
For now, please check the Tweakbox sources. While the code itself might no longer 100% apply to the most recent S2 stock roms, it's still a nice example of how the hacks can be done.
this sounds great! like an universal (almost!) patching system. I hope more chef will write mods for this. man...wish i had taken some lessons in coding.
for a start, how about some of the often repeated annoyance in stock samsung that drives many to use custom roms just to get these functions:-
1) disable the scrolling quick setting panel when you open notification
2) 15 toggles as implement by guys like Wanam.
3) call recording (ok we got this already)
4) 4 way reboot menu
5) some kind of user definable custom battery graphics.
sunwee said:
this sounds great! like an universal (almost!) patching system. I hope more chef will write mods for this. man...wish i had taken some lessons in coding.
for a start, how about some of the often repeated annoyance in stock samsung that drives many to use custom roms just to get these functions:-
1) disable the scrolling quick setting panel when you open notification
2) 15 toggles as implement by guys like Wanam.
3) call recording (ok we got this already)
4) 4 way reboot menu
5) some kind of user definable custom battery graphics.
Click to expand...
Click to collapse
Yeah this is pretty universal. I'd even remove the word "almost" tbh...
For 1, do you mean to disable the scroll animation so that it shows the leftmost icon (wifi) first?
2 is possible, I know samsung has done it on 4.2, is the custom implementation better?
3 is done like you said.
4 should be more than possible.
5 is definitely possible, at least via flashing the modification for the battery style you want...
Thank for the ideas
i flash custom rom just because i need below few things
1.Call-Record. (done)
2.15 toggle, or maybe add NFC, S Beam, Multiwindow, Smart Stay as well
3.Louder Volume Speaker.
4.CRT Lock and Unlock Screen.
5.4 Way Reboot.
6.Unlimited Multi-Window
thanks for the good work and sharing.
Hi. So glad to see that this amazing framework didn't "die"
I would have one question about the mods...
Ok its likely that for the same device they work on different bases of the rom like DLJ5, ELK4 am I right?
But does a mod that was made for lets say the Note 2 work on a SGS3 or must it be adapted?
Thanks !
DirkStorck said:
Hi. So glad to see that this amazing framework didn't "die"
I would have one question about the mods...
Ok its likely that for the same device they work on different bases of the rom like DLJ5, ELK4 am I right?
But does a mod that was made for lets say the Note 2 work on a SGS3 or must it be adapted?
Thanks !
Click to expand...
Click to collapse
If it's touchwiz then it should work - samsung seems to have unified a lot of it.
Jerdog used the SMS to mms patch fine on his s3.
It really just depends on the modification itself tbh...
If I would like to start writing my own mods is there somewhere a guide how to debugg the mod I write?
Thanks!
one more
can you add:
*:laugh:skip music track with volume button

App not allowing me to sign in due to custom rom

Hi everyone,
So the company that provides the TV channels in my country (like the cable companies in the US) has a streaming service that streams most of these channels online to phones, tablets, computers.
The problem is that their app is, according to them "not supported on hacked devices". Just so we're clear, we're talking about Android here, and hacked = root/custom rom, which this stupid company considers illegal. In some devices, they check both root and custom rom, in some only one of them, and in some the app will work even if you have both. For example, on my Nexus 4 the app worked with stock rom that was rooted. Now that I am running a custom rom, trying to hide root using various apps does not work. So obviously the problem, with my device at least, is running the custom rom.
I'm currently learning Java & Android development and have decided to use the little knowledge that I have to try to find the lines of code responsible for this idiotic check.
I looked up many tools for decompiling apps and have finally found a good one, called JadX.
http://androidcracking.blogspot.co.il/2014/03/jadx-dex-to-java-decompiler.html#links
This decompiler is excellent, but gives me a scary amount of code files to look. Even so, trying to search all of them (JadX has that functionality) for the code that checks for root/custom rom has turned up nothing. I have also tried to search for the message they give me when I open the app (about hacked devices not working) but I found nothing, again.
One more thing - a developer that also tried to solve this problem said he traced the problem back to DxDrmDlcCore. I searched it, found it a some class, but not sure what to do now (delete the entire class and recompile?)
Can someone here direct me towards what I need to be looking for?
OR
Is the solution really simple, such as editing my build.prop? Someone suggested it once, but did not know what lines to edit.
If someone is ready to step up to the challenge, I can upload the apk.
Thank you!

Categories

Resources