[MOD][XPOSED]Google Play Store (2013/07/05)

WonderEkin

Senior Member
Jul 7, 2007
162
306
0
Hi, I've built a dirty mod using Xposed framework to get Google Play store to work.


Script Installation

Requirement: Root your Ouya, adb tools
Files you need: ps4ouya_script.zip , download and extract them
  1. Sideload the Xposed framework, download link and installation guide from here.
  2. Execute RunMe.bat, that's it



_______________________________________________



Do this if the script didn't work
Manual Installation
Requirement: Root your Ouya, busybox installed, adb tools
Files you need: ps4ouya.zip , download and extract them
  1. Sideload the Xposed framework, download link and installation guide from here.
  2. Sideload Mod_PS4Ouya.apk and enable "Play Store Mod For Ouya" in the Xposed app
  3. Push these Google apk to /system/app
    Code:
    adb push com.android.vending.apk /sdcard/com.android.vending.apk
    adb push com.google.android.gms.apk /sdcard/com.google.android.gms.apk
    adb push GoogleLoginService.apk /sdcard/GoogleLoginService.apk
    adb push GoogleServicesFramework.apk /sdcard/GoogleServicesFramework.apk
    adb push NetworkLocation.apk /sdcard/NetworkLocation.apk
    Code:
    adb shell
    In the shell
    Code:
    su
    mount -orw,remount /system
    cat /sdcard/com.android.vending.apk > /system/app/com.android.vending.apk
    cat /sdcard/com.google.android.gms.apk > /system/app/com.google.android.gms.apk
    cat /sdcard/GoogleLoginService.apk > /system/app/GoogleLoginService.apk
    cat /sdcard/GoogleServicesFramework.apk > /system/app/GoogleServicesFramework.apk
    cat /sdcard/NetworkLocation.apk > /system/app/NetworkLocation.apk
    chmod 644 /system/app/com.android.vending.apk
    chmod 644 /system/app/com.google.android.gms.apk
    chmod 644 /system/app/GoogleLoginService.apk
    chmod 644 /system/app/GoogleServicesFramework.apk
    chmod 644 /system/app/NetworkLocation.apk
    mount -oro,remount /system
    reboot

Now the Play Store should ready to work.
If you can't find the Play Store in the MAKE menu, sideload the com.android.vending.apk again.
Code:
adb install -r com.android.vending.apk

Please see my other project
Mod Collection For Ouya(Play Store, OTA root keeper, Disable Auto Update, Overscan Fix & 720p)
 

Attachments

Last edited:

MasterZen88

Senior Member
Feb 13, 2012
569
1,162
0
Hi, I've built a dirty mod using Xposed framework to get Google Play store to work.

Installation
Requirement: Root your Ouya, adb tools
Files you need: ps4ouya.zip , download and extract them
  1. Sideload the Xposed framework, download link and installation guide from here.
  2. Sideload Mod_PS4Ouya.apk and enable "Play Store Mod For Ouya" in the Xposed app
  3. Push these Google apk to /system/app
    Code:
    adb push com.android.vending.apk /sdcard/com.android.vending.apk
    adb push com.google.android.gms.apk /sdcard/com.google.android.gms.apk
    adb push GoogleLoginService.apk /sdcard/GoogleLoginService.apk
    adb push GoogleServicesFramework /sdcard/GoogleServicesFramework.apk
    adb push NetworkLocation.apk /sdcard/NetworkLocation.apk
    Code:
    adb shell
    In the shell
    Code:
    su
    mount -orw,remount /system
    cp /sdcard/com.android.vending.apk /system/app
    cp /sdcard/com.google.android.gms.apk /system/app
    cp /sdcard/GoogleLoginService.apk /system/app
    cp /sdcard/GoogleServicesFramework.apk /system/app
    cp /sdcard/NetworkLocation.apk /system/app
    chmod 644 /system/app/com.android.vending.apk
    chmod 644 /system/app/com.google.android.gms.apk
    chmod 644 /system/app/GoogleLoginService.apk
    chmod 644 /system/app/GoogleServicesFramework.apk
    chmod 644 /system/app/NetworkLocation.apk
    mount -oro,remount /system
    reboot

Now the Play Store should ready to work.
If you can't find the Play Store in the MAKE menu, sideload the com.android.vending.apk again.
Great.. Testing it out now. Is it okay if I use your work within ZG Rom?
 

professorpoptart

Senior Member
Jul 7, 2010
165
110
0
missing .apk on framework... for the copy pasters

adb push GoogleServicesFramework.apk /sdcard/GoogleServicesFramework.apk

also,
I had to use cat instead of cp

like:
cat /sdcard/GoogleServicesFramework.apk > /system/app/GoogleServicesFramework.apk

---------- Post added at 11:45 AM ---------- Previous post was at 11:18 AM ----------

so if you dont mind, us irc'ers are wondering... whats the magic with the ps4ouya.apk?
 
Last edited:
  • Like
