[App][Mod]Random Photowall, 100+ Gallery Select - T-Mobile Samsung Galaxy Note II

INFO
The attached apks will change PhotoWall images at random, and allow more than 100 pictures to be selected.
If you've used the PhotoWall Live Wallpaper that comes with the phone you've probably noticed
The Images go in the order they appear in the gallery
When you lock then unlock your phone(or reboot) the image resets to the first image
When you open an app that takes the view away from the wallpaper and go back to the homescreen again it resets to the first image
If you chose a lot of images chances are you don't really see most of the images after the first few, so I have modified PhotoWall.apk to grab a random image from the images you have chosen so the above doesn't happen.
Another annoyance is that you are limited to 100 pictures from within your gallery. This is actually a limitation of the gallery and not the PhotoWall app. I've also modified the Gallery app and increased the limit to 1000. I have about 800 pictures selected and PhotoWall seems to be working perfectly.
Installation
Photowall
If you are rooted download PhotoWall.apk
- From your phone memory copy or move PhotoWall.apk to your system/app directory with you favorite root file manager.
- if asked to overwrite or replace say yes.
- reboot device.
If you are not rooted download PhotoWall-nonsystem.apk
- Install as you would any normal non-market app. (you may be asked to turn on Unknown Sources from settings.)
Gallery
Only works for rooted devices.
- Download both SecGallery2_Galaxy.part1.rar and SecGallery2_Galaxy.part2.rar and extract them.
- If you downloaded to your computer copy the extracted SecGallery2_Galaxy.apk to your phone.
- Copy or Move the extracted SecGallery2_Galaxy.apk to your system/app directory with your favorite root file manager.
- if asked to overwrite or replace say yes.
- reboot device.
Issues
If you are not rooted from what I've tested, If you install PhotoWall-nonsystem.apk, after a reboot it resets to the original PhotoWall.apk and you have to reinstall again. (It could just be me, I haven't tested on a non rooted device so confirmation is needed)
Notes/Disclaimer
Gallery is split into 2 because of XDA file size limitations. Download both parts and extract the apk.
While the modifications I did to the apks were minimal and harmless, Install at your own risk, I am not responsible for anything that happens after the installation of included apks. For technical details see post 2.
PhotoWall-nonsystem.apk works with any device with 4.0 or beyond, but I cannot guarantee that it will function correctly. As far as I know it requires the samsung gallery app to be installed, I might work on that later.
Enjoy, and feel free to share and/or include anywhere you'd like.

Technical Details
For PhotoWall.apk made changes in PhotoLayouter.smali
From:
Code:
.line 960
:cond_1
const/4 v15, 0x0
invoke-virtual {v2, v15}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Ljava/lang/String;
To:
Code:
.line 960
:cond_1
invoke-static {v10}, Lcom/siso/photoWall/PhotoUtils;->getRandomInt(I)I
move-result v15
invoke-virtual {v2, v15}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Ljava/lang/String;
For SecGallery2_Galaxy.apk made changes in PhotoActionBarForMultiPick.smali
On line 20
From:
Code:
const/16 v0, 0x64
To:
Code:
const/16 v0, 0x3e8
and on line 201
From:
Code:
const/16 v6, 0x64
To:
Code:
const/16 v6, 0x3e8

Thanks...checking it out now....
Sent from my SGH-T889 using xda premium

After you download gallery part 1 and 2, what do you do with it? I dont get it man the instructions kind of lack after extracting both? Not trying to be a **** but to accamodate all people such as sometimes slower than normal, it should be more dummy proof, just trying to help you out so you don't have to answer a whole lot of questions. Thanks bro

bdorr1105 said:
After you download gallery part 1 and 2, what do you do with it? I dont get it man the instructions kind of lack after extracting both? Not trying to be a **** but to accamodate all people such as sometimes slower than normal, it should be more dummy proof, just trying to help you out so you don't have to answer a whole lot of questions. Thanks bro
Click to expand...
Click to collapse
OP has been updated with more detailed instructions, basically you get the extracted file SecGallery2_Galaxy.apk and with a file manager that allows root you copy the file and paste it in the system/app directory, then reboot.

liinko said:
OP has been updated with more detailed instructions, basically you get the extracted file SecGallery2_Galaxy.apk and with a file manager that allows root you copy the file and paste it in the system/app directory, then reboot.
Click to expand...
Click to collapse
thk u sir

Just tried to install this on my note 3 but photowall wont show up on my live wallpaper selections.
Edit...It just showed up now lol. The problem now is I go through my gallery and select photos and when I save and set as wallpaper, it just shows the stock live wallpaper scenery none of my selected photos. Any ideas?

Related

[HOW TO] Extended Power Menu with no header (reboot / download / recovery)

