I don't know what CyanogenMod is... I tried doing what quinny did, but that only changed my error to ClassNotFoundException org.mozzila.javascript.tool.shell.main
I can change perms, owners and groups. Im going to try SuperSU now., though it probably won't help.
I don't know what CyanogenMod is... I tried doing what quinny did, but that only changed my error to ClassNotFoundException org.mozzila.javascript.tool.shell.main
I can change perms, owners and groups. Im going to try SuperSU now., though it probably won't help.
If you do get it working, please let me know what it was. I thought it might be related to this, but now it sounds like it may be related to this...
Edit: tried to connect to some hosts in multiplayer section, but just got endless scanning. If anyone wants to help test, PM me and I'll set up a server.
With me it's one problem after another, now it all works, the patches patch, and they work in game, but now my MCPE crashes after about five minutes of regular gameplay. My phone is the first gen Xperia Play 3g. Like the mods ... not the crashes...
With me it's one problem after another, now it all works, the patches patch, and they work in game, but now my MCPE crashes after about five minutes of regular gameplay. My phone is the first gen Xperia Play 3g. Like the mods ... not the crashes...
Heh, that sucks. Have you tried to narrow it down to which patch is causing the crashes? I'd put my money on antifog (no particular reason, just seems like it could be crash-prone).
Here's a tool to create patches right on your device. If you want to import patches in another format (like PocketTool patches), you can use this. This is an early preview, it's pretty rough right now but I'll be fixing it up a bit. If anyone decides to try this out, please let me know how it goes.
qpdiff
qpdiff preview release: create patches on your device.
Setup
Create a new script in SL4A named qpdiff.js and add the following code:
qpdiff compares two versions of a file to create a patch. To port a PocketTool patch, make two additional copies of the mcpe .so file, one before patching it and one after patching it. Enter the paths to the old and new files in qpdiff, along with the patch title and other information. Then, hit the create patch button.
It will spit out a quick patch, which you can copy to a gist or jsbin to distribute.
Here's a tool to create patches right on your device. If you want to import patches in another format (like PocketTool patches), you can use this. This is an early preview, it's pretty rough right now but I'll be fixing it up a bit. If anyone decides to try this out, please let me know how it goes.
It works like a Rube Goldberg machine - browser calls Rhino which calls Bash which makes a patch which sends it back up the line.
This looks pretty good, but I think I'll stick with my PatchTool-based diff generator.
It works like a Rube Goldberg machine - browser calls Rhino which calls Bash which makes a patch which sends it back up the line.
It's even worse than that, actually. SL4A kicks off a web view to a local html file, then starts a tiny (JS/Rhino) webserver. The web view communicates with the server via (JS/V8) XMLHttpRequest. The server kicks off the shell script and reports the output back to the client.
None of that's actually slow since it's not really doing much, it's the shell script itself that's slow... it dumps each binary file as text so it can do a diff and process the output. The dumping process is only really slow on mobile; using the shell script from a decent PC is much faster.
This looks pretty good, but I think I'll stick with my PatchTool-based diff generator.
I don't blame you. Figured this would be more accessible to most people, although I suppose a UI could be made for your generator and dropped in an APK... seems like a lot of work though
qpdiff compares two versions of a file to create a patch. To port a PocketTool patch, make two additional copies of the mcpe .so file, one before patching it and one after patching it. These files must be in a location that is writable to a non-root user. Enter the paths to the old and new files in qpdiff, along with the patch title and other information. Then, hit the create patch button and wait.
Keep waiting. It's really slow right now, can take up to two minutes, and for now there is no indication that anything is happening. If you didn't see an error message, something is probably happening, so keep waiting (I'll clean this up eventually).
Eventually it will spit out a quick patch, which you can copy to a gist or jsbin to distribute.
You want users to use PocketTool to get 2 different .so files to put into qpdiff? And have to wait 2 minutes for the patch?
You could just read the PTPatch file and convert it based on the data it contains. This would increase speed and production by over 9000!
Also, you could probably just write a code snippet that reads both the new file and old file and check for a change at each byte value in each ie
for(int i = 0; i < length; i++) {
if(array1[i] == array2[i]) {
continue;
}else{
//do something about the difference
}
}
This will potential reduce diff time to about 20-50 seconds (depending on device and JSON interpreter speed or if you use a C/C++ native linux program, it could potentially be less than 5 - 10 seconds. PocketTool's diff takes about 5 seconds or less).
You want users to use PocketTool to get 2 different .so files to put into qpdiff? And have to wait 2 minutes for the patch?
You could just read the PTPatch file and convert it based on the data it contains. This would increase speed and production by over 9000!
Yeah, but then I'd have to dig up your notes on the PTP format
Also, I don't think those contain the original data that's being patched over, do they? These patches require that data so they can be reverted.
Also, you could probably just write a code snippet that reads both the new file and old file and check for a change at each byte value in each [...] This will potential reduce diff time to about 20-50 seconds (depending on device and JSON interpreter speed or if you use a C/C++ native linux program, it could potentially be less than 5 - 10 seconds. PocketTool's diff takes about 5 seconds or less).
Yeah, that's what I'm doing now, redoing the shell script in C++ and trying to figure out how I'm going to distribute it with the rest of this stuff. I have a feeling doing it in JS would be even slower than it is now; tried doing io on binary files before with java.io via rhino and it was pretty much unbearable.
Sorry to be a pain but I'm also a victim of the permissions problems of cyanogen mod 10 on my i9300.
It seems that anything in the mnt/sdcard/ area cannot have permissions greater than 775. I am rooted and I even tried supersu. If you can have the script create its temporary directory anywhere else but the SD card or just make the scrip use permissions no greater than 775, I will shed a tear of happiness.
It seems you can create a folder with 777 permissions in the root folder so try make the tmp dir there and I'll test it for you
What is it?
-
View User Profile
-
View Posts
-
Send Message
Curse PremiumI can change perms, owners and groups. Im going to try SuperSU now., though it probably won't help.
If you do get it working, please let me know what it was. I thought it might be related to this, but now it sounds like it may be related to this...
Not tested, but should work.
Edit: tried to connect to some hosts in multiplayer section, but just got endless scanning. If anyone wants to help test, PM me and I'll set up a server.
-
View User Profile
-
View Posts
-
Send Message
Curse PremiumExcellent... may your patching be quick
Can anyone confirm whether this server IP patch works? Gist ID 3704783
-
View User Profile
-
View Posts
-
Send Message
Curse PremiumThanks!
Heh, that sucks. Have you tried to narrow it down to which patch is causing the crashes? I'd put my money on antifog (no particular reason, just seems like it could be crash-prone).
qpdiff
qpdiff preview release: create patches on your device.
Setup
Create a new script in SL4A named qpdiff.js and add the following code:
load("https://raw.github.com/gist/3712767/server/qpdiff.js"); main();Usage
qpdiff compares two versions of a file to create a patch. To port a PocketTool patch, make two additional copies of the mcpe .so file, one before patching it and one after patching it. Enter the paths to the old and new files in qpdiff, along with the patch title and other information. Then, hit the create patch button.
It will spit out a quick patch, which you can copy to a gist or jsbin to distribute.
Requirements
root, executable /bin, internet connection.
-
View User Profile
-
View Posts
-
Send Message
Curse PremiumIt works like a Rube Goldberg machine - browser calls Rhino which calls Bash which makes a patch which sends it back up the line.
This looks pretty good, but I think I'll stick with my PatchTool-based diff generator.
By the way, why is your new avatar not animated?
It's even worse than that, actually. SL4A kicks off a web view to a local html file, then starts a tiny (JS/Rhino) webserver. The web view communicates with the server via (JS/V8) XMLHttpRequest. The server kicks off the shell script and reports the output back to the client.
None of that's actually slow since it's not really doing much, it's the shell script itself that's slow... it dumps each binary file as text so it can do a diff and process the output. The dumping process is only really slow on mobile; using the shell script from a decent PC is much faster.
I don't blame you. Figured this would be more accessible to most people, although I suppose a UI could be made for your generator and dropped in an APK... seems like a lot of work though
He's frozen in shock!
You want users to use PocketTool to get 2 different .so files to put into qpdiff? And have to wait 2 minutes for the patch?
You could just read the PTPatch file and convert it based on the data it contains. This would increase speed and production by over 9000!
Also, you could probably just write a code snippet that reads both the new file and old file and check for a change at each byte value in each ie
for(int i = 0; i < length; i++) { if(array1[i] == array2[i]) { continue; }else{ //do something about the difference } }This will potential reduce diff time to about 20-50 seconds (depending on device and JSON interpreter speed or if you use a C/C++ native linux program, it could potentially be less than 5 - 10 seconds. PocketTool's diff takes about 5 seconds or less).
Yeah, but then I'd have to dig up your notes on the PTP format
Also, I don't think those contain the original data that's being patched over, do they? These patches require that data so they can be reverted.
Yeah, that's what I'm doing now, redoing the shell script in C++ and trying to figure out how I'm going to distribute it with the rest of this stuff. I have a feeling doing it in JS would be even slower than it is now; tried doing io on binary files before with java.io via rhino and it was pretty much unbearable.
load("https://raw.github.com/gist/3712767/server/qpdiff.js"); main();It seems that anything in the mnt/sdcard/ area cannot have permissions greater than 775. I am rooted and I even tried supersu. If you can have the script create its temporary directory anywhere else but the SD card or just make the scrip use permissions no greater than 775, I will shed a tear of happiness.
It seems you can create a folder with 777 permissions in the root folder so try make the tmp dir there and I'll test it for you
I really should put those files somewhere anyway... will do it this weekend.
-
View User Profile
-
View Posts
-
Send Message
Curse PremiumAwesome, added to top post... going to try these out tonight