Hi all, i need help. I am trying to patch the Kindle3.apk pulled off my Nexus. I found this tut buy a guy known as "ME" from ApprenticeAlf. He created this patch to enable the user to view his PID so that he could then go on to remove DRM from purchased e-books. I have installed Apktool to my C drive. Adb is up n running. This is the tut i am trying to use,
adb pull /data/app/com.amazon.kindle-1.apk kindle3.apk
adb uninstall com.amazon.kindle
apktool d kindle3.apk kindle3
cd kindle3
patch -p1 < ../kindle3.patch (this is the part that is giving me problems. When i enter this line i get an "Access is denied" error. I am a noob btw.
cd ..
apktool b kindle3 kindle3_patched.apk
jarsigner -verbose -keystore kindle.keystore kindle3_patched.apk kindle
zipalign -v 4 kindle3_patched.apk kindle3_signed.apk
adb install kindle3_signed.apk
Can someone please take a look at this tut and tell me if they can see any errors ie: should one of the lines be broken into 2 lines? Or. alternatively, is there an easier way to do this?
PS This is the script contained in the actual patch file
diff -ru kindle3_orig/smali/com/amazon/kcp/application/AndroidDeviceInformationProvider.smali kindle3/smali/com/amazon/kcp/application/AndroidDeviceInformationProvider.smali
--- kindle3_orig/smali/com/amazon/kcp/application/AndroidDeviceInformationProvider.smali
+++ kindle3/smali/com/amazon/kcp/application/AndroidDeviceInformationProvider.smali
@@ -11,6 +11,8 @@
.field private security:Lcom/mobipocket/android/library/reader/AndroidSecurity;
+.field private pidList:Ljava/lang/String;
+
# direct methods
.method public constructor <init>(Lcom/mobipocket/android/library/reader/AndroidSecurity;Lcom/amazon/kcp/application/AndroidDeviceType;)V
@@ -28,6 +30,10 @@
.line 26
iput-object p2, p0, Lcom/amazon/kcp/application/AndroidDeviceInformationProvider;->deviceType:Lcom/amazon/kcp/application/AndroidDeviceType;
+ const-string v0, "Open DRMed book to show PID list."
+
+ iput-object v0, p0, Lcom/amazon/kcp/application/AndroidDeviceInformationProvider;->pidList:Ljava/lang/String;
+
.line 27
new-instance v0, Ljava/lang/StringBuilder;
@@ -175,4 +181,26 @@
move-result-object v0
return-object v0
+.end method
+
+.method public getPidList()Ljava/lang/String;
+ .locals 1
+
+ .prologue
+ .line 15
+ iget-object v0, p0, Lcom/amazon/kcp/application/AndroidDeviceInformationProvider;->pidList:Ljava/lang/String;
+
+ return-object v0
+.end method
+
+.method public setPidList(Ljava/lang/String;)V
+ .locals 0
+ .parameter "value"
+
+ .prologue
+ .line 11
+ iput-object p1, p0, Lcom/amazon/kcp/application/AndroidDeviceInformationProvider;->pidList:Ljava/lang/String;
+
+ .line 12
+ return-void
.end method
diff -ru kindle3_orig/smali/com/amazon/kcp/application/IDeviceInformationProvider.smali kindle3/smali/com/amazon/kcp/application/IDeviceInformationProvider.smali
--- kindle3_orig/smali/com/amazon/kcp/application/IDeviceInformationProvider.smali
+++ kindle3/smali/com/amazon/kcp/application/IDeviceInformationProvider.smali
@@ -27,3 +27,9 @@
.method public abstract getPid()Ljava/lang/String;
.end method
+
+.method public abstract getPidList()Ljava/lang/String;
+.end method
+
+.method public abstract setPidList(Ljava/lang/String;)V
+.end method
\ No newline at end of file
diff -ru kindle3_orig/smali/com/amazon/kcp/info/AboutActivity.smali kindle3/smali/com/amazon/kcp/info/AboutActivity.smali
--- kindle3_orig/smali/com/amazon/kcp/info/AboutActivity.smali
+++ kindle3/smali/com/amazon/kcp/info/AboutActivity.smali
@@ -32,9 +32,11 @@
invoke-direct {v6, v1}, Ljava/util/ArrayList;-><init>(I)V
.line 36
- const v1, 0x7f0b0005
+ invoke-static {}, Lcom/amazon/kcp/application/DeviceInformationProviderFactory;->getProvider()Lcom/amazon/kcp/application/IDeviceInformationProvider;
- invoke-virtual {p0, v1}, Lcom/amazon/kcp/info/AboutActivity;->getString(I)Ljava/lang/String;
+ move-result-object v0
+
+ invoke-interface {v0}, Lcom/amazon/kcp/application/IDeviceInformationProvider;->getPidList()Ljava/lang/String;
move-result-object v1
diff -ru kindle3_orig/smali/com/amazon/system/security/Security.smali kindle3/smali/com/amazon/system/security/Security.smali
--- kindle3_orig/smali/com/amazon/system/security/Security.smali
+++ kindle3/smali/com/amazon/system/security/Security.smali
@@ -884,6 +884,15 @@
.line 332
:cond_1
+
+ const-string v1, "PID list"
+ invoke-static {}, Lcom/amazon/kcp/application/DeviceInformationProviderFactory;->getProvider()Lcom/amazon/kcp/application/IDeviceInformationProvider;
+ move-result-object v0
+ invoke-static {v7}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
+ move-result-object v2
+ invoke-interface {v0, v2}, Lcom/amazon/kcp/application/IDeviceInformationProvider;->setPidList(Ljava/lang/String;)V
+ invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
+
return-object v7
:cond_2
Any help from you guys really would be appreciated cos right now i'm at a dead end.
Cheers
adb pull /data/app/com.amazon.kindle-1.apk kindle3.apk
adb uninstall com.amazon.kindle
apktool d kindle3.apk kindle3
cd kindle3
patch -p1 < ../kindle3.patch (this is the part that is giving me problems. When i enter this line i get an "Access is denied" error. I am a noob btw.
cd ..
apktool b kindle3 kindle3_patched.apk
jarsigner -verbose -keystore kindle.keystore kindle3_patched.apk kindle
zipalign -v 4 kindle3_patched.apk kindle3_signed.apk
adb install kindle3_signed.apk
Can someone please take a look at this tut and tell me if they can see any errors ie: should one of the lines be broken into 2 lines? Or. alternatively, is there an easier way to do this?
PS This is the script contained in the actual patch file
diff -ru kindle3_orig/smali/com/amazon/kcp/application/AndroidDeviceInformationProvider.smali kindle3/smali/com/amazon/kcp/application/AndroidDeviceInformationProvider.smali
--- kindle3_orig/smali/com/amazon/kcp/application/AndroidDeviceInformationProvider.smali
+++ kindle3/smali/com/amazon/kcp/application/AndroidDeviceInformationProvider.smali
@@ -11,6 +11,8 @@
.field private security:Lcom/mobipocket/android/library/reader/AndroidSecurity;
+.field private pidList:Ljava/lang/String;
+
# direct methods
.method public constructor <init>(Lcom/mobipocket/android/library/reader/AndroidSecurity;Lcom/amazon/kcp/application/AndroidDeviceType;)V
@@ -28,6 +30,10 @@
.line 26
iput-object p2, p0, Lcom/amazon/kcp/application/AndroidDeviceInformationProvider;->deviceType:Lcom/amazon/kcp/application/AndroidDeviceType;
+ const-string v0, "Open DRMed book to show PID list."
+
+ iput-object v0, p0, Lcom/amazon/kcp/application/AndroidDeviceInformationProvider;->pidList:Ljava/lang/String;
+
.line 27
new-instance v0, Ljava/lang/StringBuilder;
@@ -175,4 +181,26 @@
move-result-object v0
return-object v0
+.end method
+
+.method public getPidList()Ljava/lang/String;
+ .locals 1
+
+ .prologue
+ .line 15
+ iget-object v0, p0, Lcom/amazon/kcp/application/AndroidDeviceInformationProvider;->pidList:Ljava/lang/String;
+
+ return-object v0
+.end method
+
+.method public setPidList(Ljava/lang/String;)V
+ .locals 0
+ .parameter "value"
+
+ .prologue
+ .line 11
+ iput-object p1, p0, Lcom/amazon/kcp/application/AndroidDeviceInformationProvider;->pidList:Ljava/lang/String;
+
+ .line 12
+ return-void
.end method
diff -ru kindle3_orig/smali/com/amazon/kcp/application/IDeviceInformationProvider.smali kindle3/smali/com/amazon/kcp/application/IDeviceInformationProvider.smali
--- kindle3_orig/smali/com/amazon/kcp/application/IDeviceInformationProvider.smali
+++ kindle3/smali/com/amazon/kcp/application/IDeviceInformationProvider.smali
@@ -27,3 +27,9 @@
.method public abstract getPid()Ljava/lang/String;
.end method
+
+.method public abstract getPidList()Ljava/lang/String;
+.end method
+
+.method public abstract setPidList(Ljava/lang/String;)V
+.end method
\ No newline at end of file
diff -ru kindle3_orig/smali/com/amazon/kcp/info/AboutActivity.smali kindle3/smali/com/amazon/kcp/info/AboutActivity.smali
--- kindle3_orig/smali/com/amazon/kcp/info/AboutActivity.smali
+++ kindle3/smali/com/amazon/kcp/info/AboutActivity.smali
@@ -32,9 +32,11 @@
invoke-direct {v6, v1}, Ljava/util/ArrayList;-><init>(I)V
.line 36
- const v1, 0x7f0b0005
+ invoke-static {}, Lcom/amazon/kcp/application/DeviceInformationProviderFactory;->getProvider()Lcom/amazon/kcp/application/IDeviceInformationProvider;
- invoke-virtual {p0, v1}, Lcom/amazon/kcp/info/AboutActivity;->getString(I)Ljava/lang/String;
+ move-result-object v0
+
+ invoke-interface {v0}, Lcom/amazon/kcp/application/IDeviceInformationProvider;->getPidList()Ljava/lang/String;
move-result-object v1
diff -ru kindle3_orig/smali/com/amazon/system/security/Security.smali kindle3/smali/com/amazon/system/security/Security.smali
--- kindle3_orig/smali/com/amazon/system/security/Security.smali
+++ kindle3/smali/com/amazon/system/security/Security.smali
@@ -884,6 +884,15 @@
.line 332
:cond_1
+
+ const-string v1, "PID list"
+ invoke-static {}, Lcom/amazon/kcp/application/DeviceInformationProviderFactory;->getProvider()Lcom/amazon/kcp/application/IDeviceInformationProvider;
+ move-result-object v0
+ invoke-static {v7}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
+ move-result-object v2
+ invoke-interface {v0, v2}, Lcom/amazon/kcp/application/IDeviceInformationProvider;->setPidList(Ljava/lang/String;)V
+ invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
+
return-object v7
:cond_2
Any help from you guys really would be appreciated cos right now i'm at a dead end.
Cheers







Sign In
Create Account

Back to top