[HOW TO] Extended Power Menu (reboot / download / recovery) with no header
This HOW TO is rewritten from a French tutorial (HERE) itself rewritten from a XDA tutorial (HERE, and modified using this other one : HERE
Thanks to :
Okarin
untermensch
PaoloM70
Click to expand...
Click to collapse
warnings :
- This tutorial is for people who know what they will do, a mistake can fit your phone unusable so ...
- A modification of system files is always a delicate operation, pay attention and do not rush
Click to expand...
Click to collapse
Prerequisites :
First and foremost, you must master the decompilation / recompilation of APK and JAR using APK_Manager and smali/baksmali.
Click to expand...
Click to collapse
Mod the power menu :
Here is the way to add the options "Reboot", "Recovery" and "Download" to the Power menu (long press the power button)
For this part, we will work on 2 files:
framework res.apk
android.policy.jar
Click to expand...
Click to collapse
You can decompile the first with APK Manager, and the second with baksmali.
1/ framework-res.apk :
Extract it with APK_Manager (extracted in /project folder)
a/ Then, before going any further, you will have to find three new .PNG images to be displayed in the power menu, and name them :
"ic_lock_reboot.png" for reboot menu
"ic_lock_recovery.png" to enter recovery
"ic_lock_download.png" for download Mode
Click to expand...
Click to collapse
Place these 3 images in the : APK_Manager/project/framework-res.apk/res/drawable-hdpi
where you will find the other pictures already in the menu concerned.
It is easier for beginners to add customised icons (like for power off, silent or plane modes icons )after recompilation, using 7zip for example. .
b/ With NotePad + +, edit the file " res/values/strings.xml "
Go to the end of the file, and add before the last line "</resources>", the three lines:
Code:
<string name="reboot_recovery">Recovery</string>
<string name="reboot_download">Download</string>
<string name="reboot">Reboot</string>
This should give you something like this:
{
"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"
}
c/ Save your file.
d/ Now you can recompile the file "framework-res.apk" with APK Manager.
Remember that this is an APK system and delete the "keep/resources.arsc", since we have modified an XML file.
You will have a your moded apk here : "place-apk-here-for-modding/unsignedframework-res.apk"
Warning: You should not have errors when you re-compil. don't forget to add 3 new icons;
e/ using APK-Manager, decompil "place-apk-here-for-modding/unsignedframework-res.apk".
*Go to res/values/public.xml and edit with Notepad ++
*public.xml is auto-generated from others modifications during APK_MANAGER re-compilation. 6 new lines have been added, with 6 new Hex numbers. You will need these numbers later ...
Look for :
Code:
<public type="string" name="reboot" id="[B]0x01040488[/B]" />
<public type="string" name="reboot_recovery" id="[B]0x01040489[/B]" />
<public type="string" name="reboot_download" id="[B]0x0104048a[/B]" />
and for :
Code:
<public type="drawable" name="ic_lock_reboot" id="[B]0x010803d2[/B]" />
<public type="drawable" name="ic_lock_recovery" id="[B]0x010803d3[/B]" />
<public type="drawable" name="ic_lock_download" id="[B]0x010803d4[/B]" />
f/ Now you just have to rename "place-apk-here-for-modding/unsignedframework-res.apk" to "framework-res.apk" and voila!
Edit : never sign a system File using APK_Manager.
Here is the first part ended.
A tip, try this file on your phone, if it restarts fine, then the mod is correct, otherwise you can start over
It is important to test step by step, because it lets you know exactly from witch file comes the error.
2/ Now, we attack the second file "android.policy.jar".
Once decompiled with baksmal, edit the "out/com/android/internal/policy/impl/GlobalActions.smali."
Caution: Do not confuse it with the file "GlobalActions$Action.Smali"
a/ Find the line ".method private createDialog()Landroid/app/AlertDialog;"
then a few lines below, replace "const/4 v9, 0x4" with "const/4 v9, 0x7".
This line indicates the number of menu entries of extinction, we move from 4 to 7 (3 mor entries). You should have this after the changes made:
b/ Then find the line "
Code:
invoke-static {v0}, Lcom/google/android/collect/Lists;->newArrayList([Ljava/lang/Object;)Ljava/util/ArrayList;
" and insert just above:
Code:
const/4 v1, 0x4
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$8;
const v3, 0x10803d2
const v4, 0x1040488
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$8;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
const/4 v1, 0x5
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$9;
const v3, 0x10803d3
const v4, 0x1040489
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$9;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
const/4 v1, 0x6
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$10;
const v3, 0x10803d4
const v4, 0x104048a
invoke-direct {v2, p0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$10;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V
aput-object v2, v0, v1
You will notice in the code, the previous hex numbers generated. You have to modify the hex numbers quoted with the hex numbers you found in step 2 after decompilation of unsignedframework-res.apk
Warning in this code, the hex numbers have a 0 in less after the "0x" like : 0x1234567... and not 0x011234567 like in string.xml[/COLOR]...
Please not in the code you just added the GlobalActions$8, GlobalActions$9, GlobalActions$10 : you will add files .smali with same name later. If in your firmware GlobalActions$8 is already existing, then modify the "$X" to follow last used number
To help, here's what you should have:
3/ If you want to remove the header of the extended power menu, not having to scroll,
a/ search for ".method private prepareDialog()",
then look a few lines below, you should find "const v4, 0x104014a"
where This hexadecimal digit corresponds to the entry "<public type="string"name="global_actions" id="0x0104014a" /> in the "public.xml" file, which itself refers to the text of the menu in" string.xml " :
b/ find the corresponding hexadecimal number 0xXXXXX to the entry "<string name="config_tether_apndata" />" in the "string.xml" file. This entry has no text.
Now replace in "const v4, 0x104014a" with "const v4, 0xXXXXX," so it will not show anything in the power menu.
Save the file.
c/ Come on, we're almost there ...
Now copy the "out/com/android/internal/policy/impl/GlobalActions$4.Smali" to "out/com/android/internal/policy/impl/GlobalActions$8.Smali".
We choose #4 because it is one that contains the shutdown of the phone. We will rename it 8 because it's 8 in the next free issue ...
Remember this if ever in a future version of the files they are change.
d/ Now open the new file "out/com/android/internal/policy/impl/GlobalActions$8.Smali" and replace in, all occurrences of "\GlobalActions$4" with "\GlobalActions$8"
Then, Replace :
Code:
const/4 v1, 0x1
invoke-static {v0, v1}, Lcom/android/internal/app/ShutdownThread;->shutdown(Landroid/content/Context;Z)V
With :
Code:
const/4 v1, 0x1
const-string v2, "now"
invoke-static {v0, v2, v1}, Lcom/android/internal/app/ShutdownThread;->reboot(Landroid/content/Context;Ljava/lang/String;Z)V
e/ Save the file and copy it to "out/com/android/internal/policy/impl/GlobalActions$9.Smali"
Open it and replace in, all occurrences of "\GlobalActions$8" with "\GlobalActions$9
and
const-string v2, "now" with const-string v2, "recovery"
f/ Save the file and copy it to "out/com/android/internal/policy/impl/GlobalActions$10.Smali"
Open it and replace in, all occurrences of "\GlobalActions$9" with "\GlobalActions$10
and
const-string v2, "recovery" with const-string v2, "download"
Save the file and then ... compile it all!
The result, you will see that I also forgot to replace an icon:
Thanks you! finally someone willing to write a tutorial on this.
great tutorial.
thanx, we all need help sometimes
Excellent. Now for a tutorial on how to get the mobile data toggle in the notification bar and we can all build custom roms.
Sent from my GT-I9100 using Tapatalk
Wow, u really went the whole 9 yards explaining this, thanks, as always grateful for ur sharing....
Seems like you put a lot of time and effort in this post.
Very good and clear instructions on something I wanted to add to my custom rom for a long time. (without just adding some files)
Thank you very much.
No credit for the how to you copied this from?
what a shame
http://forum.xda-developers.com/showthread.php?t=811532
Nice guide. Two things when using apkmanager:
1) Never ever edit the public.xml
2) When Recompiling: Never sign system files. Copy their signature!
Sent from my GT-I9100 using XDA Premium App
designgears said:
No credit for the how to you copied this from?
what a shame
http://forum.xda-developers.com/showthread.php?t=811532
Click to expand...
Click to collapse
as Cognition user i can only agree with "my" developer, that most of the statings above are simply coppied - Ctrl+a--->Ctrl+V ---> well done
_JKay_ said:
Nice guide. Two things when using apkmanager:
1) Never ever edit the public.xml
2) When Recompiling: Never sign system files. Copy their signature!
Sent from my GT-I9100 using XDA Premium App
Click to expand...
Click to collapse
If we don't edit Public.xml, how are going to achieve this? I keep getting errors while recompiling using apkmanager? They sometimes don't even extract the resources.arsc and throw a lot of errors.
I'm working on adding a few options in the settings apk and neither apkmanger nor apktool is letting me decompile settings apk. It always throws errors. I need to decompile to edit a few xml in values which i don't find if i unzip it with 7-zip or winrar! Editing smali files is not a prob for now!
Any solutions?
@ sicopat
All three options call the Shutdown thread and present the "Your phone will shutdown" dialog. How do we change this?
And i also want to add the subtext in all three options in the main options, where are those located?
Ghostbustersin said:
If we don't edit Public.xml, how are going to achieve this? I keep getting errors while recompiling using apkmanager? They sometimes don't even extract the resources.arsc and throw a lot of errors.
I'm working on adding a few options in the settings apk and neither apkmanger nor apktool is letting me decompile settings apk. It always throws errors. I need to decompile to edit a few xml in values which i don't find if i unzip it with 7-zip or winrar! Editing smali files is not a prob for now!
Any solutions?
Click to expand...
Click to collapse
public.xml is auto-generated! Try add a string or a png and compile then decompile again. You will see that the new resources has been added to the public.xml
The ids MUST be unique and increased by one! Its all done in the apktool!
designgears said:
No credit for the how to you copied this from?
what a shame
http://forum.xda-developers.com/showthread.php?t=811532
Click to expand...
Click to collapse
You are totaly right.
I didn't find lines to modify,
I just built a new How To, from a french one I found here : http://www.galaxys-team.fr/viewtopic.php?f=6&t=14562
I believe this french How To took its inspiration from this thread : http://forum.xda-developers.com/showthread.php?t=811532
I didn't found this thread myself, you found it for me.
I finished to write this thread at 1h30 AM and I am going just now correct this mistake ...
Sorry for this
_JKay_ said:
Nice guide. Two things when using apkmanager:
1) Never ever edit the public.xml
2) When Recompiling: Never sign system files. Copy their signature!
Sent from my GT-I9100 using XDA Premium App
Click to expand...
Click to collapse
1/ Why never edit public.xml ?
2/ You are right for that
_JKay_ said:
public.xml is auto-generated! Try add a string or a png and compile then decompile again. You will see that the new resources has been added to the public.xml
The ids MUST be unique and increased by one! Its all done in the apktool!
Click to expand...
Click to collapse
Ok but i never had errors using this How To and so, modifing public.xml.
But I will add your recommandation for people to try this How To, without modifing public.xml.
Thanks
sicopat said:
I insist on it here: only perform additions, never modify the images during the decompilation / recompilation of APK with APK_Manager.
Thanks
Click to expand...
Click to collapse
Why this statement? I'd rather say ONLY edit PNGs when decompiled!
_JKay_ said:
Why this statement? I'd rather say ONLY edit PNGs when decompiled!
Click to expand...
Click to collapse
Cause when using Apk manager, during re-compilation a keep folder is created and if you don't delete every files (and png) you modified in this keep folder, then after recompilation you will have olds .png from the keep folder and not your new png from your project folder.
It is easier to just push your new .png after recompilation.
I am just a noob who want to help a little with my short experience.
I am ready to learn and to optimise my how to
Sent from my GT-I9100 using XDA Premium App
sicopat said:
Cause when using Apk manager, during re-compilation a keep folder is created and if you don't delete every files (and png) you modified in this keep folder, then after recompilation you will have olds .png from the keep folder and not your new png from your project folder.
It is easier to just push your new .png after recompilation.
I am just a noob who want to help a little with my short experience.
I am ready to learn and to optimise my how to
Sent from my GT-I9100 using XDA Premium App
Click to expand...
Click to collapse
Its true you need to delete the files you modify from the keep folder. But you should never try and modify 9patch pngs if they are not decompiled!!
_JKay_ said:
Its true you need to delete the files you modify from the keep folder. But you should never try and modify 9patch pngs if they are not decompiled!!
Click to expand...
Click to collapse
Yes i agree with you.
But in this How to, you don't need to edit 9patch.png
For begginers i think it's easier to push the customised reboot, power off, download mode icons ... after recompilation.
Sent from my GT-I9100 using XDA Premium App
sicopat said:
Yes i agree with you.
But in this How to, you don't need to edit 9patch.png
For begginers i think it's easier to push the customised reboot, power off, download mode icons ... after recompilation.
Sent from my GT-I9100 using XDA Premium App
Click to expand...
Click to collapse
Ok...... But I think this could make beginners believe that this is always the case and how it should always be done. I rather teach them the right way