Reactions: goo200

WonderEkin

Senior Member
Jul 7, 2007
162
306
0

Akkeresu

Senior Member
Aug 16, 2010
77
7
0
Hi, I've built a dirty mod using Xposed framework to get Google Play store to work.

Installation
Requirement: Root your Ouya, adb tools
Files you need: ps4ouya.zip , download and extract them
  1. Sideload the Xposed framework, download link and installation guide from here.
  2. Sideload Mod_PS4Ouya.apk and enable "Play Store Mod For Ouya" in the Xposed app
  3. Push these Google apk to /system/app
    Code:
    adb push com.android.vending.apk /sdcard/com.android.vending.apk
    adb push com.google.android.gms.apk /sdcard/com.google.android.gms.apk
    adb push GoogleLoginService.apk /sdcard/GoogleLoginService.apk
    adb push GoogleServicesFramework /sdcard/GoogleServicesFramework.apk
    adb push NetworkLocation.apk /sdcard/NetworkLocation.apk
    Code:
    adb shell
    In the shell
    Code:
    su
    mount -orw,remount /system
    cp /sdcard/com.android.vending.apk /system/app
    cp /sdcard/com.google.android.gms.apk /system/app
    cp /sdcard/GoogleLoginService.apk /system/app
    cp /sdcard/GoogleServicesFramework.apk /system/app
    cp /sdcard/NetworkLocation.apk /system/app
    chmod 644 /system/app/com.android.vending.apk
    chmod 644 /system/app/com.google.android.gms.apk
    chmod 644 /system/app/GoogleLoginService.apk
    chmod 644 /system/app/GoogleServicesFramework.apk
    chmod 644 /system/app/NetworkLocation.apk
    mount -oro,remount /system
    reboot

Now the Play Store should ready to work.
If you can't find the Play Store in the MAKE menu, sideload the com.android.vending.apk again.
Code:
adb install -r com.android.vending.apk
Need to add .apk to "GoodleServicesFramework" push line.

Added my account just fine, but Google Play crashes on launch:

http://pastebin.com/J85uABZs

Reran the permissions portions and rebooted, just in case.

Good on ya for getting this far!

[EDIT] I'm gonna try using Vending DRM'ed files in a moment to test that aspect. If I can get DataSync+ working, then I may not need the actual Play Store. :3
 
Last edited:

WonderEkin

Senior Member
Jul 7, 2007
162
306
0
missing .apk on framework... for the copy pasters

adb push GoogleServicesFramework.apk /sdcard/GoogleServicesFramework.apk

also,
I had to use cat instead of cp

like:
cat /sdcard/GoogleServicesFramework.apk > /system/app/GoogleServicesFramework.apk

---------- Post added at 11:45 AM ---------- Previous post was at 11:18 AM ----------

so if you dont mind, us irc'ers are wondering... whats the magic with the ps4ouya.apk?
  1. Seems Ouya changes something to block some class properties like this one:
    Code:
    I/dalvikvm( 1568): DexOpt: access denied from Lcom/google/android/volley/elegant
    /ElegantThreadSafeConnManager$ElegantPool; to field Lorg/apache/http/impl/conn/t
    sccm/ConnPoolByRoute;.poolLock
    I tried to replace some file from Nexus7 rom but didn't work
  2. So i tired to mod the vending.apk to bypass this. And luckily, after I installed the XPOSED framework, those error are all gone, the Play Store shows but still get "Connection timed out" with a retry button.
    Code:
    E/Volley  ( 3492): [283] NetworkDispatcher.run: Unhandled exception org.apache.http.impl.conn.ConnectionShutdownException
    E/Volley  ( 3492): org.apache.http.impl.conn.ConnectionShutdownException
    E/Volley  ( 3492):      at org.apache.http.impl.conn.AbstractPooledConnAdapter.assertValid(AbstractPooledConnAdapter.java:91)
    E/Volley  ( 3492):      at org.apache.http.impl.conn.AbstractPooledConnAdapter.getRoute(AbstractPooledConnAdapter.java:116)
    E/Volley  ( 3492):      at com.google.android.volley.elegant.ElegantThreadSafeConnManager.releaseConnection(ElegantThreadSafeConnManager.java:75)
    E/Volley  ( 3492):      at org.apache.http.impl.conn.AbstractClientConnAdapter.releaseConnection(AbstractClientConnAdapter.java:307)
    E/Volley  ( 3492):      at org.apache.http.conn.BasicManagedEntity.releaseManagedConnection(BasicManagedEntity.java:191)
    E/Volley  ( 3492):      at org.apache.http.conn.BasicManagedEntity.eofDetected(BasicManagedEntity.java:145)
    E/Volley  ( 3492):      at org.apache.http.conn.EofSensorInputStream.checkEOF(EofSensorInputStream.java:211)
    E/Volley  ( 3492):      at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:139)
    E/Volley  ( 3492):      at java.io.SequenceInputStream.read(SequenceInputStream.java:190)
    E/Volley  ( 3492):      at java.io.InputStream.read(InputStream.java:163)
    E/Volley  ( 3492):      at com.android.volley.toolbox.BasicNetwork.entityToBytes(BasicNetwork.java:212)
    E/Volley  ( 3492):      at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:104)
    E/Volley  ( 3492):      at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105)
  3. So I tried to bypass org.apache.http.impl.conn.AbstractPooledConnAdapter.assertValid and WOW, the Play Store is working
 
  • Like
