LightJacker 1.0.3
Universal backlight fix / TomTom backlight fix
for WM5 & Up​
Hi guys! I just installed TomTom on my S740 and found it still has that annoying bug where the backlight keeps going off, so I decided I would write my own app to fix this problem.
It features completely transparent operation with backlight resuming normal function when the target app is not focused (i.e. when one minimizes TomTom), universal-ness so it can be applied to any app, lightweightness, and doesn't touch the system in any way.
In future, I may also expand it to support configurable key-to-key and key-to-mouse translation, to make some PocketPC-only apps usable also on the Smartphone.
For the interested, see all the details at the program's webpage.
And let me know what you think about it.
Thank you!
Thanks! I think it is a great idea!
I have been looking around for such app to keep the backlight always on when necessary - e.g. reading e-books, watching video and etc.
My feedback is it may be a little troublesome to do the link to each application you want to apply?
Is it possible to make it a background app, whereby when turned on it keep the backlight on always, but when turned off it revert back to the default setting in Power management.
Thanks.
zhuozhi211 said:
Thanks! I think it is a great idea!
I have been looking around for such app to keep the backlight always on when necessary - e.g. reading e-books, watching video and etc.
My feedback is it may be a little troublesome to do the link to each application you want to apply?
Is it possible to make it a background app, whereby when turned on it keep the backlight on always, but when turned off it revert back to the default setting in Power management.
Thanks.
Click to expand...
Click to collapse
I've put on my web page an easier semi-automatic procedure for creating the link, you just have to enter the path to the executable and the name for your shortcut, and download the ready-made .lnk file (be warned that it doesn't work with firefox, though, but it does with IE and Opera.)
I don't think it's so difficult and time-consuming now
There already are apps or mortscritps that do what you want, I.e. changing the systemwide setting, but it is exactly what I don't want to do: impose additional hassle on the user having to start/stop an app, and mess with registry and systemwide settings... I wanted LightJacker to be as invisible to the use as it could.
Hi there thenext1, I tried your app and the set up was fine and it works great, so thanks very much for that. I like the way it picks up the icon from the original app, this got me thinking that you could make an adaption of your app that just injected a new icon into a shortcut for any app and that is all it would do, just to change the icon for any app and nothing else, if you see what I mean, sorry to be a little off topic but just a thought. I have some apps that have horrible Icons I would like a simple way of adding my own Icon into a shortcut. "IconJacker"
uniqueboy said:
Hi there thenext1, I tried your app and the set up was fine and it works great, so thanks very much for that. I like the way it picks up the icon from the original app, this got me thinking that you could make an adaption of your app that just injected a new icon into a shortcut for any app and that is all it would do, just to change the icon for any app and nothing else, if you see what I mean, sorry to be a little off topic but just a thought. I have some apps that have horrible Icons I would like a simple way of adding my own Icon into a shortcut. "IconJacker"
Click to expand...
Click to collapse
That function is outside LightJacker's scope, anyway, you can try editing the .lnk file and changing the last path after the "?" mark to reflect a path to an .ico file on your phone, and editing the last number to be zero or remove it with the comma altogether.
I don't know if it will work.
Perfect idea! Sounds like a super program!! I have been looking for a feature like this!
A question: can it monitor several programs also? (e.g. Tomtom and igo and acrobat reader)? Seems like the shortcut generator can only support one program...
parkhaus said:
Perfect idea! Sounds like a super program!! I have been looking for a feature like this!
A question: can it monitor several programs also? (e.g. Tomtom and igo and acrobat reader)? Seems like the shortcut generator can only support one program...
Click to expand...
Click to collapse
Just create a shortcut for each of your program.... be warned though, I didn't test multiple programs at once. It might not work.
Has anyone gotten this to work with an HTC Touch Pro? I've tried installing this - and after I create the shortcut, and click the master app I'm trying to keep lighted - I get the following error message:
"The file 'ljack' cannot be opened. Either it is not signed with a trusted certificate or one of its components cannot be found. If the problem persists, try reinstalling or restoring this file."
When I click on the ljack.exe file on it's own - I get the following message:
"LightJacker error 2"
I'd read that another program that requires a purchase, "smartlight" was incompatible with our phones, so I'm wondering if it's something unique to the Touch Pro.
P0ll0L0c0 said:
Has anyone gotten this to work with an HTC Touch Pro? I've tried installing this - and after I create the shortcut, and click the master app I'm trying to keep lighted - I get the following error message:
"The file 'ljack' cannot be opened. Either it is not signed with a trusted certificate or one of its components cannot be found. If the problem persists, try reinstalling or restoring this file."
When I click on the ljack.exe file on it's own - I get the following message:
"LightJacker error 2"
I'd read that another program that requires a purchase, "smartlight" was incompatible with our phones, so I'm wondering if it's something unique to the Touch Pro.
Click to expand...
Click to collapse
Error 2 means that an incorrect command line was supplied - in your case, no cmd line at all.
The other error with the proper shortcut is a windows mobile generic error, and I don't know why it comes up, it should run fine as it does when start ljack.exe on its own....
Maybe your phone isn't fully app-unlocked?
A super idea for a program! however, a GUI would be nice....
command-line options are not very handy. And I think that is where the Error 2 comes from. I also had trouble using your .lnk maker.
Hmmm, your site seems to be down.
Any chance you could upload the cab here on xda?
Yes, I confirm...
I tried several times.... The website is dead since this morning. So, no chance to download this promissing application until now.
For a very similar app go here:
http://oldsap.blogspot.com/2009/02/dontsleep.html
there is a version which prevents the PPC from entering standby, and one that does it only while wifi is on. Also a great app!
arturobandini said:
Yes, I confirm...
I tried several times.... The website is dead since this morning. So, no chance to download this promissing application until now.
Click to expand...
Click to collapse
You are right! Will investigate the problem.
@parkhaus: what'd be the GUI for?
I would love to have a program that keeps the backlight on when certain programs are running (Adobe reader, Tomtom, ebook reader, etc).
A menu for defining those programs would be great! making shortcuts for each program is a bit too complicated for most users.
A solution in MortScript you can find here
Note: knowledge of german language is required
parkhaus said:
I would love to have a program that keeps the backlight on when certain programs are running (Adobe reader, Tomtom, ebook reader, etc).
A menu for defining those programs would be great! making shortcuts for each program is a bit too complicated for most users.
Click to expand...
Click to collapse
An utility in .NET CF can be easily made, but I absolutely don't have any spare time to do it.
Or you can use the method provided by the above users, although it's the old method of changing values in the registry.
Thankyou very much, I needed an app like this for Memory-Map OS5 (App for Off-road satnav in the UK).
I don't suppose you use winmo 6.5 do you? I have another problem with that app in 6.5 where it has icons along the bottom like 6.5 does - however, as 6.5 changes the width of the icons at the bottom, I cannot see all the icons when in the app. If there is any chance you could also code something to alter the size of the bottom buttons whilst in a certain app, that would be even better!
There is a free trial @ http://www.memory-map.co.uk/ should you care to try and code this in.
OK, I used and tested this with TomTom and Memory-Map, and all seems good.
A couple of things, however.
As the size of the app is so small, why go around duplicating it?
Personally, I found that putting LightJacker in \Program Files\LightJack and then doing my app shortcuts like this:
107#"\Program Files\LightJack\ljack.exe" \Program Files\Navigator\TomTom Navigator.exe?TomTom Navigator.exe,101
Meant that I could:
a) Only keep one copy of lightjacker for multiple apps. If there is an update, you only need replace the exe and dll once.
b) Use the shortcuts anywhere. I have one shortcut in the start menu, and one in the app folder. That way, if you have to pick an app via a folder list that starts in the root, you do not have to navigate through the windows folder to get to the start folder, which takes ages
Working on Rhodium (ATT Tilt2 - WM 6.5)
This works on my Tilt2, but with the following tweaks.
The author's site recommends this format for the .lnk file, but this didn't work for me. It produced and Error 4:
123#"\Storage Card\Program Files\GoogleMaps\ljack.exe" GoogleMaps.exe?\Storage Card\Program Files\GoogleMaps\GoogleMaps.exe,101
But using the format in the previous post, it works - the backlight stays on while this program is the front program, and the backlight dims properly when the program goes into the background or is shut down:
123#"\Storage Card\Program Files\GoogleMaps\ljack.exe" \Storage Card\Program Files\GoogleMaps\GoogleMaps.exe?GoogleMaps.exe,101
The only thing not working is the icon. Following the advice on the author's site, I used Resource Hacker to find the Resource ID for the icon, which appears to be 800. But changing that in the link file stilll results in the link showing a generic icon.
Any suggestions on how to get the proper icon to show in the Start Menu for Google Maps?
I'm a .NET guy just starting out with Android development. A million years ago I studied Java in college so I'm sure it will all come back quick as far as language and syntax goes, but I'm going to have a lot of questions along the way.
My current project will be both a learning experiment and an app that I will actually use when done. I'll try to give a high level overview of what I need to accomplish and hopefully you guys can help.
In a nutshell, this app will display pictures. Think of it as a gallery viewer, but the images will be stored in a folder on a remote server instead of being stored on the device. When the app loads it should display thumbnails of all the images currently in the folder, with the newest ones first so that when a new image is uploaded to the folder it will be the first thumbnail in the list. Clicking a thumbnail should simply display the image in full size (or, not FULL size, but rather the image should be scaled to take up the whole screen).
I could do this very simply as a website but one of my main goals is to make this an "app" so that I can understand how the whole apk process works.
So step 1... where do I begin? :silly:
developer.android.com is an excellent place to start. Have you worked with the eclipse ide at all?
Sent from a Toasted Devil
Hey guys when the latest RUU was released I pulled all the WiFi calling stuff out (well.. lots of bits and pieces) to update my fourth bar install... Figured I'd share it here. This will fix the increasing lag/delay with WiFi calling on all ICS sense based roms..
It shouldn't work on cm10 but i haven't tried it.I am pretty sure the movial implementation of WiFi calling requires many sense hooks though... But the interesting thing to me is that I have modified fourth bar quite a lot from the original to the point where there is practically no sensE stuff left whatsoever.. so it's either a modified telephony provider or it doesn't require sense at all... I haven't tested it much. Feel free to play around if you want.
Made this on the fly from my phone (and also is why I using DB) so let me know if it works if not I'll make one proper. Feel free to try on viper but if you do I'd suggest also.copying over htc frameworks.as well as telephony provider from a sense rom, just a suggestion!
You can tell.the update worked.because the WiFi calling active icon will be different. Oh and those using fourth.bar or speedrom..WiFi calling doesn't have to be permanent.. simply make a shortcut to the WiFi calling activity "wificall preferences" using apex or nova activity shortcuts.. you can also make shortcuts to the full IMS config including SIP reg server, auth info, protocol type, etc. I wouldn't mess with these.settings but could be useful to those porting. FLASH.THE ZIP.IN RECOVERY
LINK: http://db.tt/4B6tcCE1
(uHH... got a PM asking if it was odexed... these files are obviously deodexed..lol.. considering there's no .odex file... but yeah I mounted the system.img from the latest RUU, extracted it, deodexed the entire thing.. and pulled these out to make this zip. I've actually been combed through it with diff to the last RUU and there's really not a lot changed at all. Couple libs here and there, maybe a few other APKs... Not much at all!.. if you need it odexed, it's easy enough to reodex.. I actually prefer my phone to be odexed as well. Good tool to do this is called Dexo, The Universal Odexer.. you can find it on google. It's basically a couple of binaries and a script.. works like a DREAM and the basic script odexes your system apps as well as framework.. and it's easy enough to modify to odex data.. only thing with odexed data is you must delete the .odex file manually after you uninstall any apps because you'll get out of space etc errors if you do not... I find things are much MUCH faster on an odexed system, by far... matter of fact I'll go ahead and create another post with the Tool and a quick batch file I wrote for windows that makes the process very quick and easy.)
Good work :dance:
Just wondering, would there be anyway to get it to work with Miui
build.prop
might need to add this to the build prop if it isn't there
ro.ril.enable.ganlite=1
ro.ril.def.agps.feature=1
chevycowboyusa said:
might need to add this to the build prop if it isn't there
ro.ril.enable.ganlite=1
ro.ril.def.agps.feature=1
Click to expand...
Click to collapse
actually I think that's for the Kineto Gan implementation of Wifi calling, which uses a Userspace application (The one we tried to port over for Viper)
This is actually the Movial IMS implementation. Have you tried this implementation on viper perhaps? You would need some framework files, I think... but it's worth a shot honestly. I don't think it's as tightly hooked into Sense as a lot of us originally thought. I decompiled all of the APKs and I combed through it and I didn't really see any hooks into Sense.. I think that it more than likely depends on a modified telephony provider..
The Kineto Gan implementation used a bit of trickery with what's called a RIL switch, where it would (as the name implies) basically switch the RIL out on the fly between Kineto's RIL (for wifi calling) and the normal one. This implementation is a lot cleaner, and the configurations are included within the files themselves... It actually uses SIP. All the configuration info is actually easily found within the XMLs once the APKs are installed as system apps. The trickery is with the authentication. I've been running wireshark and capturing packets... between that and decompiling the APKs it appears that a basic SIP registration address is used for everyone, it's not unique. There's some kind of SIP address->mobile number translation that happens... the IMS project is open source, and the full source code is actually available on Google Code.. and it has even been updated for Jelly Bean. The interesting part is, I was able to compile the IMS Test App for ICS, take the configuration information I found.. entered it into the test App, and was able to establish half-way working service with the Test application. The thing is, even though it uses SIP, it's not your everyday run of the mill SIP. There's some wrapping and translation going on that uses info contained in the packets to determine where it's going (mobile number).. and don't even get me started on Text Messaging.... that looks like one giant hack-job...basically hijacking the SIP/RTP protocol for a proprietary implementation that just uses the base outline.
I tried to register with a regular SIP client using the configuration information I found (The password was TMO-VOIP-TRIAL) and i couldn't establish registration... and looking at the source I could definitely see why. There's a lot of stuff going on behind the scenes.
The good news is there's VERY LITTLE that appears to have been changed when it was updated for jellybean... what this means is... theoretically if someone was skilled enough they could take the DIFF's (which are freely available on google code) and update the IMS implementation for jellybean. It would take a good amount of time and effort, but I honestly think it's much more possible than a lot of people originally believed. It's the authentication part that's tricky..
But yeah, you might want to give it a shot on Viper! For a start I would probably move over ip-provider.apk, ims-service.apk, IPService.apk, WifiCall.apk (This is basically the on/off switch that Settings calls.. you can just use an activity shortcut to reach it though), and gba-service.apk
Push those all to /system/app
Then on the framework side I would move over javax.obex.jar, gba-service-lib.jar, and the other important one is going to be jsr-api.jar... I didn't know that it was related but it's clearly defined in the IMS source code (https://code.google.com/p/the-ims-open-source-project-for-android/source/browse/#git/jsr-api)
I would also copy over TelephonyProvider.apk and Phone.apk, for good measure. .. and see what happens.
You would need a way to trigger it ON, which can easily be done with Nova/Apex by making an activity shortcut to WIfiCall.apk, you can also make activity shortcuts to all the configuration options within the IMS-server itself but it comes preconfigured.
it's worth a shot... currently WiFi calling is working flawlessly for me on Fourth Bar and I have pretty much EVERYTHING htc related disabled. Including com.htc etc...
Could be in the HTC frameworks though.. or somewhere else... but it's def. worth a shot!
I think this is a awaresome job,although I don't know what's this...
Please do that!
Great work. I tried your file to no avail. Good catch on the other files. I read somewhere that phonesky is also required.
Biggest issue I had with the semi working one that I used is that it wouldn't read the SIM. I moved some files around and then it hung on connecting to the Wi-Fi due to a lack of server address
I'll follow your instructions tonight and see where I can get... I still am working on GPS and now vpn too. Last night I attempted a sense 3.6 venom build.
Wasn't pretty. Something kept failing in the updater script and I got too tired to pay with it..
**tried all the files and made the short cut..
No love.. It didn't work..
Still trying a few things
Any other ideas?
chevycowboyusa said:
Great work. I tried your file to no avail. Good catch on the other files. I read somewhere that phonesky is also required.
Biggest issue I had with the semi working one that I used is that it wouldn't read the SIM. I moved some files around and then it hung on connecting to the Wi-Fi due to a lack of server address
I'll follow your instructions tonight and see where I can get... I still am working on GPS and now vpn too. Last night I attempted a sense 3.6 venom build.
Wasn't pretty. Something kept failing in the updater script and I got too tired to pay with it..
**tried all the files and made the short cut..
No love.. It didn't work..
Still trying a few things
Any other ideas?
Click to expand...
Click to collapse
Hmm... there IS a build.prop entry that I actually just noticed
ro.ril.ims=1
I would try to add that.
Phonesky is just the updated google play market, I believe.
I would try that build.prop entry, then get a logcat if you can and post it. I'd try but currently can't really mess around with my phone as I need wifi calling for work stuff.
See what is going on in the logcat, or post it and I'll comb through it. See if there's API calls that are failing under something like Function does not exist or something or another.. that would seem to indicate some missing framework stuff that provides those functions. Then it might just be including said frameworks as well as altering the bootclasspath in the kernel (Pretty easy thing to do, just break the boot.img into parts with unpackbootimg, un-gzip the ramdisk with gzip and CPIO, edit the init.rc, recompress the ram disk with GZIP, then recompile the boot.img with mkbootimg) and I believe you'd also have to deodex the ROM itself, then if you wanted it odexed you'd have to odex it back with the correct BOOTCLASSPATH or else it will not boot. I'm not sure but I THINK deodexed APKs need to be built with the right bootclasspath.
There HAS to be a way to get it working on Viper. After all it's the same underlying android OS version.. The sensation guys got it worknig on CM9...
ok..
ericdjobs said:
Hmm... there IS a build.prop entry that I actually just noticed
ro.ril.ims=1
I would try to add that.
Phonesky is just the updated google play market, I believe.
I would try that build.prop entry, then get a logcat if you can and post it. I'd try but currently can't really mess around with my phone as I need wifi calling for work stuff.
See what is going on in the logcat, or post it and I'll comb through it. See if there's API calls that are failing under something like Function does not exist or something or another.. that would seem to indicate some missing framework stuff that provides those functions. Then it might just be including said frameworks as well as altering the bootclasspath in the kernel (Pretty easy thing to do, just break the boot.img into parts with unpackbootimg, un-gzip the ramdisk with gzip and CPIO, edit the init.rc, recompress the ram disk with GZIP, then recompile the boot.img with mkbootimg) and I believe you'd also have to deodex the ROM itself, then if you wanted it odexed you'd have to odex it back with the correct BOOTCLASSPATH or else it will not boot. I'm not sure but I THINK deodexed APKs need to be built with the right bootclasspath.
There HAS to be a way to get it working on Viper. After all it's the same underlying android OS version.. The sensation guys got it worknig on CM9...
Click to expand...
Click to collapse
I fixed VPN and I'm uploading it in a few. I think I noticed something as well. I went back to stock ota to see what was going on and noticed wifi calling isn't showing up in settings/more should be there with vpn/ wifi hotspot/ nfc etc....
ericdjobs said:
The trickery is with the authentication. I've been running wireshark and capturing packets... between that and decompiling the APKs it appears that a basic SIP registration address is used for everyone, it's not unique. There's some kind of SIP address->mobile number translation that happens... the IMS project is open source, and the full source code is actually available on Google Code.. and it has even been updated for Jelly Bean. The interesting part is, I was able to compile the IMS Test App for ICS, take the configuration information I found.. entered it into the test App, and was able to establish half-way working service with the Test application. The thing is, even though it uses SIP, it's not your everyday run of the mill SIP. There's some wrapping and translation going on that uses info contained in the packets to determine where it's going (mobile number).. and don't even get me started on Text Messaging.... that looks like one giant hack-job...basically hijacking the SIP/RTP protocol for a proprietary implementation that just uses the base outline.
I tried to register with a regular SIP client using the configuration information I found (The password was TMO-VOIP-TRIAL) and i couldn't establish registration... and looking at the source I could definitely see why. There's a lot of stuff going on behind the scenes.
Click to expand...
Click to collapse
How was the Test App half-way working for you? I didn't compile it, but I tried an apk I found a while back and it CLAIMED it was registered, but I couldn't make it call out. I tried random presence and subscribe options but I don't think they were taking and nothing happened when I called my mobile number from somewhere else. My guess is that I have to subscribe or set presence to something magic for my phone number. After not really finding what I should actually be doing from skimming the 4th or 5th spec, and noticing that the nexus 4 guys have a $1400 bounty and don't really have progress, I gave up.
Yeah there's a pile of authentication (on both sides) that IMS has over SIP. If I understand right, the first part of registration is similar, but then TMO's side says you're unauthorized along with a challenge that's supposed to be sent to the ISIM and part of a key for establishing an IPSec tunnel that everything else goes through. Can't tunnel, then use SIP because you need the key (and part of that probably comes from the ISIM too), and a regular SIP client will just think it failed.
So I'm working on a project on making an online android game work on PC from packet sending / receiving. Limited graphics.
Basically all packets are sent in a very unencrypted way, using very easy text and integers.
Easily picked up from packet sniffing, IP, Data etc. However, return results seems to be encrypted according to some packetscanning application for android. Unsure as packetscanning for android seems a bit meh. As I cannot get the game to launch thru bluestacks as hardware is listed as "Unsupported", I cannot find out for sure. Else I could have gotten more data and from that and could just have made the entire game based on the scanned sent/recieved packets coming from bluestacks. However the game also sends login info with each packet similar to
SendPacket(RetrieveResources,xxx,yyy,date,time,username,authid)
Username and authid is based of android hardware ID, which could easily be recoded into the java application.
But then I cannot find how it bases the authid and username of hardare id. Or how the application tells the server to create a new user.
Now, Myself I am an Java developer, however as I've never worked on Android applications previously this stuff is zzzz compared to real Java. I've managed to get about 99% source code from decompiling, deobfuscating and extracting the .dex file inside the application.
However, here's where things just go into full wtf-mode. I've extracted over 200 .class files into their correct folders and such, however, as confusing as this is. I simply cannot find how the game functions, or where it stores the IP and such, is it stored in an offsite .xml file? Storage file? Database? Resource file? Browsing through unlimited lines of scrap code, that seems irrelevant to the game, Facebook connections, Amazon, Google play purchase, Crittercism, GooglePlay classes etc. But noone of them actually seem to hold any useful data and alot of stuff actually just seems to be "Drag and Drop this into your application then call functions from it" like, "Authenticate to Facebook". I've managed to find alot of things loading .obb files, that doesnt seem to exist at all, tho the game pretty much goes "!blabla.obb" "CreateObb();" The game does not exist on facebook at all, just uses it to recieve ProfilID as an Login ID.
The game also uses UnityPlayer which seems to be the "Launch" class, which I've browsed thru but found nothing relevant. I found alot of .classes that seems similar to each other aswell containing the same stuff. I've also found alot of stuff that actually seems to be packet sends and connections, however, there is nothing that points that it is towards the game, but rather connections for i.e google play services.
Biggest .class>.java file is about ~40kb. Which for mee seems small, as projects I usually work with is well about 10mb inside the main.class then calls for unnecessary stuff from side classes.
Anyone mind pointing out on how android applications handles connections?
Is the files really no bigger than 40kb and just scrambled into tons of subclasses?
Feels like I'm missing obvious stuff that should be right there declared as a variable, but I can't find it.