[Mod/THEME][4.0.4][XWLPM] Lidroid 15 toggles, CallRecorder, BigPic & NoIncreasingRing

[Mod/THEME][4.0.4][XWLPM] Lidroid 15 toggles, CallRecorder, BigPic & NoIncreasingRing
For the lidroid 15 Status bar toggles for XWLPM, please refer to below thread,
http://forum.xda-developers.com/showthread.php?p=29207022#post29207022
About CallRecorder, BigPic & NoIncreasingRing, please install the attached package with CWM,
View attachment GT-I9100_XWLPM.CallRec.Phone_.BigPic_NoIncreasingRing.zip
And as there is some difference to implement Call Recorder Mod for 4.0.4 than 4.0.3, I'd like to share with you the details on how to implement it in 4.0.4 as below,
a) Decompile Phone.apk (apktool or whatever wrapper you prefer)
b) Edit the \smali\com\android\phone\PhoneFeature.smali file and search for ""voice_call_recording", you should find the single occurrence:
Code:
const-string v6, "voice_call_recording"
Change the line after that, such that instead of
Code:
invoke-static {v4}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
it becomes
Code:
invoke-static {[COLOR="Red"]v5[/COLOR]}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
c) Edit the \smali\com\android\phone\PhoneVoiceRecorder$RecorderThread.smali file and search for "Landroid/media/MediaRecorder;->prepare()V", you should find the single occurrence, inserted below code after that
Code:
.line 272
const-wide/16 v3, 0x96
invoke-static {v3, v4}, Ljava/lang/Thread;->sleep(J)V
after that, the code should like
Code:
invoke-virtual {v3}, Landroid/media/MediaRecorder;->prepare()V
[COLOR="Blue"] .line 272
const-wide/16 v3, 0x96
invoke-static {v3, v4}, Ljava/lang/Thread;->sleep(J)V[/COLOR]
.line 276
iget-object v3, p0, Lcom/android/phone/PhoneVoiceRecorder$RecorderThread;->this$0:Lcom/android/phone/PhoneVoiceRecorder;
const-wide/16 v4, 0x0
d) Follow the existing method to rebuild the apk.
e) We still have to replace those two audio.primary.exynos4.so & audio_policy.exynos4.so from the Chinese built to make the call rec work, you can extract them from the package I attached above.
woohoooo.. thanks.
Great i'm gone try it, thanks.
I post this info in russian 4pda forum: 05.07.2012, 19:44
And not need edit
\smali\com\android\phone\PhoneVoiceRecorder$RecorderThread.smali
simply activate the entries in the file
smali\com\android\phone\PhoneFeature.smali
>GT-I9100_XWLPM.CallRec.Phone_.BigPic_NoIncreasingRing.zip
Cannot open zip file, seems to be corrupted somehow !!
mythtrandyr said:
I post this info in russian 4pda forum: 05.07.2012, 19:44
And not need edit
\smali\com\android\phone\PhoneVoiceRecorder$RecorderThread.smali
simply activate the entries in the file
smali\com\android\phone\PhoneFeature.smali
Click to expand...
Click to collapse
Try ti explain what you talking about and maybe a little show and tell. The OP"s method works... but what is your method?
Would it be possible to make a "noise suppression off" mod?
method from first post work on XXLQB Deodexed
thx
Any LPT version ?
djdeeles said:
Any LPT version ?
Click to expand...
Click to collapse
is working fine in LPT
Great Info
Thanks a lot @OP
I modded Phone.apk of 4.0.4-XWLP8 with the help of your guide; and it worked like a charm. :victory:

[INFO][REF][MON 18 FEB '13] Jelly Bean Porting thread | Vision Keyboard Fixes

I'm starting this thread as a result of trying to port Paranoid Android 2.51 from the saga. Long story short, turns out previous known ways to fix keyboard problems in ICS ports no longer work for Jelly Bean.
Please PM me and post useful info in this thread.... I absolutely do not want this to turn into a "how do I do this" thread.... This is for exchanging knowledges and discussion.
Progress so far: Thanks to strapped365, who has successfully ported PA 2.xx WITH working keyboard for the myTouch 4G Slide, We now know how to enable the soft keyboard. strapped365's instructions were off the top of his head, so here I have written a revised version with detailed instructions.
If you want to help out but are a n00b at editing .apk files, please follow this simple guide for de/ recompiling with APKTool.
SOFT KEYBOARD FIX
Using apktool, decompile framework-res.apk, then open res/values/bools.XML . Look for
Code:
<bool name="config_forceDisableHardwareKeyboard">[COLOR="Red"]false[/COLOR]</bool>
Change it to
Code:
<bool name="config_forceDisableHardwareKeyboard">[COLOR="Red"]true[/COLOR]</bool>
Before I go any further, I'm not convinced this is the best way to fix the problem because this boolean suggests we are saying that we should force the hardware keyboard to not be used just to get the soft keyboard up instead, although at least the hardware keyboard is still recognised. We need to look more into android.policy.jar stuff.
Anyway, now go into res/values/integers.XML and find
Code:
<integer name="config_lidOpenRotation">[COLOR="red"]-1[/COLOR]</integer>
Change it to
Code:
<integer name="config_lidOpenRotation">[COLOR="red"]90[/COLOR]</integer>
Still in integers.XML, look for
Code:
<integer name="config_lidNavigationAccessibility">[COLOR="red"]0[/COLOR]</integer>
and change it to
Code:
<integer name="config_lidNavigationAccessibility">[COLOR="Red"]1[/COLOR]</integer>
DO NOT change
Code:
<integer name="config_lidKeyboardAccessibility">[COLOR="red"]0[/COLOR]</integer>
When I did, I got bootloops.
Click to expand...
Click to collapse
PHYSICAL KEYBOARD BUTTON BACKLIGHT
I've tried lms24's fix for ICS (scroll down to the bottom of the post) but unfortunately this does not work, which I'm slightly surprised at being as other framework tweaks (for soft keyboard) work, and comparing JB's values for this stuff to ICS's does not show much difference.
Click to expand...
Click to collapse
PHYSICAL KEYBOARD OPEN / LID OPEN STATE (SCREEN ROTATION UPON OPENING KEYBOARD)
I've had a look in android.policy.jar and in PhoneWindowManager.smali there is an interesting method, it is in the original Jelly Belly ROM (which is what, if you're porting, you should be using because the other JB ROMs are test builds) but is not in the PA ROM I'm porting (nor will it be in any other non-Vision ROM, I guess). Take a look. Simply putting the method into the ported ROM's PhineWindowManager.smali file doesn't work, there must be something deeper at work here.
Code:
.method private applyLidSwitchState()V
.registers 4
.prologue
.line 5042
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mPowerManager:Landroid/os/LocalPowerManager;
invoke-direct {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isBuiltInKeyboardVisible()Z
move-result v1
invoke-interface {v0, v1}, Landroid/os/LocalPowerManager;->setKeyboardVisibility(Z)V
.line 5044
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mLidState:I
if-nez v0, :cond_1a
iget-boolean v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mLidControlsSleep:Z
if-eqz v0, :cond_1a
.line 5045
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mPowerManager:Landroid/os/LocalPowerManager;
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v1
invoke-interface {v0, v1, v2}, Landroid/os/LocalPowerManager;->goToSleep(J)V
.line 5047
:cond_1a
return-void
.end method
Click to expand...
Click to collapse
TO FINISH OFF
Here's how strapped365 told me to finish it off (I used Ubuntu's built in archive manager to do this, it should work fine, if you're not using 7zip just extract the right files from the original, delete the respective files in the new one and pack the old stuff):
Once the apk is compiled open the newly compiled apk with 7zip on one window and then open the original untouched apk in another 7zip window and drag the META_inf and manifest XML from the original apk into the new apk ( the new apk NEEDS these ) once that's done your good to go. Just note that this still leaves an onscreen keyboard in landscape when then keyboard is open, but its better than what your dealing with.
Click to expand...
Click to collapse
Obviously make sure the new file is renamed to to framework-res.apk.
THANKS TO...
ajhavery
lms24
strapped365
For helping me out with all this... so far this is not spawned in any way from my own knowledge (although I have been doing my own investigating) but has been from help and advice from the above.
Click to expand...
Click to collapse
RESERVED
RESERVED
AW: [INFO][REF][MON 18 FEB '13] Jelly Bean Porting thread | Vision Keyboard Fixes
Good job man! This will be appreciated by many g2 devs, when it comes to in porting. Thanks for sharing.
Sent from my HTC One X using xda app-developers app

[MOD][GUIDE] Removing SysScope - Permanent "Official" Device Status [update 8-12-13]

[MOD][GUIDE] Removing SysScope - Permanent "Official" Device Status [update 8-12-13]
Notice (4/16/14): I'm no longer here. I've said "goodbye" to AT&T and their locked bootloader schemes. I'm voting with my wallet - I've sold my I337 and switched to T-Mobile. My apologies to the community, but you're now on your own here.
First and foremost, most of the credit goes to [email protected] and dwitherell for their hard work in this thread, and all the help they provided me to get this to work on the S4. Also some thanks to sicopat, with his instructions in this thread for deodexing APKs.
This guide will show you how to delete SysScope, and permanently alter your "Device Status" (Settings -> More -> About device -> Status -> Device Status) to be "Official". Futher, it will keep your boot logo to be the original "Galaxy S4" logo, and not the "Custom"/padlock logo. Before you begin, you will need to be sure that your device does not already show "Custom" - otherwise your boot logo will permanently be stuck showing the "Custom"/padlock. [Update 6-26-13: I've posted a method below that will allow you to restore your custom status temporarily before removing SysScope.] A couple more details about SysScope and how it works and what it is scanning for are in my old thread here.
Important Notes:
This mod will make changes to your SecSettings.apk, so there is risk of borking your device. I am not responsible if you mess anything up on your device!
This mod was performed on the AT&T Galaxy S4 (SGH-I337) with the latest OTA Update available at this time (I337UCUAMDL).
This mod was performed on the STOCK UCUAMDL ROM. You might be able to make these same changes to other TW-based roms. Good luck.
You must be rooted.
It is highly advised to make a nandroid backup of your entire system/data before continuing. Seriously - go do it now.
Your device must be in debugging mode (of course) and your ADB should be readily available (set in path, or dumped into your working folder). If you don't know what I'm talking about, you should probably stop now.
Click to expand...
Click to collapse
Prerequisites:
You need java installed and working at the command prompt.
You need smali and baksmali in your working directory. I used v1.4.2 of each. Here's some links: baksmali and smali.
Basic ADB skills
A good text editor, such as Notepad++. Even better, and good text comparison tool would be great to check your work (get a trial of Beyond Compare 3 maybe?). Originally, I used a comparison tool, but in the end found myself just making the edits in Notepad++.
7zip or some other compressing/deompressing tool that can add a file into an .apk file.
Zip-Align (available in the SDK tools and other places around XDA) - technically optional, but probably a good idea
Get all these things into a working folder, open your command prompt in that folder, test ADB, and then begin.
Click to expand...
Click to collapse
Added 6-26-13 - How to get "Official" status back before making it permanent:
If for some reason you already have a "custom" status, you can perform this lengthy, yet sure-fire method to get it back...
Install your favorite recovery by whatever means.
Personally, I like TWRP, and I install it using an ADB Shell:
http://www.teamw.in/project/twrp2/174 said:
$ su
# dd if=/sdcard/recoveryfilename.img of=/dev/block/mmcblk0p21
Click to expand...
Click to collapse
Make a nandroid backup of your device as it is now, just as a precaution.
Perform all the steps below to remove SysScope from your device (including the reboot at the end!). Note that this will not fix your "Custom"/padlock boot logo at this time.
Check to be sure SysScope gone by looking at Settings -> More -> About device -> Status -> Device status. It should say "Official".
Make another nandroid backup - this time you're making a backup of your system without SysScope inside of it.
Odin back to MDL stock. Personally, I recommend that you also backup your internal SD card to your computer before using the Odin-to-Stock. You might need to wipe your data to get the odin-to-stock to work correctly, which if done improperly, will wipe your SD card also.
After device boots fully, manually restart the phone again.
Watch to be sure boot logo is not the "custom"/padlock. If you'd like to be extra-sure your status is "Official", you can boot into Download/Odin mode again, and check the status there.
Run Motochopper, but DO NOT allow motochopper to restart the device!
Make sure motochopper reads "Success!". If it fails, just CLOSE the program and start it again. Do not press any key to reboot!
When motochopper says, "Exploit complete. Press enter to reboot and exit" - just close motochopper without pressing any keys!
Motochopper available here.
Install your favorite recovery again. Do not restart your phone at this time!
In the instructions to remove SysScope, repeat step #10 (the final step with all the shell commands) again to remove SysScope again.
Technically this step is optional, but it is needed if your facorite recovery doesn't format/restore the System partition when it restores nandroid backups. Better safe than sorry.
Regardless, we don't ever want to allow the phone to reboot into the normal System while SysScope still exists.
Restore the second nandroid backup you took, and reboot into System.
Click to expand...
Click to collapse
Main Instructions:
Pull a copy of entire contents of /system/framework folder "framework" in your current working folder.
Code:
adb pull /system/framework/ ./framework/
Pull a copy of the SecSettings.apk and its .odex file
Code:
adb pull /system/app/SecSettings.apk
adb pull /system/app/SecSettings.odex
Deodex SecSettings.apk
Code:
java -jar baksmali-1.4.2.jar -a 17 -x SecSettings.odex -d framework
java -jar smali-1.4.2.jar ./out -o classes.dex
Decompile classes.dex
Code:
java -jar baksmali-1.4.2.jar -a 17 -o .\classes_out classes.dex
Edit classes_out\com\android\settings\deviceinfo\Status.smali manually (using Notepad++). "Remove:" means to delete a line or remove a section entirely. "Change:" means to look at the original code, and make it look like the "to" part.
Remove:
Code:
.field private isSysScopeStatus:I
Remove:
Code:
.field private mSysScopeReceiver:Landroid/content/BroadcastReceiver;
Remove:
Code:
.line 264
new-instance v0, Lcom/android/settings/deviceinfo/Status$2;
invoke-direct {v0, p0}, Lcom/android/settings/deviceinfo/Status$2;-><init>(Lcom/android/settings/deviceinfo/Status;)V
iput-object v0, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
Remove:
Code:
.line 216
const/4 v0, -0x1
iput v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
Remove:
Code:
.method static synthetic access$402(Lcom/android/settings/deviceinfo/Status;I)I
.registers 2
.parameter "x0"
.parameter "x1"
.prologue
.line 102
iput p1, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
return p1
.end method
.method static synthetic access$500(Lcom/android/settings/deviceinfo/Status;)V
.registers 1
.parameter "x0"
.prologue
.line 102
invoke-direct {p0}, Lcom/android/settings/deviceinfo/Status;->changeSysScopeStatus()V
return-void
.end method
Remove:
Code:
.line 687
iget-object v0, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
Remove:
Code:
.line 657
iget-object v1, p0, Lcom/android/settings/deviceinfo/Status;->mSysScopeReceiver:Landroid/content/BroadcastReceiver;
new-instance v2, Landroid/content/IntentFilter;
const-string v3, "com.sec.intent.action.SYSSCOPESTATUS"
invoke-direct {v2, v3}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v1, v2}, Lcom/android/settings/deviceinfo/Status;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
Change:
Code:
.line 952
const v1, 0x7f09013f
to
Code:
.line 952
const v1, 0x7f09013d
Change:
Code:
.method private changeSysScopeStatus()V
.registers 8
.prologue
const-wide/16 v3, 0x3e8
const v6, 0x7f09013e
const/4 v5, -0x1
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 958
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v0
div-long/2addr v0, v3
.line 959
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
div-long/2addr v0, v3
.line 961
const-wide/16 v3, 0x0
cmp-long v3, v0, v3
if-nez v3, :cond_1e
.line 962
const-wide/16 v0, 0x1
.line 965
:cond_1e
iget v3, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v3, v5, :cond_30
const-wide/16 v3, 0x78
cmp-long v0, v0, v3
if-lez v0, :cond_30
.line 966
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
:goto_2c
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.line 968
:cond_30
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
const/4 v1, 0x2
if-ne v0, v1, :cond_3a
.line 969
invoke-virtual {p0, v6}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 970
:cond_3a
iget v0, p0, Lcom/android/settings/deviceinfo/Status;->isSysScopeStatus:I
if-ne v0, v5, :cond_46
.line 971
const v0, 0x7f09013f
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.line 973
:cond_46
const v0, 0x7f09013d
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
goto :goto_2c
.end method
to
Code:
.method private changeSysScopeStatus()V
.registers 4
.prologue
const v1, 0x7f09013d
.line 956
const-string v0, "sysscope_status"
invoke-virtual {p0, v0}, Lcom/android/settings/deviceinfo/Status;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v2
.line 966
invoke-virtual {p0, v1}, Lcom/android/settings/deviceinfo/Status;->getString(I)Ljava/lang/String;
move-result-object v0
.line 977
invoke-virtual {v2, v0}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
.line 978
return-void
.end method
Recompile classes.dex
Code:
java -jar smali-1.4.2.jar -a 17 .\classes_out -o classes.dex
Put classes.dex into SecSettings.apk. To do this, open SecSettings.apk in 7Zip, and drag/drop your new classes.dex into the root of SecSettings.apk. Save and close.
ZipAlign SecSettings.apk (optional, but advised)
Code:
zipalign -v 4 SecSettings.apk zip_SecSettings.apk
Push it to the sdcard
Code:
adb push zip_SecSettings.apk /sdcard/
Install! Use "adb shell" to begin, and use the following commands, one at a time:
Code:
su
mount -o rw,remount /system
stop
mv /system/app/SecSettings.apk /system/app/SecSettings.bak
mv /system/app/SecSettings.odex /system/app/SecSettings.odexbak
mv /system/app/SysScope.apk /system/app/SysScope.bak
mv /system/app/EdmSysScopeService.apk /system/app/EdmSysScopeService.bak
mv /system/app/EdmSysScopeService.odex /system/app/EdmSysScopeService.odexbak
cp /sdcard/zip_SecSettings.apk /system/app/SecSettings.apk
rm -r /data/dalvik-cache/*
reboot
Click to expand...
Click to collapse
Added 8-12-13 - Flashable zips!
I've uploaded CWM/TWRP flashable zips for the SysScope mod for both MDL and MF3 firmware for the I337. Here are the download links:
mdl-remove-SysScope.zip (mirror)
mf3-remove-SysScope.zip (mirror)
The zip will do the following:
Mount /system and /data
Remove the following files (note that it doesn't make any backups):
/system/app/SecSettings.apk
/system/app/SecSettings.odex
/system/app/SysScope.apk
/system/app/EdmSysScopeService.apk
/system/app/EdmSysScopeService.odex
Extracts the new SecSettings.apk into place
Updates permissions on /system/app/SecSettings.apk to 0644
Wipes dalvik cache
Unmounts /system and /data
Click to expand...
Click to collapse
I'm not a Dev. Just a fellow XDA member, sharing some hard work with the rest of you. If this helped you out in any way, just hit the Thanks button.
To Devs: If you use this mod in your stock-based ROMs (if needed), it would be appreciated if you at least mention my name and/or [email protected] and dwitherell somewhere. Thanks. ^_^
Attached, you'll find a text copy of my I337UCUAMDL's Status.smali (rename to Status.smali if you want to use it directly). Good to compare against, or you can just skip to step 7 and place the attached classes.dex into your SecSettings.apk. Remember, these are for STOCK I337UCUAMDL only.
Update 8-13-13: I've also attached the Status.smali for MGA. Thanks to @Dean1650 for providing the original and testing it on his device.
OP i hope you dont mind i added your method to my thread that talks about this issue http://forum.xda-developers.com/showthread.php?t=2296014
Keep me posted if you have a problem with that and i'll take it down
P.S. i hotlinked to this thread, i didnt include instructions in mine
Nice write up! One small note - and the below quote is just an example snippet of the OP:
Aou said:
...
Deodex SecSettings.apk
Code:
java -jar baksmali-1.4.2.jar -a [b][i][u][color="red"]15[/b][/u][/i][/color] -x SecSettings.odex -d framework
java -jar smali-1.4.2.jar ./out -o classes.dex
Decompile classes.dex
Code:
java -jar baksmali-1.4.2.jar -a [b][i][u][color="red"]16[/b][/u][/i][/color] -o .\classes_out classes.dex
...
Click to expand...
Click to collapse
The values highlighted above are used to indicate the sdk version of whatever it is you are de/recompiling. Seeing as the stock S4 rom is android version 4.2.2 (at least I think it is, right?), this flag should actually be 17. Not sure it matters all that much in this case, but I just thought I'd point that out
Aou said:
Attached, you'll find a text copy of my Status.smali (rename to Status.smali if you want to use it directly). Good to compare against, or you can just skip to step 7 and place the attached classes.dex into your SecSettings.apk. Remember, these are only for STOCK I337UCUAMDL only.
Click to expand...
Click to collapse
Great! How long until you get it into a flashable zip ? :laugh:
edit..
woops .. thanks for the guide and hard work guys!!
polish_pat said:
OP i hope you dont mind i added your method to my thread that talks about this issue http://forum.xda-developers.com/showthread.php?t=2296014
Keep me posted if you have a problem with that and i'll take it down
P.S. i hotlinked to this thread, i didnt include instructions in mine
Click to expand...
Click to collapse
Not a problem at all! I'm not 100% sure that this will remove an existing custom boot screen. I'll look into this a bit more and get back to you.
dwitherell said:
Nice write up! One small note - and the below quote is just an example snippet of the OP:
The values highlighted above are used to indicate the sdk version of whatever it is you are de/recompiling. Seeing as the stock S4 rom is android version 4.2.2 (at least I think it is, right?), this flag should actually be 17. Not sure it matters all that much in this case, but I just thought I'd point that out
Click to expand...
Click to collapse
I will certainly look into this! It didn't seem to matter while compiling/decompiling in this case, but just in case there are side-effects, it's probably worth looking at.
scott14719 said:
Great! How long until you get it into a flashable zip ? :laugh:
Click to expand...
Click to collapse
Once I hear of enough positive reports, I'll look into this.
iB4STiD said:
tried this on mdob.. didn't work.. thanks for the guide tho!!
Click to expand...
Click to collapse
It would be greatly helpful to me if you elaborated on what part didn't work? Also, it's possible that SecSettings.apk is different in MDOB.
Aou said:
Not a problem at all! I'm not 100% sure that this will remove an existing custom boot screen. I'll look into this a bit more and get back to you.
Click to expand...
Click to collapse
awesome, i've specified this in my thread, hopefully my thread will give you enough visibility people will try it out and report back to you
Aou said:
Not a problem at all! I'm not 100% sure that this will remove an existing custom boot screen. I'll look into this a bit more and get back to you.
I will certainly look into this! It didn't seem to matter while compiling/decompiling in this case, but just in case there are side-effects, it's probably worth looking at.
Once I hear of enough positive reports, I'll look into this.
It would be greatly helpful to me if you elaborated on what part didn't work? Also, it's possible that SecSettings.apk is different in MDOB.
Click to expand...
Click to collapse
edit
my error.. nm!!
iB4STiD said:
Padlock on boot up was still there after r reboots, I edited secsettings from my ROM which is stock based off amdl
Sent from my SAMSUNG-SGH-I337 using Tapatalk 2
Click to expand...
Click to collapse
Didn't you read the op? It clearly states that if you already have the custom splash screen it won't work. This mod is to circumvent getting the custom screen. So you would have to go back to stock then use this.
This is my understanding of the op.
Sent from my SAMSUNG-SGH-I337 using Tapatalk 4 Beta
shoman94 said:
Didn't you read the op? It clearly states that if you already have the custom splash screen it won't work. This mod is to circumvent getting the custom screen. So you would have to go back to stock then use this.
This is my understanding of the op.
Sent from my SAMSUNG-SGH-I337 using Tapatalk 4 Beta
Click to expand...
Click to collapse
did read it, but read it wrong i see.. :cyclops:
Nice job.
I've added a method to restore your "Official" status temporarily while you remove SysScope. Check it out in the OP.
Also, I did check on MDOB. Status.smali seems to be identical to stock, so this method in its entirety should work on MDOB.
dwitherell said:
Nice write up! One small note - and the below quote is just an example snippet of the OP:
The values highlighted above are used to indicate the sdk version of whatever it is you are de/recompiling. Seeing as the stock S4 rom is android version 4.2.2 (at least I think it is, right?), this flag should actually be 17. Not sure it matters all that much in this case, but I just thought I'd point that out
Click to expand...
Click to collapse
I've updated the OP to include API Level 17. It appears it doesn't really matter either way, but I've made the changes just to be safe. Thanks again for pointing these out. ^_^
has anybody just tried freezing sysscope with titanium backup?
polish_pat said:
has anybody just tried freezing sysscope with titanium backup?
Click to expand...
Click to collapse
Yup. If SysScope is missing or frozen, then SecSettings will automatically report that the system is Custom.
Maybe it's just me...but The point of all this is to have the phone show Official, and not have a open padlock pop up upon reboot right?
Well, if you have a custom, rooted ROM, with lets say a custom boot animation, then it doesn't matter if the lock shows up or if your phone says custom..........but if this is for people that just want a straight stock rom with nothing added then I can see the point. On my stock rooted rom nandroid i had official, on my SHOstock ROM my phone now says custom. But i guess if I had a warranty issue I'd just odin it.
igotroot said:
Maybe it's just me...but The point of all this is to have the phone show Official, and not have a open padlock pop up upon reboot right?
Well, if you have a custom, rooted ROM, with lets say a custom boot animation, then it doesn't matter if the lock shows up or if your phone says custom..........but if this is for people that just want a straight stock rom with nothing added then I can see the point. On my stock rooted rom nandroid i had official, on my SHOstock ROM my phone now says custom. But i guess if I had a warranty issue I'd just odin it.
Click to expand...
Click to collapse
Everyone has their own reason, some just for looks, some for functionality (updates, warranty, and what-not), and others for other reasons. I just think it's none of Samsung's business what I decide to put on my phone or not.
scott14719 said:
Everyone has their own reason, some just for looks, some for functionality (updates, warranty, and what-not), and others for other reasons. I just think it's none of Samsung's business what I decide to put on my phone or not.
Click to expand...
Click to collapse
Agreed.
Samsung must have read this thread. I didn't look at MF3, but the newer international releases they made major changes to status.smali.
sent using xda Premium

[MOD] [GUIDE] SplitWindow for G2 stock KK roms

Sorry it took so long for me to write this up.
Following these steps will allow you to add the full split window implementation from the GPro2 and G3 KK roms that for whatever reason LG decided to leave (mostly) out of the stock G2 4.4.x roms. This guide is geared more towards rom devs or people that are familiar with using smali/baksmali and doing minor dalvik/smali edits.
Prerequisites:
Get smali/baksmali v2.0.3
Get a copy of the framework directory for the rom you're implementing this on
Download the source files/zip linked below
Quick notes on smali/baksmali usage:
If you're running baksmali on an odex your basic command to use for this guide is baksmali -a 19 -b -d <path/to/framework/dir> -o <path/to/baksmali/outdir> - x filename.odex
If you're working with an extracted classes.dex (i.e. from from roms that support art) it's just baksmali -a 19 -b -o <path/to/baksmali/outdir> classes.dex
The basic smali command to use for these purposes is smali -a 19 -o classes.dex <path/to/baksmali/outdir>
Step 1:
Baksmali telephony-common (from your framework dir) and find the following line in generated/ConfigBuildBase.smali:
Code:
sput-boolean v0, Lgenerated/ConfigBuildBase;->CAPP_SPLITWINDOW:Z
and change the boolean to true like so:
Code:
sput-boolean v1, Lgenerated/ConfigBuildBase;->CAPP_SPLITWINDOW:Z
Step 2:
Smali that file back to a new classes.dex and zip it back into telephony-common.jar
Step 3:
Baksmali com.lge.frameworks and find the same line in generated/ConfigBuildBase.smali:
Code:
sput-boolean v0, Lgenerated/ConfigBuildBase;->CAPP_SPLITWINDOW:Z
and change the boolean to true like so:
Code:
sput-boolean v1, Lgenerated/ConfigBuildBase;->CAPP_SPLITWINDOW:Z
Step 4:
Open up com/lge/loader/splitwindow/SplitWindowCreatorHelper.smali and add the following to your static fields declarations:
Code:
.field private static TAG:Ljava/lang/String;
so that it will now appear as:
Code:
# static fields
.field private static SPLITWINDOW_INSTANCE:Lcom/lge/loader/splitwindow/ISplitWindow;
.field private static TAG:Ljava/lang/String;
Step 5:
In the same smali file a few lines down, you'll need to add the following to your direct methods:
Code:
const-string v0, "SplitWindowCreatorHelper"
sput-object v0, Lcom/lge/loader/splitwindow/SplitWindowCreatorHelper;->TAG:Ljava/lang/String;
so that it will now apprear as:
Code:
sput-object v0, Lcom/lge/loader/splitwindow/SplitWindowCreatorHelper;->SPLITWINDOW_INSTANCE:Lcom/lge/loader/splitwindow/ISplitWindow;
const-string v0, "SplitWindowCreatorHelper"
sput-object v0, Lcom/lge/loader/splitwindow/SplitWindowCreatorHelper;->TAG:Ljava/lang/String;
return-void
.end method
Step 6:
Again, in the same smali scroll all the way down as you'll need to add the following public method at the end of the file:
* keep in mind you'll need to keep a blank line between the .end method above and this new method below
Code:
.method public static recoverService()Lcom/lge/loader/splitwindow/ISplitWindow$ISplitWindowPolicy;
.registers 4
const/4 v3, 0x0
sget-object v1, Lcom/lge/loader/splitwindow/SplitWindowCreatorHelper;->TAG:Ljava/lang/String;
const-string v2, "recoverService"
invoke-static {v1, v2}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
sget-object v1, Lcom/lge/loader/splitwindow/SplitWindowCreatorHelper;->SPLITWINDOW_INSTANCE:Lcom/lge/loader/splitwindow/ISplitWindow;
if-eqz v1, :cond_20
sget-object v1, Lcom/lge/loader/RuntimeLibraryLoader;->SPLIT_WINDOW:Ljava/lang/String;
invoke-static {v1}, Lcom/lge/loader/RuntimeLibraryLoader;->getCreator(Ljava/lang/String;)Lcom/lge/loader/InstanceCreator;
move-result-object v0
if-eqz v0, :cond_1e
invoke-virtual {v0, v3}, Lcom/lge/loader/InstanceCreator;->setDefaultInstance(Ljava/lang/Object;)V
sget-object v1, Lcom/lge/loader/splitwindow/SplitWindowCreatorHelper;->TAG:Ljava/lang/String;
const-string v2, "Set default InstanceCreator as null to make NEW instance"
invoke-static {v1, v2}, Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
:cond_1e
sput-object v3, Lcom/lge/loader/splitwindow/SplitWindowCreatorHelper;->SPLITWINDOW_INSTANCE:Lcom/lge/loader/splitwindow/ISplitWindow;
:cond_20
invoke-static {}, Lcom/lge/loader/splitwindow/SplitWindowCreatorHelper;->getPolicyService()Lcom/lge/loader/splitwindow/ISplitWindow$ISplitWindowPolicy;
move-result-object v1
return-object v1
.end method
Step 7:
Open up com/lge/loader/splitwindow/ISplitWindow$ISplitWindowPolicy.smali and add the following public method after the getMinimumScreenSize public method (again, minding your blank lines)
Code:
.method public abstract getRecentStackBoxes()Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Landroid/app/ActivityManager$StackBoxInfo;",
">;"
}
.end annotation
.end method
Step 8:
Smali all of that to a new classes.dex and zip it back into com.lge.frameworks.jar
Step 9:
Put your newly modified com.lge.frameworks.jar and telephony-common.jar into place (I also re-odex them and copy the original signatures over)
Step 10:
Put all of the files contained in the download provided below into their respective directories with the proper permissions (644 all around)
Step 11:
Add the following two lines to your build.prop
Code:
ro.lge.capp_splitwindow=true
persist.splitwindow.support_all=true
* if you don't want all apps showing up in the selection window, change support_all to false
That's it...you should be good to go. There's always the possibility that your framework will be slightly different, but that's the general idea and you should be able to make small changes to adjust to your particular variant
Feel free to include this in your roms (that's why I posted it). Just give credit in your OP.
Downloads:
SplitWindow Files - G Pro 2
SplitWindow Files - G3
The only real difference between them is the color of the outline box
wow. definitely not for noobs.
thanks for sharing though. I'll try messing with it soon.
good job. thanks
if i will modify my installed pardus rom in my phone with that guide,
is it will work after xposed installer or it will cause trouble to use them both..
xposed and your guide..
should i disable xposed, modify by your guide and ten install xposed again or no need for that?
+If you could, post here a 1 or 2 screenshots..
Hope someone will make an apk installer ( like your camera) to make it working easily on stock roms!
Good job m8
Thanks mate ?
Sent from my LG-D802 using Tapatalk
Awesome sauce man, going to learn some smali now
@xdabbeb and @bender_007 brothers, please help us with either a flashable version or an apk please
Press thanks button if I was of any help / assistance to you
Apk and i make a statue in your honor
I got still stock recovery on 20b.. only rooted
rastigo said:
@xdabbeb and @bender_007 brothers, please help us with either a flashable version or an apk please
Press thanks button if I was of any help / assistance to you
Click to expand...
Click to collapse
will look into it. - but getting "your" framework directory is hard
Can't create installer for all versions. It's possible to provide for most common or these I do own. CloudyG3 for example.
bender_007 said:
will look into it. - but getting "your" framework directory is hard
Can't create installer for all versions. It's possible to provide for most common or these I do own. CloudyG3 for example.
Click to expand...
Click to collapse
Apk for stock rom 80220d and/or for cloudystock, please ? thank you
Inviato dal mio LG-D802 utilizzando Tapatalk
Dont work for me, and MagixRom
https://www.dropbox.com/s/28zrjwr1gj3ci8r/MagixWindon.zip
Enviado desde mi LG-D802 mediante Tapatalk
There would not be a feasible way to make this mod work via an apk installer without serious risk as it requires direct replacement of core framework files. This is a pretty low-level mod so if you want it, you'll have to be rooted with a custom recovery. I do not want people to put their phones into an unusable state by attempting to do this without a recovery. It's just too risky.
As for making flashable zips: this requires modification of framework that is variant/firmware specific and would need to be odexed in most situations (as there are few if any deodexed stock LG roms). This means one would need to create a large number of zips to cover every possible variant/firmware combination. A few devs had asked me to write up a guide detailing how I accomplished this so that they could incorporate it into their own roms. I had already responded to one of rastigo's PMs regarding making flashable zips. I may consider making a couple for the more popular bases (F320K21p & D80220D), but this really should be handled by your individual variant/rom devs. If they run into problems they can get in touch with me and I will help them as soon as I am able to.
I realize that this is a fairly involved guide/mod with multiple chances to make small mistakes, but when followed exactly it does work. There has even been an individual with a LG GPad who followed the guide and got it working.
xdabbeb said:
There would not be a feasible way to make this mod work via an apk installer without serious risk as it requires direct replacement of core framework files. This is a pretty low-level mod so if you want it, you'll have to be rooted with a custom recovery. I do not want people to put their phones into an unusable state by attempting to do this without a recovery. It's just too risky.
As for making flashable zips: this requires modification of framework that is variant/firmware specific and would need to be odexed in most situations (as there are few if any deodexed stock LG roms). This means one would need to create a large number of zips to cover every possible variant/firmware combination. A few devs had asked me to write up a guide detailing how I accomplished this so that they could incorporate it into their own roms. I had already responded to one of rastigo's PMs regarding making flashable zips. I may consider making a couple for the more popular bases (F320K21p & D80220D), but this really should be handled by your individual variant/rom devs. If they run into problems they can get in touch with me and I will help them as soon as I am able to.
I realize that this is a fairly involved guide/mod with multiple chances to make small mistakes, but when followed exactly it does work. There has even been an individual with a LG GPad who followed the guide and got it working.
Click to expand...
Click to collapse
Totally agree.
I will help in any way on that....
Thank you for your efforts..
how can i open the splitwindow by lmt or tasker, can you @xdabbeb make us an launcher apk for open the splitwindow and not only from the recent activity..
like that one for jb:
3rd party navigation bar support (Provided BY BlackDino) Simply point to this app
SplitViewLauncher.apk
Click to expand...
Click to collapse
source @bigfau http://forum.xda-developers.com/showthread.php?t=2544206
xdabbeb said:
There would not be a feasible way to make this mod work via an apk installer without serious risk as it requires direct replacement of core framework files. This is a pretty low-level mod so if you want it, you'll have to be rooted with a custom recovery. I do not want people to put their phones into an unusable state by attempting to do this without a recovery. It's just too risky.
As for making flashable zips: this requires modification of framework that is variant/firmware specific and would need to be odexed in most situations (as there are few if any deodexed stock LG roms). This means one would need to create a large number of zips to cover every possible variant/firmware combination. A few devs had asked me to write up a guide detailing how I accomplished this so that they could incorporate it into their own roms. I had already responded to one of rastigo's PMs regarding making flashable zips. I may consider making a couple for the more popular bases (F320K21p & D80220D), but this really should be handled by your individual variant/rom devs. If they run into problems they can get in touch with me and I will help them as soon as I am able to.
I realize that this is a fairly involved guide/mod with multiple chances to make small mistakes, but when followed exactly it does work. There has even been an individual with a LG GPad who followed the guide and got it working.
Click to expand...
Click to collapse
When I try to launch splitview I see dualwindows fc ?
Inviato dal mio LG-D802 utilizzando Tapatalk
Matt927 said:
When I try to launch splitview I see dualwindows fc ?
Inviato dal mio LG-D802 utilizzando Tapatalk
Click to expand...
Click to collapse
provide a logcat ..
can someone make an apk shortcut for the dualwindows operation, i have LMT launcher and i want to open dualwindows from the lmt..
thanks!
As said above.
Without framework core files no.
Its not so dangerous mod after all.
Just 2 jars to modify and one more to add.
If i find some time i will make a flashable zip for it tonight and a flashable revert if anything goes wrong
) ) ) G2 On Air ( ( (

Categories

Resources