Reactions: professorpoptart

WonderEkin

Senior Member
Jul 7, 2007
162
306
0
Need to add .apk to "GoodleServicesFramework" push line.

Added my account just fine, but Google Play crashes on launch:

http://pastebin.com/J85uABZs

Reran the permissions portions and rebooted, just in case.

Good on ya for getting this far!

[EDIT] I'm gonna try using Vending DRM'ed files in a moment to test that aspect. If I can get DataSync+ working, then I may not need the actual Play Store. :3
Seems the Xposed installer can't replace the app_process
can you download this one and push it into /system/bin, chmod 755, reboot and start play store again?
 

professorpoptart

Senior Member
Jul 7, 2010
165
110
0
  1. Seems Ouya changes something to block some class properties like this one:
    Code:
    I/dalvikvm( 1568): DexOpt: access denied from Lcom/google/android/volley/elegant
    /ElegantThreadSafeConnManager$ElegantPool; to field Lorg/apache/http/impl/conn/t
    sccm/ConnPoolByRoute;.poolLock


  1. exactly what I was seeing, I have never used exposed before... something new to try next time we run into something like this. Awsome job! Now reap the sweet sweet internet karma! lol
 

MasterZen88

Senior Member
Feb 13, 2012
569
1,162
0
  1. Seems Ouya changes something to block some class properties like this one:
    Code:
    I/dalvikvm( 1568): DexOpt: access denied from Lcom/google/android/volley/elegant
    /ElegantThreadSafeConnManager$ElegantPool; to field Lorg/apache/http/impl/conn/t
    sccm/ConnPoolByRoute;.poolLock
    I tried to replace some file from Nexus7 rom but didn't work
  2. So i tired to mod the vending.apk to bypass this. And luckily, after I installed the XPOSED framework, those error are all gone, the Play Store shows but still get "Connection timed out" with a retry button.
    Code:
    E/Volley  ( 3492): [283] NetworkDispatcher.run: Unhandled exception org.apache.http.impl.conn.ConnectionShutdownException
    E/Volley  ( 3492): org.apache.http.impl.conn.ConnectionShutdownException
    E/Volley  ( 3492):      at org.apache.http.impl.conn.AbstractPooledConnAdapter.assertValid(AbstractPooledConnAdapter.java:91)
    E/Volley  ( 3492):      at org.apache.http.impl.conn.AbstractPooledConnAdapter.getRoute(AbstractPooledConnAdapter.java:116)
    E/Volley  ( 3492):      at com.google.android.volley.elegant.ElegantThreadSafeConnManager.releaseConnection(ElegantThreadSafeConnManager.java:75)
    E/Volley  ( 3492):      at org.apache.http.impl.conn.AbstractClientConnAdapter.releaseConnection(AbstractClientConnAdapter.java:307)
    E/Volley  ( 3492):      at org.apache.http.conn.BasicManagedEntity.releaseManagedConnection(BasicManagedEntity.java:191)
    E/Volley  ( 3492):      at org.apache.http.conn.BasicManagedEntity.eofDetected(BasicManagedEntity.java:145)
    E/Volley  ( 3492):      at org.apache.http.conn.EofSensorInputStream.checkEOF(EofSensorInputStream.java:211)
    E/Volley  ( 3492):      at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:139)
    E/Volley  ( 3492):      at java.io.SequenceInputStream.read(SequenceInputStream.java:190)
    E/Volley  ( 3492):      at java.io.InputStream.read(InputStream.java:163)
    E/Volley  ( 3492):      at com.android.volley.toolbox.BasicNetwork.entityToBytes(BasicNetwork.java:212)
    E/Volley  ( 3492):      at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:104)
    E/Volley  ( 3492):      at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:105)
  3. So I tried to bypass org.apache.http.impl.conn.AbstractPooledConnAdapter.assertValid and WOW, the Play Store is working

How did you bypass that call??
 

professorpoptart

Senior Member
Jul 7, 2010
165
110
0
How did you bypass that call??

Heres the meat. basically hook the class and throw null. well done WonderEkin!
Class<?> clsAbstractPooledConnAdapter = findClass("org.apache.http.impl.conn.AbstractPooledConnAdapter", lpparam.classLoader);
findAndHookMethod(clsAbstractPooledConnAdapter, "assertValid", org.apache.http.impl.conn.AbstractPoolEntry.class, new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
return null;
}
});
}
}
 
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone