[GUIDE][MIUI] PatchROM Rejects Fixing Tutorial - Android

Hello everyone!
MIUI (which stands for Mi User Interface and pronounced "Me You I", a play on the common abbreviation of the words user interface as UI), developed by Xiaomi Tech, is a stock and aftermarket firmware for smartphones and tablet computers based on the free software Android operating system. MIUI includes various features such as theming support.
Click to expand...
Click to collapse
Patchrom is a open-source project initiated and maintained by MIUI team. It mainly utilizes the assembler/disassembler technology to craft a MIUI ROM for an existing ROM. Although this project is for MIUI ROM, but the technology and tools is general for crafting any android ROM.
Click to expand...
Click to collapse
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Today I present you a guide for PatchROM rejects fixing. I'm not an expert at all, so maybe I'll miss things. Don't expect that I'll explain solution to every issue, however, I try my best to do this tutorial. I'm very happy due to I haven't found a specific thread about this.
This guide is applicable to all devices and Miui versions (using PatchROM)
Click to expand...
Click to collapse
This guide is continue updating. I'm getting more knowledge everyday, and I'll explain the most kinds of rejects as posible.
Click to expand...
Click to collapse
Having said that, let's start!
1. Understanding Rejects
First of all, is needed to know why we get a reject. We know that we've got a reject when executing in Terminal "make firstpatch" appears something like this:
Code:
Hunk #1 FAILED at 111.
1 out of 1 hunks FAILED -- saving rejects to file android.services.jar.out/PhoneWindowManager.smali.rej
This tells me that the patch couldn't apply it at line 111. Also we know that the half-patched file is located in android.services.jar.out and it's called "PhoneWindowManager.smali".
Realise that PatchROM decompiles framework files at smali code to add MIUI lines. What's smali?:
Smali/Baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The names "Smali" and "Baksmali" are the Icelandic equivalents of "assembler" and "disassembler" respectively.
Click to expand...
Click to collapse
Now that we've seen the failed hunks, it's time to find the related reject. Reject files are located at temp/reject folder.
Following my example, the half-patched file is located at android.services.jar.out. So I have to open that sub-folder at reject directory, and look for "PhoneWindowManager.smali.rej"; that's the reject file.
Having done that, we have to find the base file. In this case, I'll be located in device root folder (patchrom/device) at
android.services.jar.out. We have to look for "PhoneWindowManager.smali"; I'll be at the same path that reject one.
For example, if reject file is located at "patchrom/device/temp/reject/android.policy.jar.out/smali/com/android/internal/policy/impl" original file will be located at "patchrom/device/android.policy.jar.out/smali/com/android/internal/policy/impl".
Click to expand...
Click to collapse
Once we have found the right file to edit, it's time to patch it manually.
2. Getting Patch Knowledge
Now we have to open both files (reject and base). In the reject, we'll see something like this:
Code:
*** PhoneWindowManager.smali 2015-09-09 11:46:13.541852561 -0300
--- PhoneWindowManager.smali 2015-09-09 11:47:07.349851413 -0300
***************
*** 393,404 ****
.field private mPowerKeyTriggered:Z
! .field private final mPowerLongPress:Ljava/lang/Runnable;
.field mPowerManager:Landroid/os/PowerManager;
.field mPreloadedRecentApps:Z
.field mRecentAppsDialog:Lcom/android/internal/policy/impl/RecentApplicationsDialog;
.field mRecentAppsDialogHeldModifiers:I
--- 395,408 ----
.field private mPowerKeyTriggered:Z
! .field private mPowerLongPress:Ljava/lang/Runnable;
.field mPowerManager:Landroid/os/PowerManager;
.field mPreloadedRecentApps:Z
+ .field private final mQuickBootLock:Ljava/lang/Object;
+
.field mRecentAppsDialog:Lcom/android/internal/policy/impl/RecentApplicationsDialog;
.field mRecentAppsDialogHeldModifiers:I
The next step will be patching. Before that, we have to get some knowledge about symbology and terminology:
***XX,XX***: this tells me that the patch is expecting source input (below codes) between the specified lines. In this case, it expected them between line 393 and 404.
---XX,XX---: this tells me how the lines should look after patching, and where they should be. In this case, between line 395 and 408.
However, the expecting lines doesn't matter a lot. The important part is that we realise that:
Lines below asterisks (***) are how they look in base file before patching.
Lines below hyphens (---) are how they look in base file after patching.
We get a reject, because the patch couldn't find the expected source input at the given line numbers and that's why the actual patching fails.
Click to expand...
Click to collapse
So our work will be patching them manually, due to human brain is more intelligent than an automatic patch (not always, jajajaja :silly: )
To do that, we have to understand the symbols:
+ means that the line is added by the patch
- means that the line is removed by the patch
! means that the line is changed/edited by the patch
Having this knowledge, it's time to fix that reject...
3. Applying Patches Manually
I'm going to follow my example and fix it. Then you'll apply the same procedure with your reject.
Firstly, we have to pay attention to source input (asterisks):
Code:
*** 393,404 ****
.field private mPowerKeyTriggered:Z
! .field private final mPowerLongPress:Ljava/lang/Runnable;
.field mPowerManager:Landroid/os/PowerManager;
.field mPreloadedRecentApps:Z
.field mRecentAppsDialog:Lcom/android/internal/policy/impl/RecentApplicationsDialog;
.field mRecentAppsDialogHeldModifiers:I
Now it's time to look for that lines in the base file. They will be located 200 lines after or before the expecting input. Besides, they could be lightly different, almost in values. In my case, this will be the right place to work:
Code:
.field private mPowerKeyTriggered:Z
.field private final mPowerLongPress:Ljava/lang/Runnable;
.field mPowerManager:Landroid/os/PowerManager;
.field mPreloadedRecentApps:Z
.field private mPressOnAppSwitchBehavior:I
.field private mPressOnAssistBehavior:I
.field private mPressOnMenuBehavior:I
.field private final mQuickBootLock:Ljava/lang/Object;
.field private final mQuickBootPowerLongPress:Ljava/lang/Runnable;
As you can see, they're in different order, and others doesn't appear. Now we've located the source input, pay attention to the "after patch" (hyphens):
Code:
--- 395,408 ----
.field private mPowerKeyTriggered:Z
! .field private mPowerLongPress:Ljava/lang/Runnable;
.field mPowerManager:Landroid/os/PowerManager;
.field mPreloadedRecentApps:Z
+ .field private final mQuickBootLock:Ljava/lang/Object;
+
.field mRecentAppsDialog:Lcom/android/internal/policy/impl/RecentApplicationsDialog;
.field mRecentAppsDialogHeldModifiers:I
This tells me that I'll have to edit:
Code:
.field private final mPowerLongPress:Ljava/lang/Runnable;
And change it to:
Code:
.field private mPowerLongPress:Ljava/lang/Runnable;
Besides, I'll have to add this:
Code:
.field private final mQuickBootLock:Ljava/lang/Object;
Realise that files are partially patched. In this case, it's not needed to add it due to it's already in the original file, but in a distinct location. If you want, you can put it under:
Code:
.field mPreloadedRecentApps:Z
To leave it as the reject says, although it's an insignificant change.
So after patching it manually, it look in this way:
Code:
.field private mPowerKeyTriggered:Z
.field private mPowerLongPress:Ljava/lang/Runnable;
.field mPowerManager:Landroid/os/PowerManager;
.field mPreloadedRecentApps:Z
.field private mPressOnAppSwitchBehavior:I
.field private mPressOnAssistBehavior:I
.field private mPressOnMenuBehavior:I
.field private final mQuickBootLock:Ljava/lang/Object;
.field private final mQuickBootPowerLongPress:Ljava/lang/Runnable;
Finally, save your changes and exit. Go to another reject! :laugh: :laugh: :laugh:​
Thanks list:
@Tquetski from MIUI forums
@JavierAlonso (Me)
*Donate to those guys if you can*
Click to expand...
Click to collapse
Code:
Press thanks if I help you ;)
Code:
Don't copy my work without my permission
PD: I'm busy right now. I'll be adding more explanations and examples to this tutorial, due to this first example it's quite easy. Be patient please
Click to expand...
Click to collapse

Multiple Line Change
Here I'm going to explain you another kind of reject, that could be confusing sometimes. I like to call it: Multiple Line Change.
For example, we can find this reject:
Code:
*** 40,52 ****
# virtual methods
.method public run()V
.locals 5
.prologue
:try_start_0
iget-object v1, p0, Lcom/android/server/MasterClearReceiver$1;->val$context:Landroid/content/Context;
! invoke-static {v1}, Landroid/os/RecoverySystem;->rebootWipeUserData(Landroid/content/Context;)V
const-string v1, "MasterClear"
--- 44,66 ----
# virtual methods
.method public run()V
.locals 5
.prologue
:try_start_0
iget-object v1, p0, Lcom/android/server/MasterClearReceiver$1;->val$context:Landroid/content/Context;
! iget-object v2, p0, Lcom/android/server/MasterClearReceiver$1;->val$intent:Landroid/content/Intent;
!
! const-string v3, "format_sdcard"
!
! const/4 v4, 0x0
!
! invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
!
! move-result v2
!
! invoke-static {v1, v2}, Landroid/os/RecoverySystem;->rebootFactoryReset(Landroid/content/Context;Z)V
const-string v1, "MasterClear"
As you can see, there's not addition (+) or delete (-) symbols, only edit (!). This type of reject is special due to in "source input" there's a single line with !, and in "after patch" appear 11 changes.
How? What's the reason? Very simple.
Do not look at lines of code as individual things. They can be considered "one object" and should be looked at in an abstract way like this.
Click to expand...
Click to collapse
For example, I have this line in source input:
Code:
! invoke-static {v1}, Landroid/os/RecoverySystem;->rebootWipeUserData(Landroid/content/Context;)V
And in "after patch" appears this:
Code:
! iget-object v2, p0, Lcom/android/server/MasterClearReceiver$1;->val$intent:Landroid/content/Intent;
!
! const-string v3, "format_sdcard"
!
! const/4 v4, 0x0
!
! invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
!
! move-result v2
!
! invoke-static {v1, v2}, Landroid/os/RecoverySystem;->rebootFactoryReset(Landroid/content/Context;Z)V
So what to do? You have to know that:
If "!" lines appear close together, it means this "Block of code" is one object. So replace the single "!" before line with that entire block.
Applying this knowledge, with this the reject I'll do this:
I have to change this:
Code:
invoke-static {v1}, Landroid/os/RecoverySystem;->rebootWipeUserData(Landroid/content/Context;)V
To this:
Code:
iget-object v2, p0, Lcom/android/server/MasterClearReceiver$1;->val$intent:Landroid/content/Intent;
const-string v3, "format_sdcard"
const/4 v4, 0x0
invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
move-result v2
invoke-static {v1, v2}, Landroid/os/RecoverySystem;->rebootFactoryReset(Landroid/content/Context;Z)V
So after patching it manually, the base file looks in this way:
Code:
# virtual methods
.method public run()V
.locals 5
.prologue
:try_start_0
iget-object v1, p0, Lcom/android/server/MasterClearReceiver$1;->val$context:Landroid/content/Context;
iget-object v2, p0, Lcom/android/server/MasterClearReceiver$1;->val$intent:Landroid/content/Intent;
const-string v3, "format_sdcard"
const/4 v4, 0x0
invoke-virtual {v2, v3, v4}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
move-result v2
invoke-static {v1, v2}, Landroid/os/RecoverySystem;->rebootFactoryReset(Landroid/content/Context;Z)V
const-string v1, "MasterClear"
And that's it. I think it's very easy to understand. This kind of reject is nearly and addition, with the difference that we change one line with an entire block. So DON'T leave the ! line of source input; you must delete it and replace it with that block.

There is already a label with that name.
Hi! I'm here again to go to the next level about smali and rejects. :highfive:
Today I'm not going to explain you a reject at all; I'm going to explain how to fix a very common issue when making fullota.
In Terminal, you'll get something like this:
Code:
out/framework2/smali/com/android/internal/app/IAppOpsService$Stub.smali[695,4] There is already a label with that name.
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: com/android/internal/app/IAppOpsService$Stub.smali
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:71)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:55)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:41)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:354)
at brut.androlib.Androlib.buildSources(Androlib.java:294)
at brut.androlib.Androlib.build(Androlib.java:280)
at brut.androlib.Androlib.build(Androlib.java:255)
at brut.apktool.Main.cmdBuild(Main.java:225)
at brut.apktool.Main.main(Main.java:84)
Why we're getting this error? Very simple: sometimes MiPatcher (or just you when patching manually) gets confused due to it found the same line twice in a smali, so it applies a duplicate diff, or something like that, so it results in "There is already a label with that name."
And the question is...How can we fix it? Quite simple too. Firstly, locate which file is corrupted. In my case is:
Code:
out/framework2/smali/com/android/internal/app/IAppOpsService$Stub.smali[695,4] There is already a label with that name.
So I'll open "IAppOpsService$Stub.smali", which should be located at: patchrom/device/framework2/smali/com/android/internal/app/. After that, it's time to find out the line that's wrong.
Terminal output tells it. In my case:
Code:
IAppOpsService$Stub.smali[695,4]
I'll have to go to line 695 (use Ctrl+I). When I'm looking at there, I found this:
Attention: Don't look only at line 695. You've to look around it to figure out what we've to edit.
Click to expand...
Click to collapse
Code:
:sswitch_d
const-string v7, "com.android.internal.app.IAppOpsService"
invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
invoke-virtual {p2}, Landroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;
move-result-object v7
invoke-static {v7}, Lcom/android/internal/app/IOpsCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IOpsCallback;
Now you've to be focused in which label could be repeated. Applying logic, the line that's causing the issue is:
Code:
:sswitch_d
Why? Coz the other lines uses values that are used all over the file. To check that ":sswitch_d" is the label which is repeated, just look for the same code in that file (use Ctrl+f).
I found this code some lines up:
Code:
[B][COLOR="Blue"]:sswitch_d[/COLOR][/B]
const-string v6, "com.android.internal.app.IAppOpsService"
invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
.line 197
invoke-virtual {p0}, Lcom/android/internal/app/IAppOpsService$Stub;->resetCounters()V
.line 198
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
goto/16 :goto_0
Realise that both codes are too similar. That's why I think that MiPatcher fails. So what to do?
To fix this issue, you have to mix both codes. Look for what lines coincide, and then mix the ones that doesn't match.
Be careful, a different value (v7, p2) doesn't mean that the line doesn't coincide.
In my case, I deleted the first code (that was around line 695, which was failing) and I mixed it content into the second code. After editing, it looked in this way:
Code:
:sswitch_d
const-string v6, "com.android.internal.app.IAppOpsService"
invoke-virtual {p2, v6}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V
invoke-virtual {p2}, Landroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;
move-result-object v7
invoke-static {v7}, Lcom/android/internal/app/IOpsCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IOpsCallback;
.line 197
invoke-virtual {p0}, Lcom/android/internal/app/IAppOpsService$Stub;->resetCounters()V
.line 198
invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V
goto/16 :goto_0
Finally, save your changes and try to make fullota again. I'll work :laugh:
Sorry for my bad english. I'll try to improve the syntax and vocabulary. Hope you understand it.
Click to expand...
Click to collapse

Invalid register: vX. Must be between vX and vX, inclusive
Hello again! I'll be explaining how to fix that kind of error soon; I'm busy right now

ValueError: need more than X values to unpack
Hi! Now I'm gonna go into another common issue while making fullota. :silly:
In Terminal, you'll get something like this:
Code:
using prebuilt boot.img...
Traceback (most recent call last):
File "/home/develop/patchrom/tools/releasetools/ota_from_target_files", line 884, in <module>
main(sys.argv[1:])
File "/home/develop/patchrom/tools/releasetools/ota_from_target_files", line 852, in main
WriteFullOTAPackage(input_zip, output_zip)
File "/home/develop/patchrom/tools/releasetools/ota_from_target_files", line 432, in WriteFullOTAPackage
Item.GetMetadata(input_zip)
File "/home/develop/patchrom/tools/releasetools/ota_from_target_files", line 163, in GetMetadata
name, uid, gid, mode = columns[:4]
ValueError: need more than 2 values to unpack
make: *** [fullota] Error 1
It seems that we'll need to make a lot of changes and too much stuff, but don't worry about it, it's very easy to solve.
What you've to do is look for a file called "filesystem_config.txt", which is located at: patchrom/device/metadata. Once you open it, it will look as follows:
Code:
Segmentation fault
system 0 0 755
system/bin/app_process_vendor 0 2000 755
system/bin/dexopt_vendor 0 2000 755
system/etc 0 0 755
system/etc/apns-conf.xml 0 0 644
system/etc/audio_effects.conf 0 0 644
system/etc/audio_policy.conf 0 0 644
system/etc/bash 0 0 755
system/etc/bash/bash_logout 0 0 644
system/etc/bash/bashrc 0 0 644
system/etc/bluetooth 0 0 755
system/etc/bluetooth/auto_pair_devlist.conf 0 0 644
system/etc/bluetooth/bt_did.conf 0 0 644
system/etc/bluetooth/bt_stack.conf 0 0 644
system/etc/calib.dat 0 0 644
system/etc/CHANGELOG-CM.txt 0 0 644
system/etc/clatd.conf 0 0 644
system/etc/dhcpcd 0 0 755
system/etc/dhcpcd/dhcpcd.conf 0 0 644
system/etc/dhcpcd/dhcpcd-hooks 0 0 755
system/etc/dhcpcd/dhcpcd-hooks/10-mtu 0 0 644
system/etc/dhcpcd/dhcpcd-hooks/20-dns.conf 0 0 644
system/etc/dhcpcd/dhcpcd-hooks/95-configured 0 0 644
system/etc/dhcpcd/dhcpcd-run-hooks 1014 2000 550
system/etc/ethertypes 0 0 644
system/etc/event-log-tags 0 0 644
system/etc/fallback_fonts.xml 0 0 644
system/etc/firmware 0 0 755
system/etc/firmware/a300_pfp.fw 0 0 644
system/etc/firmware/a300_pm4.fw 0 0 644
system/etc/firmware/modem_fw.* 0 0 755
system/etc/firmware/vidc_1080p.fw 0 0 644
system/etc/firmware/wcd9310 0 0 755
system/etc/firmware/wcd9310/wcd9310_anc.bin 1013 1005 700
system/etc/firmware/wcd9310/wcd9310_mbhc.bin 1013 1005 700
system/etc/firmware/wlan 0 0 755
system/etc/firmware/wlan/prima 0 0 755
system/etc/firmware/wlan/prima/WCNSS_cfg.dat 0 0 644
system/etc/firmware/wlan/prima/WCNSS_qcom_cfg.ini 1000 1010 600
system/etc/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin 0 0 644
system/etc/.has_su_daemon 0 0 644
system/etc/install-cm-recovery.sh 0 0 544
system/etc/NOTICE.html.gz 0 0 644
system/lib/liblbesec.so 0 0 744
system/lost+found 0 0 755
system/xbin/busybox 0 0 6755
system/xbin/insecure 0 2000 6755
system/xbin/oemfix 0 2000 6755
system/xbin/shelld 0 1000 6750
Now you've to delete some things:
Delete "Segmentation fault" line
Click to expand...
Click to collapse
Delete empty lines at the top of the file
Click to expand...
Click to collapse
After that, the file should look like this:
Code:
system 0 0 755
system/bin/app_process_vendor 0 2000 755
system/bin/dexopt_vendor 0 2000 755
system/etc 0 0 755
system/etc/apns-conf.xml 0 0 644
system/etc/audio_effects.conf 0 0 644
system/etc/audio_policy.conf 0 0 644
system/etc/bash 0 0 755
system/etc/bash/bash_logout 0 0 644
system/etc/bash/bashrc 0 0 644
system/etc/bluetooth 0 0 755
system/etc/bluetooth/auto_pair_devlist.conf 0 0 644
system/etc/bluetooth/bt_did.conf 0 0 644
system/etc/bluetooth/bt_stack.conf 0 0 644
system/etc/calib.dat 0 0 644
system/etc/CHANGELOG-CM.txt 0 0 644
system/etc/clatd.conf 0 0 644
system/etc/dhcpcd 0 0 755
system/etc/dhcpcd/dhcpcd.conf 0 0 644
system/etc/dhcpcd/dhcpcd-hooks 0 0 755
system/etc/dhcpcd/dhcpcd-hooks/10-mtu 0 0 644
system/etc/dhcpcd/dhcpcd-hooks/20-dns.conf 0 0 644
system/etc/dhcpcd/dhcpcd-hooks/95-configured 0 0 644
system/etc/dhcpcd/dhcpcd-run-hooks 1014 2000 550
system/etc/ethertypes 0 0 644
system/etc/event-log-tags 0 0 644
system/etc/fallback_fonts.xml 0 0 644
system/etc/firmware 0 0 755
system/etc/firmware/a300_pfp.fw 0 0 644
system/etc/firmware/a300_pm4.fw 0 0 644
system/etc/firmware/modem_fw.* 0 0 755
system/etc/firmware/vidc_1080p.fw 0 0 644
system/etc/firmware/wcd9310 0 0 755
system/etc/firmware/wcd9310/wcd9310_anc.bin 1013 1005 700
system/etc/firmware/wcd9310/wcd9310_mbhc.bin 1013 1005 700
system/etc/firmware/wlan 0 0 755
system/etc/firmware/wlan/prima 0 0 755
system/etc/firmware/wlan/prima/WCNSS_cfg.dat 0 0 644
system/etc/firmware/wlan/prima/WCNSS_qcom_cfg.ini 1000 1010 600
system/etc/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin 0 0 644
system/etc/.has_su_daemon 0 0 644
system/etc/install-cm-recovery.sh 0 0 544
system/etc/NOTICE.html.gz 0 0 644
system/lib/liblbesec.so 0 0 744
system/lost+found 0 0 755
system/xbin/busybox 0 0 6755
system/xbin/insecure 0 2000 6755
system/xbin/oemfix 0 2000 6755
system/xbin/shelld 0 1000 6750
Realise that there aren't empty lines, which were causing the issue.
Finally, save your changes and try to make fullota again. I'll work

I'll try tomorrow..Understood a bit of it, even if I'm reading through my smartphone
P.s. Sent u a PM, check it
Inviato dal mio LG-D405n utilizzando Tapatalk

@javieraonso very thanks for your tuto
Envoyé de mon SM-G7102 en utilisant Tapatalk

buggaty said:
@javieraonso very thanks for your tuto
Envoyé de mon SM-G7102 en utilisant Tapatalk
Click to expand...
Click to collapse
I'll be updating it with more details and examples.

JavierAlonso said:
I'll be updating it with more details and examples.
Click to expand...
Click to collapse
i have some problem
i see in reject file
and some line on smali code i cant found on original smali
example on reject have line for edited but when search this line on original i can't find it

buggaty said:
i have some problem
i see in reject file
and some line on smali code i cant found on original smali
example on reject have line for edited but when search this line on original i can't find it
Click to expand...
Click to collapse
They appear with different values. Don't look for the full line. Send me your reject and Base file, and tell me in which box are you working.
Enviado desde mi GT-S7275R mediante Tapatalk

JavierAlonso said:
They appear with different values. Don't look for the full line. Send me your reject and Base file, and tell me in which box are you working.
Enviado desde mi GT-S7275R mediante Tapatalk
Click to expand...
Click to collapse
Thanks a lot javier
Mi device galaxy grand 2 g7102
Here the framework and reject
http://www.mediafire.com/?4qi9xmvil1kv6vm
Envoyé de mon SM-G7102 en utilisant Tapatalk

Thanks a lot javier
Mi device galaxy grand 2 g7102
Here the framework and reject
http://www.mediafire.com/?4qi9xmvil1kv6vm
Envoyé de mon SM-G7102 en utilisant Tapatalk
Click to expand...
Click to collapse
You've send me every smali and reject...Tell me which file are you trying to patch.

JavierAlonso said:
You've send me every smali and reject...Tell me which file are you trying to patch.
Click to expand...
Click to collapse
pls can you patch them
i d'ont have experience on smali
im traying but not success
im try patching all these framework manually
these i have send you

buggaty said:
pls can you patch them
i d'ont have experience on smali
im traying but not success
im try patching all these framework manually
these i have send you
Click to expand...
Click to collapse
I'm not here to patch files from everyone. [emoji16] I'm not going to do your work.
I'm here to teach and explain the procedure. Sometimes if you find any difficult reject, I could help you, so we learn together.
Enviado desde mi GT-S7275R mediante Tapatalk

@JavierAlonso
hey
i found this line on temp/reject/android.policy.jar.out/smali/com/android/internal/policy/phonewindowmanajer.smali.rej
this line for editing but on original smali is not found this line wath can do?
and i found mani other line for rditing in reject and when i serach on original is not found
*** 11952,11957 ****
if-eqz v12, :cond_19
invoke-interface {v11}, Lcom/android/internal/telephony/ITelephony;->endCall()Z
:try_end_5
.catch Landroid/os/RemoteException; {:try_start_5 .. :try_end_5} :catch_2
Click to expand...
Click to collapse

buggaty said:
@JavierAlonso
hey
i found this line on temp/reject/android.policy.jar.out/smali/com/android/internal/policy/phonewindowmanajer.smali.rej
this line for editing but on original smali is not found this line wath can do?
and i found mani other line for rditing in reject and when i serach on original is not found
Click to expand...
Click to collapse
Don't look for these lines exactly. For example, look for the last part of the second line.
However, send me the Base file and reject one.
Enviado desde mi GT-S7275R mediante Tapatalk

JavierAlonso said:
Don't look for these lines exactly. For example, look for the last part of the second line.
However, send me the Base file and reject one.
Enviado desde mi GT-S7275R mediante Tapatalk
Click to expand...
Click to collapse
the smali

buggaty said:
the smali
Click to expand...
Click to collapse
I think this is the right place to edit:
Code:
if-eqz v19, :cond_11
.line 4715
:try_start_1
invoke-interface/range {v19 .. v19}, Lcom/android/internal/telephony/ITelephony;->endCall()Z
:try_end_1
.catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_1} :catch_1
Realise that "if-eqz" is calling "cond_11", so the addition must be:
if-eqz p3, :cond_11
Click to expand...
Click to collapse
In instead of:
if-eqz p3, :cond_19
Click to expand...
Click to collapse
Pay a lot attention to that types of additions; look for what's the smali calling. After editing, it should look in this way:
Code:
.line 4713
.local v9, "hungUp":Z
if-eqz v19, :cond_11
if-eqz p3, :cond_11
.line 4715
:try_start_1
invoke-interface/range {v19 .. v19}, Lcom/android/internal/telephony/ITelephony;->endCall()Z
:try_end_1
.catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_1} :catch_1
Also realise that there's the same source input some lines below:
Code:
if-eqz v20, :cond_29
if-eqz p3, :cond_29
.line 4924
invoke-interface/range {v19 .. v19}, Lcom/android/internal/telephony/ITelephony;->endCall()Z
:try_end_6
.catch Landroid/os/RemoteException; {:try_start_6 .. :try_end_6} :catch_3
Look that it's already patched with " if-eqz p3, :cond_29" with "cond_29" in both "if-eqz" lines.
Hope you've understood me :victory:
Press thanks if I help you
Click to expand...
Click to collapse

JavierAlonso said:
I think this is the right place to edit:
Code:
if-eqz v19, :cond_11
.line 4715
:try_start_1
invoke-interface/range {v19 .. v19}, Lcom/android/internal/telephony/ITelephony;->endCall()Z
:try_end_1
.catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_1} :catch_1
Realise that "if-eqz" is calling "cond_11", so the addition must be:
In instead of:
Pay a lot attention to that types of additions; look for what's the smali calling. After editing, it should look in this way:
Code:
.line 4713
.local v9, "hungUp":Z
if-eqz v19, :cond_11
if-eqz p3, :cond_11
.line 4715
:try_start_1
invoke-interface/range {v19 .. v19}, Lcom/android/internal/telephony/ITelephony;->endCall()Z
:try_end_1
.catch Landroid/os/RemoteException; {:try_start_1 .. :try_end_1} :catch_1
Also realise that there's the same source input some lines below:
Code:
if-eqz v20, :cond_29
if-eqz p3, :cond_29
.line 4924
invoke-interface/range {v19 .. v19}, Lcom/android/internal/telephony/ITelephony;->endCall()Z
:try_end_6
.catch Landroid/os/RemoteException; {:try_start_6 .. :try_end_6} :catch_3
Look that it's already patched with " if-eqz p3, :cond_29" with "cond_29" in both "if-eqz" lines.
Hope you've understood me :victory:
Click to expand...
Click to collapse
thanks a lot
I begin to understand a can
I begin to understand a can

@JavierAlonso hello bro
i have prob now
sim card not detected i think the prob on telephonny-commen.jar
wath smali caused this issue?

Related

[GUIDE] Mod Skype 4.x to call invisible contacts

GUIDE IS ON POST #2
Hi folks!
In Skype 4.x it is impossible to call invisible contacts, and I was hoping you would lend me a hand to change things around!
Here's what I got so far:
I assume that the app is checking if the contact is available, if not it returns an error message
The displayed error message is "No answer"
In \res\values\strings.xml the string "No answer" has 2 matches:
Code:
<string name="message_call_duration_no_answer">no answer</string>
and
<string name="message_call_failed_no_answer">No answer</string>
I assume we're looking for the latter
Apart from public.xml and many localized string.xml the string "message_call_failed_no_answer" can only be found in two R$string.smali (in \smali\com\skype\raider and \smali\com\skype\android\app) wich I assume being identical for our purposes
Code:
.class public final Lcom/skype/android/app/R$string;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/skype/android/app/R;
.end annotation
Code:
.class public final Lcom/skype/raider/R$string;
.super Ljava/lang/Object;
.source "R.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/skype/raider/R;
.end annotation
From this line on the files are identical
In both the files the string "message_call_failed_no_answer" has only 1 match:
Code:
.field public static final message_call_failed_no_answer:I = 0x7f070261
If we look for the string "0x7f070261", we find it in 4 files: public.xml, the two almost identical R$string.smali, and smali\com\skype\android\app\calling\PreCallActivity.smali
In PreCallActivity.smali the string "0x7f070261" has only 1 match:
Code:
.method private endCallWithReason(Lcom/skype/SkyLib$LEAVE_REASON;)V
[blablabla]
.line 642
:pswitch_6
const v0, 0x7f070261
invoke-virtual {p0, v0}, Lcom/skype/android/app/calling/PreCallActivity;->getString(I)Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lcom/skype/android/app/calling/PreCallActivity;->endCallWithMessage(Ljava/lang/String;)V
goto :goto_0
...but... my coding skills are equal to ZERO, so I have no clue how to proceed from here
I tried to look into Skype 3.2 but PreCallActivity.smali doesn't exist: nor in smali\com\skype\android\app (infact in smali\com\skype\android\ there is no app subdir to be found at all...), nor anywhere else.
A little help please?
Thank you for your time
f:fingers-crossed:
Edit: Now that I think of it, I will try to just delete from .line 642 to goto_0 and recompile... I'm not so hopeful but hey! :fingers-crossed:
Edit: I Recompiled the apk deleting only
Code:
invoke-virtual {p0, v0}, Lcom/skype/android/app/calling/PreCallActivity;->getString(I)Ljava/lang/String;
move-result-object v0
invoke-direct {p0, v0}, Lcom/skype/android/app/calling/PreCallActivity;->endCallWithMessage(Ljava/lang/String;)V
, copied META-INF folder and AndroidManifest.xml over from the original apk to the newly compiled one, checked zipalignment zipaligned it, signed it and... GREAT SUCCESS! I've managed to insall and use the app... now I'll wait for my invisible friends to "show up"
GUIDE
Alrighty Folks!
Well... IT WORKS
So, to sum it up, if you want to do it yourself:
Decompile the Skype apk
Open \smali\com\skype\android\app\PreCallActivity.smali in Notepad++ (or your editor of choice)
Find 0x7f070261
Edit the file to look something like this
HTML:
const v0, 0x7f070261
#
# invoke-virtual {p0, v0}, Lcom/skype/android/app/calling/PreCallActivity;->getString(I)Ljava/lang/String;
#
# move-result-object v0
#
# invoke-direct {p0, v0}, Lcom/skype/android/app/calling/PreCallActivity;->endCallWithMessage(Ljava/lang/String;)V
#
goto :goto_0
(I commented the pesky lines but I guess deleting them would be ok too)
Recompile
Open your new apk and copy META-INF folder and manifest.xml from the original apk
Sign the new apk
Zipalign the signed apk
Install as a regular apk
CREDITS:
KUDOS TO @ibanez7 FOR HIS EXCELLENT GUIDE ABOUT DECOMPILING/RECOMPILING APKs :good::good::good: (Recommended if you have doubts about any of the above steps)
KUDOS TO @Flextrick FOR HIS AWESOME ANDROID MULTITOOL :good::good::good:
Make sure you thank them if you found this guide useful
Enjoy
f

Samsung Galaxy Note 4 Phone Mods Thread-Guides & Links Updated 12/3/2014

Howdy I have been compiling a list mods for the Verizon Note 4, but most should work across all variants!!
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This thread is posted in the Samsung Galaxy Note 4 Unified Development Thread and can be viewed across all Note 4 Variants.
This is and will always be a work in progress, so feel free to contribute and please do!!!!
This thread assumes you know how to decompile and compile using APKTOOL.
Enjoy!!!
[Guide How-to] Verizon Note 4 Remove CD Installer & ASEC Note 4
This removes the annoying CD installer that pops up when you plug into your computer and your phone will go straight to MTP.
Enjoy!!
Remove CD Installer Download: http://d-h.st/Wm7
Just flash with TWRP
[Guide How-to] Verizon Note 4 Enable Native Call Recording Note 4
Smali edit for InCallUI.apk:
com/android/services/telephony/common/PhoneFeature.smali
Add the lines that are highlighted in RED
Code:
const-string v3, "CscFeature_VoiceCall_ConfigRecording"
invoke-virtual {v0, v3}, Lcom/sec/android/app/CscFeature;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
[COLOR="Red"]const-string v0, "RecordingAllowed"[/COLOR]
.line 1693
sget-object v3, Lcom/android/services/telephony/common/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
const-string v6, "voice_call_recording"
const-string v7, "RecordingAllowed"
const-string v3, "CscFeature_VoiceCall_ConfigRecording"
invoke-virtual {v0, v3}, Lcom/sec/android/app/CscFeature;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v0, "RecordingAllowed"
.line 1693
sget-object v3, Lcom/android/services/telephony/common/PhoneFeature;->mFeatureList:Ljava/util/HashMap;
const-string v6, "voice_call_recording"
const-string v7, "RecordingAllowed"
For those not capable of doing smali edits just flash this via TWRP. Enable Call Recording
[Guide How-to] Remove Lockscreen Carrier Note 4
This removes the lockscreen carrier text.
Keyguard.apk smali edit:
smali/com/android/keyguard/CarrierText.smali:
Change if-nez to if-eqz in the indicated edit in BLUE:
Code:
.method private static concatenate(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
.locals 5
.param p0, "plmn" # Ljava/lang/CharSequence;
.param p1, "spn" # Ljava/lang/CharSequence;
.prologue
const/4 v2, 0x1
const/4 v3, 0x0
.line 310
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
[COLOR="Blue"]if-eqz[/COLOR] v4, :cond_1
move v0, v2
For those of you not capable of smali edit's, just flash this via TWRP Remove Lock Screen Carrier Text
[Guide How-to] Remove Safe Volume Warning Note 4
This removes the safe volume warning that pops up when you turn up the volume beyond a certain point
This mod requires modifying framework.jar
Edit smali/android/media/AudioService.smali:
Changes are in .method private checkSafeMediaVolume(III)Z
, new lines are in BLUE:
Code:
iget-object v6, p0, Landroid/media/AudioService;->mSafeMediaVolumeState:Ljava/lang/Integer;
invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
move-result v6
[COLOR="Blue"]goto :goto_td[/COLOR]
if-ne v6, v7, :cond_4
Code:
goto :goto_1
.line 6873
.end local v0 # "e":Ljava/lang/Exception;
.end local v1 # "pm":Landroid/os/PowerManager;
.end local v3 # "wl":Landroid/os/PowerManager$WakeLock;
[COLOR="Blue"]:goto_td[/COLOR]
:cond_4
monitor-exit v5
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
goto :goto_0
.end method
For those not capable of smali edit's just flash this in TWRP Remove Safe Volume Warning
[Guide How-To] Enable Call & MSG Blocking Note 4
This enables call and msg blocking natively.
Simple CSC edit.
system/csc/feature.xml edit
Must be inserted BEFORE
</FeatureSet>
</SamsungMobileFeature>
(** please note that feature.xml can be overwritten so this may not stick if using a third party software like Xposed)
Code:
<CscFeature_Setting_EnableMenuBlockCallMsg>TRUE</CscFeature_Setting_EnableMenuBlockCallMsg>
For those of you not capable of this edit, just flash this with TWRP Native Call & Message Block
[Guide How-to] Replace Recents with Menu Note 4
Keylayout edits:
system/usr/keylayout/Generic.kl
Change key 254 from APP_SWITCH to MENU
key 254 MENU
Download: Generic.kl
Now Recent Apps capacitive key is Menu (single-press) and Search (long-press).
However, we have now lost access to recent apps via a hardware key.
[Guide How-to] VZW Note 4 4 Way Reboot Power Menu EPM Note 4
This will work with Odex or Deodexed Rom. To see the 4 way Menu you must hit restart on the Primary Menu!!!
First grab your Deodexed android.policy.jar from system/framework
Decompile it with APKTOOL. Look in smali\com\android\internal\policy\impl\
Find GlobalActions$SinglePressAction.smali and open with NotePad++
Look for this:
Code:
.class abstract Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.super Ljava/lang/Object;
.source "GlobalActions.java"
# interfaces
.implements Lcom/android/internal/policy/impl/GlobalActions$Action;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/android/internal/policy/impl/GlobalActions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x40a
name = "SinglePressAction"
.end annotation
# instance fields
.field public customAction:I
.field public isKnoxCustom:Z
.field private final mIcon:Landroid/graphics/drawable/Drawable;
.field private final mIconResId:I
.field mLayoutId:I
.field private final mMessage:Ljava/lang/CharSequence;
.field private final mMessageResId:I
# direct methods
.method protected constructor <init>(II)V
.locals 2
.param p1, "iconResId" # I
.param p2, "messageResId" # I
Add in the Red Text to look like this:
Code:
.class abstract Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.super Ljava/lang/Object;
.source "GlobalActions.java"
# interfaces
.implements Lcom/android/internal/policy/impl/GlobalActions$Action;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/android/internal/policy/impl/GlobalActions;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x40a
name = "SinglePressAction"
.end annotation
[COLOR="Red"]# static fields
.field protected static rebootMode:I
.field protected static final rebootOptions:[Ljava/lang/String;[/COLOR]
# instance fields
.field public customAction:I
.field public isKnoxCustom:Z
.field private final mIcon:Landroid/graphics/drawable/Drawable;
.field private final mIconResId:I
.field mLayoutId:I
.field private final mMessage:Ljava/lang/CharSequence;
.field private final mMessageResId:I
# direct methods
[COLOR="Red"].method static constructor <clinit>()V
.locals 3
const/4 v0, 0x4
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "Reboot"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "Hot Boot"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "Download"
aput-object v2, v0, v1
const/4 v1, 0x3
const-string v2, "Recovery"
aput-object v2, v0, v1
sput-object v0, Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
return-void
.end method[/COLOR]
.method protected constructor <init>(II)V
.locals 2
.param p1, "iconResId" # I
.param p2, "messageResId" # I
Save file and look for GlobalActions.smali in the same folder.
Find this:
Code:
invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$7;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
move-object/from16 v0, p0
iput-object v2, v0, Lcom/android/internal/policy/impl/GlobalActions;->mPowerOff:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.line 1126
new-instance v3, Lcom/android/internal/policy/impl/GlobalActions$8;
const-string v2, "VZW"
sget-object v4, Lcom/android/internal/policy/impl/GlobalActions;->mSalesCode:Ljava/lang/String;
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_3
const v2, 0x1080b2d
:goto_2
const v4, 0x10401cf
move-object/from16 v0, p0
invoke-direct {v3, v0, v2, v4}, Lcom/android/internal/policy/impl/GlobalActions$8;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
move-object/from16 v0, p0
iput-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.line 1164
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$9;
Change the red text to look like this:
Code:
invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$7;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
move-object/from16 v0, p0
iput-object v2, v0, Lcom/android/internal/policy/impl/GlobalActions;->mPowerOff:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.line 1126
new-instance v3, Lcom/android/internal/policy/impl/GlobalActions$[COLOR="Red"]99[/COLOR];
const-string v2, "VZW"
sget-object v4, Lcom/android/internal/policy/impl/GlobalActions;->mSalesCode:Ljava/lang/String;
invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_3
const v2, 0x1080b2d
:goto_2
const v4, 0x10401cf
move-object/from16 v0, p0
invoke-direct {v3, v0, v2, v4}, Lcom/android/internal/policy/impl/GlobalActions$[COLOR="Red"]99[/COLOR];-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
move-object/from16 v0, p0
iput-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.line 1164
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$9;
Save file.
Add the 3 smali files in this zip to the same folder: Smali-Files-Zip
Now recompile. That's it.
For those of you not able to edit smali. Here is a zip flashable with TWRP. VZW Note 4 4 Way EPM Menu
To see the 4 way Menu you must hit restart on the Primary Menu!!!
Enjoy!!!
Framework Mods- Note 4 Native WiFi Tether, All Rotations, Safe Media Volume Disabled, Dreams enabled, Battery Critical Warnings lowered to 1%.
Here is the download: Framework Mods
Here is the download to return to stock: Stock Framework
Enjoy!!!
[Guide How-to] Remove NFC notification icon in status bar Note 4
First grab your Features.xml from /system/csc/
Open with Notepad++ and look for following text:
Code:
<!-- NFC -->
<CscFeature_NFC_SetSecureEventType>ISIS</CscFeature_NFC_SetSecureEventType>
<CscFeature_NFC_StatusBarIconType>Vzw</CscFeature_NFC_StatusBarIconType>
<CscFeature_SmartcardSvc_SetAccessControlType>GPAC, MODE1</CscFeature_SmartcardSvc_SetAccessControlType>
<CscFeature_SmartcardSvc_HideTerminalCapability>eSE</CscFeature_SmartcardSvc_HideTerminalCapability>
<CscFeature_NFC_CardModeRoutingTypeForUicc>ROUTE_ON_WHEN_SCREEN_UNLOCK</CscFeature_NFC_CardModeRoutingTypeForUicc>
<CscFeature_NFC_EnableSecurityPromptPopup>all</CscFeature_NFC_EnableSecurityPromptPopup>
<CscFeature_NFC_EnableInvalidTagPopup>true</CscFeature_NFC_EnableInvalidTagPopup>
<CscFeature_NFC_ConfigAdvancedSettings>Disable</CscFeature_NFC_ConfigAdvancedSettings>
<CscFeature_NFC_DefaultCardModeConfig>DH:UICC</CscFeature_NFC_DefaultCardModeConfig>
Change the red text to look like this:
Code:
<!-- NFC -->
<CscFeature_NFC_SetSecureEventType>ISIS</CscFeature_NFC_SetSecureEventType>
<CscFeature_NFC_StatusBarIconType>[COLOR="Red"]none[/COLOR]</CscFeature_NFC_StatusBarIconType>
<CscFeature_SmartcardSvc_SetAccessControlType>GPAC, MODE1</CscFeature_SmartcardSvc_SetAccessControlType>
<CscFeature_SmartcardSvc_HideTerminalCapability>eSE</CscFeature_SmartcardSvc_HideTerminalCapability>
<CscFeature_NFC_CardModeRoutingTypeForUicc>ROUTE_ON_WHEN_SCREEN_UNLOCK</CscFeature_NFC_CardModeRoutingTypeForUicc>
<CscFeature_NFC_EnableSecurityPromptPopup>all</CscFeature_NFC_EnableSecurityPromptPopup>
<CscFeature_NFC_EnableInvalidTagPopup>true</CscFeature_NFC_EnableInvalidTagPopup>
<CscFeature_NFC_ConfigAdvancedSettings>Disable</CscFeature_NFC_ConfigAdvancedSettings>
<CscFeature_NFC_DefaultCardModeConfig>DH:UICC</CscFeature_NFC_DefaultCardModeConfig>
Save file and copy back to /system/csc, reboot and boom its gone!!!
Enjoy!!
[Guide How-to] Enable Private Mode with a deodexed Rom and SecureStorage=false Note 4
First thing you need to do is grab PersonalPageService.apk from system/priv-app
Decompile with APKTOOL
Find PersonalPageService\smali\com\samsung\android\personalpage\service\util\SecureProperties.smali open with Notepad++
Find the follow code:
Code:
.method public constructor <init>(Landroid/content/Context;)V
.locals 2
.param p1, "context" # Landroid/content/Context;
.prologue
const/4 v1, 0x1
.line 61
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 54
const/4 v0, 0x0
iput-object v0, p0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->mImpl:Lcom/samsung/android/personalpage/service/util/SecureProperties$PropertiesImpl;
.line 63
invoke-static {}, Landroid/os/Debug;->isProductShip()I
move-result v0
if-nez v0, :cond_3
.line 64
invoke-static {}, Lcom/sec/android/securestorage/SecureStorage;->isSupported()Z
move-result v0
if-nez v0, :cond_2
.line 65
const/4 v0, 0x0
sput-boolean v0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->SUPPORT_SECURE_STORAGE_FEATURE:Z
.line 72
:goto_0
sget-boolean v0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->SUPPORT_SECURE_STORAGE_FEATURE:Z
if-eqz v0, :cond_0
Replace the items in Red like this:
Code:
.method public constructor <init>(Landroid/content/Context;)V
.locals 2
.param p1, "context" # Landroid/content/Context;
.prologue
const/4 v1, 0x1
.line 61
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 54
const/4 v0, 0x0
iput-object v0, p0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->mImpl:Lcom/samsung/android/personalpage/service/util/SecureProperties$PropertiesImpl;
.line 63
invoke-static {}, Landroid/os/Debug;->isProductShip()I
move-result v0
[COLOR="Red"]if-nez v0, :cond_0[/COLOR]
.line 64
invoke-static {}, Lcom/sec/android/securestorage/SecureStorage;->isSupported()Z
move-result v0
[COLOR="Red"]if-nez v0, :cond_0[/COLOR]
.line 65
const/4 v0, 0x0
sput-boolean v0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->SUPPORT_SECURE_STORAGE_FEATURE:Z
.line 72
:goto_0
sget-boolean v0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->SUPPORT_SECURE_STORAGE_FEATURE:Z
if-eqz v0, :cond_0
Save file and compile apk. Push to system/priv-app
For those not capable of changing smali files here is a flashable zip: PersonalPageService.apk
Enjoy!!!
[Guide How-To] Enable Lockscreen Rotation Note 4
First grab Keyguard.apk from system/priv-app
Decompile with APKTOOL.
Open smali file smali/com/android/keyguard/KeyguardViewManager.smali
Look for the following:
Code:
.method private shouldEnableScreenRotation()Z
.locals 3
.prologue
const/4 v1, 0x0
.line 249
iget-object v2, p0, Lcom/android/keyguard/KeyguardViewManager;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
.line 250
.local v0, "res":Landroid/content/res/Resources;
const-string v2, "lockscreen.rot_override"
invoke-static {v2, v1}, Landroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z
move-result v2
Replace the Red text to look like this:
Code:
Code:
.method private shouldEnableScreenRotation()Z
.locals 3
.prologue
[COLOR="Red"]const/4 v1, 0x1[/COLOR]
.line 249
iget-object v2, p0, Lcom/android/keyguard/KeyguardViewManager;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
.line 250
.local v0, "res":Landroid/content/res/Resources;
const-string v2, "lockscreen.rot_override"
invoke-static {v2, v1}, Landroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z
move-result v2
Compile and push to system/priv-app
For those that are unable to edit smali here is a flashable zip: LockSceen Rotation
Enjoy!!
[Guide How-to] Disable Screen Wake Plugged/Unplugged Note 4
First grab your services.jar from system/framework and decompile with APKTOOL
Find smali\com\android\server\power\PowerManagerService .smali and open PowerManagerService with Notepad++
Look for the following:
Code:
.method private shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
.locals 4
.param p1, "wasPowered" # Z
.param p2, "oldPlugType" # I
.param p3, "dockedOnWirelessCharger" # Z
.prologue
const/4 v1, 0x1
const/4 v0, 0x0
.line 2216
iget-boolean v2, p0, Lcom/android/server/power/PowerManagerService;->mWakeUpWhenPluggedOrUnpluggedConfig:Z
if-nez v2, :cond_1
Change to Red text to look like this:
Code:
.method private shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
.locals 4
.param p1, "wasPowered" # Z
.param p2, "oldPlugType" # I
.param p3, "dockedOnWirelessCharger" # Z
.prologue
[COLOR="Red"]const/4 v1, 0x0[/COLOR]
const/4 v0, 0x0
.line 2216
iget-boolean v2, p0, Lcom/android/server/power/PowerManagerService;->mWakeUpWhenPluggedOrUnpluggedConfig:Z
if-nez v2, :cond_1
That's it. Compile and push to system/framework
For those of you not capable of editing smali files here is a flashable zip: Disable Screen Wake Plug/unpluged
Enjoy!!!
[Guide How-to] Bluetooth Scan Dialog Removal
First grab your SecSettings.apk from system/priv-app and decompile with APKTOOL
Find smali/com/android/settings/Bluetooth/BluetoothScanDialog.smali
Look for the follow in .method private initialize()V method:
Code:
.line 79
new-instance v4, Lcom/android/settings/bluetooth/BluetoothScanDialog$3;
invoke-direct {v4, p0, v0}, Lcom/android/settings/bluetooth/BluetoothScanDialog$3;-><init>(Lcom/android/settings/bluetooth/BluetoothScanDialog;Landroid/app/AlertDialog;)V
invoke-virtual {v0, v4}, Landroid/app/Dialog;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V
.line 86
[COLOR="Red"]invoke-virtual {v0}, Landroid/app/Dialog;->show()V[/COLOR]
.line 87
return-void
.end method
Delete the text in Red, save file and compile. That's it. push to system/priv-app
Enjoy!!!
Flashlight Toggle & Battery Stats Toggle Mod Flashable-Settings-About Phone-Status-OFFICIAL Zip Updated 12-3-2014
Here is the flashable Flashlight Toggle Mod: VZW Flash Light Battery Stats Toggle Mod-Official Status
YOU MUST WAIT AT LEAST 5-10 MINS AFTER FLASHING FOR THE MOD TO WORK.
Some of you might also have to add "Flashlight" to your settings DB via SQLite. To see the toggle.
1) Download sqlite editor app. I got it from here.
2) Open the app and give it root permissions. It should populate a list.
3) Scroll and Tap the "Settings Storage"
4) Tap "Settings.db"
5) Tap "System"
6) Scroll down until you find "notification_panel_active_app_list", tap to highlight it. I noticed its a little hard to get it highlighted because it seems to want to highlight the one under it. So you might have to tap the one right above it to get it highlighted. Make sure its the notification_panel_active_app_list, and I also updated my notification_panel_active_app_list_reset NOT the notification_panel_default_active_app_list. I picked the wrong one the first time and it didnt work.
7) Once it is highlighted tap the phones menu button.
8) Tap "Edit Record"
9) You'll see a list of all the toggles that are currently enabled to show in notification area.
10) At the bottom of the list or anywhere else in the list add ; and the words Flashlight and Battery then another ;. So it will look like this at the end. ;TouchSensitivity;Flashlight;Battery; Then press Save.
11) Reboot and you should have a Flashlight and a Battery Stats toggle now. You can now use the edit feature and move it anywhere you want in the list of toggles.
This might also have a positive side effect of the following:
When you go to Settings-About Phone-Status it might say OFFICIAL!!!
Enjoy!!!
Enable Tab view in Settings
First grab your SecSettings.apk from system/priv-app
Decompile with APKTOOL and open res.values/bools with Notepad++
look for the following 2 lines:
Code:
<bool name="settings_list">false</bool>
<bool name="settings_grid">true</bool>
Change them to look like this:
Code:
<bool name="settings_list">[COLOR="Red"]true[/COLOR]</bool>
<bool name="settings_grid">[COLOR="Red"]false[/COLOR]</bool>
That's it. Compile and push to System/priv-app
Enjoy!!
How to enable Flashlight operation with Volume
First grab your SecSettings.apk from system/priv-app and decompile with APKTOOL.
Look in res/xml for display_settings_2014.xml and open with Notepad++
Add the following line in Red. When you are done look in settings-Display and you will see Torch Light options menu
Code:
<CheckBoxPreference android:title="@string/led_indicator_settings" android:key="key_simple_led_indicator_settings" android:summary="@string/led_indicator_settings_summary" android:widgetLayout="@touchwiz:layout/preference_widget_twcheckbox" />
[COLOR="Red"]<PreferenceScreen android:title="@string/torchlight_settings" android:key="torchlight" android:fragment="com.android.settings.torchlight.TorchlightSettings" />[/COLOR]
<ListPreference android:persistent="false" android:entries="@array/touch_key_light_entries" android:title="@string/touch_key_light" android:key="touch_key_light" android:summary="@string/touch_key_light_summary" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/touch_key_light_values" />
Compile and push to system/priv-app
That's it.
Enjoy!!!!
How to Enable add Apps Ops to Settings.
First grab SecSettings.apk from system/priv-app and decompile with APKTOOL
Get gridlist_settings_headers.xml from res/xml and edit with Notepad++
Look for:
Code:
<header android:icon="@drawable/ic_setting_grid_powersaving" android:id="@id/power_saving" android:title="@string/power_saving_mode_title_k" android:fragment="com.android.settings.powersavingmode.MenuPowerSavingModeSettings" />
and add right below it the following:
Code:
<header android:icon="@drawable/ic_settings_applicationpermissions" android:title="@string/app_ops_settings" android:fragment="com.android.settings.applications.AppOpsSummary" />
Save file and compile. That's it.
Push to system/priv-app
Enjoy!!!
Great post...
Will the Wi-Fi tether mod work with the ATT Variant?
thesilentnight said:
Great post...
Will the Wi-Fi tether mod work with the ATT Variant?
Click to expand...
Click to collapse
I have not seen the AT&T firmware. You must be rooted. If you are rooted and want to send me your framework-res.apk I can take a look for you.
Sadly as far as i know, root isnt yet available yet for the ATT variant....
thesilentnight said:
Sadly as far as i know, root isnt yet available yet for the ATT variant....
Click to expand...
Click to collapse
OMG, I'm sooo glad I could write what's written in my signature.
EMSpilot said:
...Here is the flashable Flashlight Toggle Mod...
Click to expand...
Click to collapse
You sir, ROCK!!! Very good work
the "Verizon Note 4 Enable Native Call Recording Note 4"
Will this work on N910G snapdragon variant ? also, does this enable automatic call recording ?
pratik_193 said:
the "Verizon Note 4 Enable Native Call Recording Note 4"
Will this work on N910G snapdragon variant ? also, does this enable automatic call recording ?
Click to expand...
Click to collapse
If you can send me your InCallUI.apk I can take a look. No automatic call recording. When you get a call or make a call you simply tap the call recording button once on the screen.
EMSpilot said:
If you can send me your InCallUI.apk I can take a look. No automatic call recording. When you get a call or make a call you simply tap the call recording button once on the screen.
Click to expand...
Click to collapse
Here it is..
Can you make a modded secphone something we had for note 3 ? link below
http://forum.xda-developers.com/showthread.php?t=2498449
CZ Eddie said:
OMG, I'm sooo glad I could write what's written in my signature.
Click to expand...
Click to collapse
Why is that?
thesilentnight said:
Sadly as far as i know, root isnt yet available yet for the ATT variant....
Click to expand...
Click to collapse
CZ Eddie said:
OMG, I'm sooo glad I could write what's written in my signature.
Click to expand...
Click to collapse
thesilentnight said:
Why is that?
Click to expand...
Click to collapse
My sig is pretty self explanatory in regards to your earlier statement.
I ditched my grandfathered unlimited data plan with AT&T in November 2014 because AT&T won't let anyone root their Galaxy phones.
Hello, T-Mobile!
Click to expand...
Click to collapse
pratik_193 said:
Here it is..
Can you make a modded secphone something we had for note 3 ? link below
http://forum.xda-developers.com/showthread.php?t=2498449
Click to expand...
Click to collapse
Hey @EMSpilot any luck ?
pratik_193 said:
Hey @EMSpilot any luck ?
Click to expand...
Click to collapse
Where did this InCallUI.apk come from? It won't build.
EMSpilot said:
Where did this InCallUI.apk come from? It won't build.
Click to expand...
Click to collapse
i got it from the current ROM i have a N910G snapdragon... you need anything else ?
Hmm, get a whole bunch of errors when trying to decompile SecSettings.apk. I can decompile other apks fine so don't think it's something with my setup.
Code:
W: Skipping "android" package group
W: Could not decode attr value, using undecoded value instead: ns=android, name=widgetLayout, value=0x02030015
Can't find framework resources for package of id: 2. You must install proper framework files, see project website for more info
Great post op!!
Did by any chance someone tried this in an international N4?
Awesome thread!
Subscribed!
Thanks contributors!
@EMSpilot
when i try to add the torchlight mod it makes all the checkboxes in the settings menu disappear.
any idea what the problem could be? the mod itself works perfect, but the checkboxes are pretty usefull as well.
thanks in advance :good:
Psycho_666 said:
@EMSpilot
when i try to add the torchlight mod it makes all the checkboxes in the settings menu disappear.
any idea what the problem could be? the mod itself works perfect, but the checkboxes are pretty usefull as well.
thanks in advance :good:
Click to expand...
Click to collapse
What Rom are you running? NJ5? or? The mods are based on NI2. If you are running NJ5 you have to decompile do the mod compile and push back to the phone.
I'm running an ANK5 rom.
but I don't understand how it has anything to do with the checkboxes.
it's pretty frustrating
Sent from my Note 4

