how to remap the keys on a bluetooth gamepad - android

I have a Bluetooth gamepad that I want to use with my nexus 7 (2013). It worked great out of the box apart from one snag. The right thumbstickbutton is mapped to back.
Thus makes it really difficult to play games like GTA where the right thumbstick is used extensively.
I tried to use multilanguage keymap redefiner from the play store but it requires you press the key you want to remap but when i do so it goes back out of the menu
I loked for resources related to mkr but wasnt able to find anything not even on the listed creator website.
So i took the plunge and rooted my tablet.
I wanted to use tincore key remapper but found the help and support lacking on the wiki.
Found that the keylayout and keychars were the folders where files pertaining to what physical presses on the gamepad were mapped to (keylayout) and what actions those inputs were mapped too.
I mounted system rw and duplicated the generic.kl file (which I found was the one being used by looking at logcat) and was hoping to use this to modify the behaviour of my gamepad I just can't seem to find how to associate my new layout with the gamepad as the only option that is offered in the menu is still default

Looks like I didn't check enough. Did some digging and found this post
http://gustavepate.github.io/blog/20130714/android-keyboard-layout-logitech-tablet-keyboard/
Seems easy to follow will update with my results

if you're on android 5, you need to make SElinux permissive. google around for an app to do this. without that, it wont apply alternate Keylayout files. also make sure your keylayout file has the correct file permissions (just match permissions of all other .kl files in that folder) needless to say this all needs root.
to associate it with the gamepad, you need to get the unique ID of your gamepad. for example, the file for my Ouya controller i did this with is Vendor_2836_Product_0001.kl
if you can get the vendor and product number for your gamepad, then name the file accordingly, and you've got it. you should be able to get this when connecting your device and checking logcat, but a little google-fu will get you an answer as well.

Related

How to write modified U-BOOT in to android firmware

I have a TV box on which my remote did not work.
I was able to solve the problem with all the buttons, except to add the power button.
i.e. the console could turn off, but I can't turn it on with the new remote.
After a little digging, I found information that the power button can only be added via u-boot.
I found the source code here
I was able to compile it, but I don't know how to add it to the console firmware.
Here I have a few questions in this regard.
How to add u-boot to a ready-made firmware image?
How do I prepare AOSP for the prefix I use? As I understand it, my manufacturer does not upload the source code for it, but 1000% of it is based on the Amlogic processor.
I will be glad of any information, books or videos on which I can advance on this issue.

Get the layout of other running apps in Android?

Is there a way I can get the hierchary view/layout of other running android apps? If that's not possible, could I possibly unpack the app's .apk file and get the information there? For example, there's a setting in developer options that allows you to get the bounds of every elememt on the screen like so
EDIT
I have come to realize that this is not allowed and goes completely against the Android SDK. I apologize for this error and will look more closely in the future.
I have found out that Google blocks any of this because it would require me to inject my own code into other apps, which is not allowed due to malicious behavior in past apps.

How to create a tv tuner library for android?

I have a K1 Plus android box which have a built-in dvb-t2` and dvb-s2 tuner in it. I want to create an app that gets and shows the channels from those tuners.
At first, I found about android's TV Input Framework(TIF). The sample app keeps crashing by calling a method that gets the available inputs of the device. Then, found out that it only work for real Android TVs. I looked for android libraries for that android box but didn't find anything. I looked for c libraries that can access the tuners but didn't find anything as well. I looked for code on how to access the hardware components of an android device and didn't find anything. I recently found about https://opencv.org/. I haven't read everything about it yet so I don't really know how to use it.
I found about https://git.linuxtv.org/v4l-utils.git from an answer to a SO question but it seems like it can only be used after installing it to an OS. I was able to compile it using CMake on android but it got missing header files.
I also found http://android4tv.iwedia.com. Unfortunately, it's also using TIF.
I'm trying to create something like kodi but I found out that it isn't really the one that gets the channels but kodi is getting it from a supported iptv box. I have zero knowledge about writing C but I'll try to make the code.
This is the box btw. http://www.videostrong.com/S905D+DVB(KI%20PLUS)/55.html
From my research, I found about HAL(Hardware Abstraction Layer). Do I need that for making my C code?
Update:
After months of research and not finding any quick way to implement a tv tuner library, I returned to my bookmarks from previous research. One of them is this. The first step from that SO answer is do a ls /dev/dvb/ on the device. Because I need to do it on the android box itself, I researched about android terminal apps and found Termux. Then I did the ls /dev/dvb/ command on Termux and it told that the resource was not found or it did not exist. Then I tried to just do a ls /dev/ command and luckily I got results. There's quite a lot of them and I found something related to dvb.
The dvb related results were:
dvb0.demux0
dvb0.demux1
dvb0.demux2
dvb0.dsc0
dvb0.dsc1
dvb0.dvr0
dvb0.dvr1
dvb0.dvr2
dvb0.net0
dvb0.net1
dvb0.net2
I can post the whole list but I'll post this more related (I think) results.
The results are quite different than the example of the link above because they only used dvb and not dvb0.
UPDATE:
I might use a usb tv tuner now based on a suggestion to me.
UPDATE:
Is there a list of standard and tv tuner related usb byte[] commands that I can look at? I already saw some but they are mostly for FTDI, serial or the really standard commands which I don't have really have any use.
It will probably take a lot of reverse engineering or a leaked documentation to achieve what you are trying to do.
Devices like the one you are working on usually use proprietery hardware with proprietery drivers for things like DVB, so making a third party app for a TV tuner is very hard.
First, you need to find out what kind of DVB chip / card this Android box has.
Then, you need to figure out how (on what kind of BUS) it is connected to the system.
If it is something generic, you may be able to talk to its driver, if not, you would need to write your own driver.
This is too complicated to explain in a SO post, but you could start by opening the box and looking at the components or by running commands like lsusb through ADB to try and identify the DVB component.
If the device already has a DVB app, you could try disassembling it, to find out how it works.
Good luck!

Android - Conflicting providers/authorities

I'm trying to install Kik Messenger twice. I have two accounts and don't like to log out because I lose all of my conversation history. I'm currently using Titanium backup's profile feature, which is a very nice fix, but it's still a pain having to switch back and forth between profiles. I might be looking for "perfect" when perfect doesn't exist. I am completely new to modding apks and Android in general, all of my work on this so far has been "trial and error". Anyways, here's what I have:
I have the Google Play version of Kik installed on my phone. I have extracted that app and modified the package name successfully using apktool. However, when I try to install, I get an error saying something about duplicate provider authority. So I did some research and learned that I'm supposed to edit this part of the AndroidManifest. So I have played around with that a little bit and after I change the authorities, I am able to install the modded app. However, it crashes immediately.
Does anyone know how to fix this problem with the provider/authorities?
The issue you're hitting is that the app has registered certain classes to handle particular events. These need to be unique across all installed apps and point to existing classes in the app that will perform some activity with the supplied information.
You bypassed the safety check when installing by changing the defined handlers in the Manifest but that didn't really fix it as they still need to actually point to a valid, working class that can handle the requests/events.
You would need to decompile, rename the classes involved and all references made to them and recompile the whole app to really fix the problem. However, I'd assume that it would likely be against the license. If the code is open source then it wouldn't be too big a task to rename some classes & packages then build the app. If it's closed source then it is a harder task.
What you can do is either set up your device to use multiple accounts (the OS not the app) as each user has a separate data storage and preference location that should allow you to have two configurations. Or you can request that the developers include some sort of multiple account handling or easy account swap feature.

Android: I lost my android key store, what should I do? [duplicate]

This question already has answers here:
I lost my .keystore file?
(12 answers)
Closed 9 years ago.
Based on my android keystore I created some apps. now, I want to update one of my programs but I lost my keystore. can I generate another one and update my app?
Thanks
You can create a new keystore, but the Android Market wont allow you to upload the apk as an update - worse still, if you try uploading the apk as a new app it will not allow it either as it knows there is a 'different' version of the same apk already in the market even if you delete your previous version from the market
Do your absolute best to find that keystore!!
When you find it, email it to yourself so you have a copy on your gmail that you can go and get in the case you loose it from your hard drive!
No, there is no chance to do that. You just learned how important a backup can be.
Brute Force is the only way!
Here is a script that helped me out:
https://code.google.com/p/android-keystore-password-recover/wiki/HowTo
Using a list of 5-10 possible words from memory, it recovered my password in <1 sec.
As everyone has said, you definitely need the key. There's no workaround for that. However, you might be surprised at how good the data recovery software can be, and how long the key may linger on your systems -- it's a tiny, tiny file, after all, and may not yet be overwritten. I was pleasantly surprised on both counts.
I develop on an OSX machine. I unintentionally deleted my app key around 6 weeks ago. When I tried to update, I realized my schoolboy error. I tried all the recovery tools I could find for OSX, but none could find the file -- not because it wasn't there, but because these tools are optimized to find the sorts of files the majority of users want back (photos, Word docs, etc.). They're definitely not looking for a 1KB file with an unusual file signature.
Now this next part is going to sound like a plug, but it isn't -- I don't have any connection to the developers:
The only recover tool I found that worked was one called Data Rescue by Prosoft Engineering (which I believe works for other files systems as well -- not just HFS+). It worked because it has a feature which allows you to train it to look for any file type -- even an Android key. You give it several examples. (I generated a few keys, filling in the data fields in as like manner as possible to the original). You then tell it to "deep search". If you're lucky, you'll get your key back in the "custom files" section.
For me, it was a life saver.
It's $100 to purchase, so it's not cheap, but it's worth it if you've got a mass of users and no further means of feeding them updates.
I believe they allow you 1 free file recovery in demo mode, but, unfortunately, in my case, I had several keys and could not tell which one was the one I needed without recovering them all (file names are not preserved on HFS+).
Try it first in demo mode, you may get lucky and be able to recover the key without paying anything.
May this message help someone. It's a sickening feeling, I know, but there may be relief.
If you lost a keystore file, don't create/update the new one with another set of value. First do the thorough search. Because it will overwrite the old one, so it will not match to your previous apk.
If you use eclipse most probably it will store in default path. For MAC (eclipse) it will be in your elispse installation path something like:
/Applications/eclipse/Eclipse.app/Contents/MacOS/
then your keystore file without any extension. You need root privilege to access this path (file).
I want to refine this a little bit because down-votes indicate to me that people don't understand that these suggestions are like "last hope" approach for someone who got into the state described in the question.
Check your console input history and/or ant scripts you have been using if you have them. Keep in mind that the console history will not be saved if you were promoted for password but if you entered it within for example signing command you can find it.
You mentioned you have a zip with a password in which your certificate file is stored, you could try just brute force opening that with many tools available.
People will say "Yea but what if you used strong password, you should bla,bla,bla..." Unfortunately in that case tough-luck. But people are people and they sometimes use simple passwords.
For you any tool that can provide dictionary attacks in which you can enter your own words and set them to some passwords you suspect might help you. Also if password is short enough with today CPUs even regular brute force guessing might work since your zip file does not have any limitation on number of guesses so you will not get blocked as if you tried to brute force some account on a website.

Categories

Resources