[Q&A] Moving/Deleting Lidroid Toggles (Via Smalis)

Q&A for Moving/Deleting Lidroid Toggles (Via Smalis)
Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.
Before posting, please use the forum search and read through the discussion thread for Moving/Deleting Lidroid Toggles (Via Smalis). If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.
Thanks for understanding and for helping to keep XDA neat and tidy!
aryan_ar said:
So, Many Of You Have Added Lidroid Grid Toggles, In Your SystemUI, Or Many May Not
Today I 'm Here You To Show How To Move/Delete Any Lidroid Specific Toggle(s)
Guide Is Presented In Two Parts:
1. Moving Toggle(s).
2. Deleting Toggle(s).
PART 1: Moving Toggles
Decompile Your SystemUI.
Goto smali/com/lidroid/systemui/quickpanel.
Open PowerWidget.smali.
Let Us Suppose, We Are Deleting Sync Toggle.
Search "sync" in PowerWidet.smali.
You will Get 2 Result: (Do This In Both)
Code:
# static fields
.field private static final BUTTONS_DEFAULT:Ljava/lang/String; = "toggleWifi|toggleBluetooth|toggleMobileData|toggleSound|toggleFlashlight|toggleScreenTimeout|toggleAutoRotate|toggleAirplane[COLOR="Red"]|toggleSync[/COLOR]"
Code:
.line 169
const-string v4, "toggleWifi|toggleBluetooth|toggleMobileData|toggleSound|toggleFlashlight|toggleScreenTimeout|toggleAutoRotate|toggleAirplane[COLOR="Red"]|toggleSync[/COLOR]"
"put the code |togglesync in between any other toggle, where u want to put"
Code:
# static fields
.field private static final BUTTONS_DEFAULT:Ljava/lang/String; = "toggleWifi|toggleBluetooth|toggleMobileData|toggleSound|toggleFlashlight|toggleScreenTimeout|toggleAutoRotate[COLOR="Red"]|toggleSync[/COLOR]|toggleAirplane"
Code:
.line 169
const-string v4, "toggleWifi|toggleBluetooth|toggleMobileData|toggleSound|toggleFlashlight|toggleScreenTimeout|toggleAutoRotate[COLOR="Red"]|toggleSync[/COLOR]|toggleAirplane"
save it, close it
Compile SystemUI
Then paste it to System/apps
Reboot The Device
PART 2: Deleting Toggles
If You Want To Delete Toggle, (Let Us Try Deleting "Bluetooth" ), Open PowerWidget.smali
Delete The Red Code
Code:
# static fields
.field private static final BUTTONS_DEFAULT:Ljava/lang/String; = "toggleWifi[COLOR="Red"]|toggleBluetooth[/COLOR]|toggleMobileData|toggleSound|toggleFlashlight|toggleScreenTimeout|toggleSync|toggleAutoRotate|toggleAirplane"
It Will Look Like This Now:
Code:
# static fields
.field private static final BUTTONS_DEFAULT:Ljava/lang/String; = "toggleWifi|toggleMobileData|toggleSound|toggleFlashlight|toggleScreenTimeout|toggleSync|toggleAutoRotate|toggleAirplane"
Do The Same Here Too:
Code:
.line 169
const-string v4, "toggleWifi[COLOR="Red"]|toggleBluetooth[/COLOR]|toggleMobileData|toggleSound|toggleFlashlight|toggleScreenTimeout|toggleAutoRotate|toggleSync|toggleAirplane"
It Will Look Like This:
Code:
.line 169
const-string v4, "toggleWifi|toggleMobileData|toggleSound|toggleFlashlight|toggleScreenTimeout|toggleAutoRotate|toggleSync|toggleAirplane"
Save and Close It.
Open PowerButton.smali
Search "bluetooth"
Now Delete The Red Code:
Code:
.field public static final BUTTON_AUTOROTATE:Ljava/lang/String; = "toggleAutoRotate"
[COLOR="Red"].field public static final BUTTON_BLUETOOTH:Ljava/lang/String; = "toggleBluetooth"[/COLOR]
.field public static final BUTTON_FLASHLIGHT:Ljava/lang/String; = "toggleFlashlight"
Code:
.line 56
sget-object v0, Lcom/lidroid/systemui/quickpanel/PowerButton;->BUTTONS:Ljava/util/HashMap;
const-string v1, "toggleMobileData"
const-class v2, Lcom/lidroid/systemui/quickpanel/MobileDataButton;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
[COLOR="Red"] .line 58
sget-object v0, Lcom/lidroid/systemui/quickpanel/PowerButton;->BUTTONS:Ljava/util/HashMap;
const-string v1, "toggleBluetooth"
const-class v2, Lcom/lidroid/systemui/quickpanel/BluetoothButton;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;[/COLOR]
.line 59
sget-object v0, Lcom/lidroid/systemui/quickpanel/PowerButton;->BUTTONS:Ljava/util/HashMap;
const-string v1, "toggleSound"
const-class v2, Lcom/lidroid/systemui/quickpanel/SoundButton;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
After Deleting, It Will Look Like This:
Code:
.field public static final BUTTON_AUTOROTATE:Ljava/lang/String; = "toggleAutoRotate"
.field public static final BUTTON_FLASHLIGHT:Ljava/lang/String; = "toggleFlashlight"
Code:
.line 56
sget-object v0, Lcom/lidroid/systemui/quickpanel/PowerButton;->BUTTONS:Ljava/util/HashMap;
const-string v1, "toggleMobileData"
const-class v2, Lcom/lidroid/systemui/quickpanel/MobileDataButton;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 59
sget-object v0, Lcom/lidroid/systemui/quickpanel/PowerButton;->BUTTONS:Ljava/util/HashMap;
const-string v1, "toggleSound"
const-class v2, Lcom/lidroid/systemui/quickpanel/SoundButton;
invoke-virtual {v0, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
Save It and Close It.
Also delete Bluetooth smali(s) in quickpanel folder
i.e. delete
Code:
[B]
BluetoothButton.smali
BluetoothButton$BluetoothStateTracker.smali
BluetoothButton$BluetoothStateTracker$1.smali
BluetoothButton$1.smali
[/B]
(So What We Have Done Here?...We Just Delete Its Main And Derived Smalis)
Now Compile App
Paste It To system/app
Reboot Device
......................................................................................................................................................
Press Thanks If This Guide Helped You
.......................................................................................................................................................
Click to expand...
Click to collapse
Nice guide
I will try...

[Solved] Kitkat dialer without Favorites tab

this is all after months of trial and error method, finally got it working.......please thank me if someone is using it in their ROM...took a lot of efforts to get it the way i wanted it (many had tried and given up hope).
assuming that you know how to decompile and recompile, have basic knowledge on how to edit smali files and also that you have a similar version of seccontacts..apk, here goes.
1) after decompiling, go to "\smali\com\android\contacts\activities" and open "ActionBarAdapter.smali".
2) search for method ".method protected addTab(III)V" and look for "new-instance v1, Ljava/lang/IllegalStateException;"
3) right above this, you should have a "if-eq p1, v1, :cond_1" . Change this to goto :cond_1 This skips the check of the tab index. This is a very important step.
4) search for method "method protected setupTabs()V" and hash out the following 4 lines:
#sget v0, Lcom/samsung/contacts/activities/ContactsTab;->FAVORITES:I
#const v1, 0x7f02014e
#const v2, 0x7f0e01ab
#invoke-virtual {p0, v0, v1, v2}, Lcom/android/contacts/activities/ActionBarAdapter;->addTab(III)V
This moves the text/icon of the contacts tab to the position of Favorites tab
5) Next file, under "smali\com\samsung\contacts\activities" look for "Contactstab.smali" and look for method ".method private static setupTabState(Z)V"
6) this is where all the tab order, position are defined...took me months to stumble across this method.
change the top section of the method as follows: ensure that the 3 tabs for which i have put comments are matching the variables below
.method private static setupTabState(Z)V
.locals 5
.parameter "hideDialerNLogs"
.prologue
const/4 v4, 0x0
const/4 v3, 0x3 ==>v3 looks like tab count, so we are reducing it from 4 to 3
const/4 v2, 0x2 => v2 is contacts tab and you are moving it to position 2 from 3
const/4 v1, 0x4 ==> v1 is favorites tab you are moving it to position 4 (out of the equation)
const/4 v0, 0x1
.line 75
if-nez p0, :cond_0
.line 76
sput v4, Lcom/samsung/contacts/activities/ContactsTab;->DIALER:I
.line 77
sput v0, Lcom/samsung/contacts/activities/ContactsTab;->CALLLOG:I
.line 78
sput v1, Lcom/samsung/contacts/activities/ContactsTab;->FAVORITES:I
.line 79
sput v2, Lcom/samsung/contacts/activities/ContactsTab;->ALL:I
.line 80
sput v3, Lcom/samsung/contacts/activities/ContactsTab;->GROUPS:I
.line 81
sput v3, Lcom/samsung/contacts/activities/ContactsTab;->COUNT:I
.line 82
sput v2, Lcom/samsung/contacts/activities/ContactsTab;->DEFAULT:I
Note that the bold highlights are edits made.
Save changes, recompile and you are done.
Enjoy...for all those who always found "Favorites" tab irritating and of no use.
http://forum.xda-developers.com/attachment.php?attachmentid=3361011&d=1434214242
josephpatrick said:
Hi everyone,
i will only post the guide/how to only if anyone is interested and that will be based on thread responses and PM's.
Click to expand...
Click to collapse
I am interested. Post to me sir. Tq
tahula2004 said:
I am interested. Post to me sir. Tq
Click to expand...
Click to collapse
will do it once i reach home
Tq sir
tahula2004 said:
Tq sir
Click to expand...
Click to collapse
OP updated with instructions
tahula2004 said:
Tq sir
Click to expand...
Click to collapse
were you able to get it working?
I have not tried it yet. Quite busy with my work. I shall inform you when I have tried it. Tq sir
"4) search for method "method protected setupTabs()V" and hash out the following 4 lines:
#sget v0, Lcom/samsung/contacts/activities/ContactsTab;->FAVORITES:I
#const v1, 0x7f02014e
#const v2, 0x7f0e01ab
#invoke-virtual {p0, v0, v1, v2}, Lcom/android/contacts/activities/ActionBarAdapter;->addTab(III)V
This moves the text/icon of the contacts tab to the position of Favorites tab"
I still confused with this step, can you explaind to me?
haikal14 said:
"4) search for method "method protected setupTabs()V" and hash out the following 4 lines:
#sget v0, Lcom/samsung/contacts/activities/ContactsTab;->FAVORITES:I
#const v1, 0x7f02014e
#const v2, 0x7f0e01ab
#invoke-virtual {p0, v0, v1, v2}, Lcom/android/contacts/activities/ActionBarAdapter;->addTab(III)V
This moves the text/icon of the contacts tab to the position of Favorites tab"
I still confused with this step, can you explaind to me?
Click to expand...
Click to collapse
what explanation are you looking for?
I have 2 smali files, one is from my original Android contact app and one is from another contacts app (called NO_ORIGINAL),
what I need is to be able to use this command "^ [0-9]. * $" that what it does is prohibit the search with numbers and allow only letters, that this is inside the NO_ORIGINAL and I want to use this same one and put it in the ORIGINAL to use it in my android, as well as around it has several things that I do not know in smali I do not know how to do it,
as I understand this is what you have to copy but with some different details that I do not know,
.line 224
invoke-interface {p1}, Ljava / lang / CharSequence; -> toString () Ljava / lang / String;
move-result-object p2
const-string p3, "^ [0-9]. * $"
invoke-virtual {p2, p3}, Ljava / lang / String; -> matches (Ljava / lang / String Z
move-result p2
if-eqz p2,: cond_0
.line 225
iget-object p2, p0, Lcom / nwagu / contacts / activities / ActionBarAdapter $ SearchTextWatcher; -> this $ 0: Lcom / nwagu / contacts / activities / ActionBarAdapter;
invoke-static {p2}, Lcom / nwagu / contacts / activities / ActionBarAdapter; -> access $ 200 (Lcom / nwagu / contacts / activities / ActionBarAdapter Landroid / widget / EditText;
move-result-object p2
const-string p3, ""
invoke-virtual {p2, p3}, Landroid / widget / EditText; -> setText (Ljava / lang / CharSequence V
Does anyone know how to do it?

Driver License apk

Hello there!
I would like to ask how to crack an apk which requires code in order to be activated.
The following apk is this : //play.google.com/store/apps/details?id=org.ndsbg.android.zebratest&hl=bg&rdid=%20org.ndsbg.android.zebratest&pli=1#details-reviews
I'm a newbie and i am trying to change the permission of the apk so when you enter to be activated at once without the requirement of the code.
Here is the apk which i have decompiled: //drive.google.com/open?id=0B6ZzM6XEUkzgWW43aFZURlU3Y1E
I am looking inside one of the files which is called activitycompayhoneycomb which is invalidating the activity of the apk and i am wondering what to do cuz i don't understand any bit of this language :
.class Landroid/support/v4/app/ActivityCompatHoneycomb;
.super Ljava/lang/Object;
.source "ActivityCompatHoneycomb.java"
# direct methods
.method constructor <init>()V
.locals 0
.prologue
.line 27
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static dump(Landroid/app/Activity;Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/StringV
.locals 0
.param p0, "activity" # Landroid/app/Activity;
.param p1, "prefix" # Ljava/lang/String;
.param p2, "fd" # Ljava/io/FileDescriptor;
.param p3, "writer" # Ljava/io/PrintWriter;
.param p4, "args" # [Ljava/lang/String;
.prologue
.line 34
invoke-virtual {p0, p1, p2, p3, p4}, Landroid/app/Activity;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/StringV
.line 35
return-void
.end method
.method static invalidateOptionsMenu(Landroid/app/ActivityV
.locals 0
.param p0, "activity" # Landroid/app/Activity;
.prologue
.line 29
invoke-virtual {p0}, Landroid/app/Activity;->invalidateOptionsMenu()V
.line 30
return-void
.end method
Activity :
.class public Landroid/support/v4/app/ActivityCompat;
.super Landroid/support/v4/content/ContextCompat;
.source "ActivityCompat.java"
# direct methods
.method public constructor <init>()V
.locals 0
.prologue
.line 27
invoke-direct {p0}, Landroid/support/v4/content/ContextCompat;-><init>()V
return-void
.end method
.method public static invalidateOptionsMenu(Landroid/app/ActivityZ
.locals 2
.param p0, "activity" # Landroid/app/Activity;
.prologue
.line 61
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0xb
if-lt v0, v1, :cond_0
.line 62
invoke-static {p0}, Landroid/support/v4/app/ActivityCompatHoneycomb;->invalidateOptionsMenu(Landroid/app/ActivityV
.line 63
const/4 v0, 0x1
.line 65
:goto_0
return v0
:cond_0
const/4 v0, 0x0
goto :goto_0
.end method
If anyone could help me i would be very grateful.
RULE 6. Do not post or request warez.
If a piece of software requires you to pay to use it, then pay for it.
We do not accept warez nor do we permit members to request, post, promote or describe ways in which warez, cracks, serial codes or other means of avoiding payment, can be obtained or used.
This is a site of developers, i.e. the sort of people who create such software.
When you cheat a software developer, you cheat us as a community.
Thread Closed!

Categories

Resources