How to develop an application already included in the ROM - Android Q&A, Help & Troubleshooting

Hi all,
I'd like to modify the Gallery3D application , which is already included in my current rom (CM7 nightly), using eclipse and adb. However when trying to install the version I compiled, it fails.
There are two conflicts at least : the package name, and the providers.
I tried to freeze the ROM version with titanium backup, but it doesn't change anything.
The package name, I could change it in the source code (using sed utility, since eclipse was generating an exception with the Android tool to rename the package -_-)
But the providers, this is really annoying to have to change their names as well, it's a much more complicated operation, and I'd prefer to be able to use the source code as is.
So is there a simpler solution ?
I suppose I could try to remove Gallery3D from the ROM, but not sure how to do that. Or other possibilities ?

Ok found the solution : I simply had to remove the Gallery.apk file from /system/app

Related

[Q] (Solved?) Change DEFAULT Homepage on Cooked Rom

Ok, got a bit of a problem here... I need to change the default homepage of the browser in a Rom I'm cooking... that means the homepage you get after a full factory reset, not that you set in the menu.... Please don't tell me how to set it in the browser menu....
A bit of background... I'm using a leaked Rom to build from. It was leaked from a Tracfone "LG-L95G" which is identical in every way to the LG-P999 aka T-Mobile G2X. Everything is working 100%. The only problem left from the "porting" is removing Tracfone as the default browser homepage.
This has turned out to be harder than I expected.
What I have done:
Browser.apk - the xml lists Google as the homepage. The word "tracfone" appears NOWHERE in the entire structure of the decompiled xml or values or even in the smali code.
SystemUI & framework-res - I've seen suggestions the homepage hides here. Can't find anything suggesting a setting to "tracfone"
flexdb - I really thought I had it kicked here. /system/etc/flex.db listed m.tracfone.com as the homepage for T-Mobile US. I changed all occurrences here to about:blank. I have also tried simply copying the flex.db from a P999 itself. Ie, removed ALL references to tracfone service and made it identical to a P999 in every way.
Ran grep -R tracfone * on the entire ROM.
Dug through tons of files by hand looking for any clue.
Unfortunately, even with all of that, do a wipe, open the browser, and you GET M.TRACFONE.COM again!
The word "tracfone" does not appear in build.prop, it does not appear in any init scripts, not even in the kernel scripts! Yet it comes back like Christine...
Does anyone have a clue where I could look next? Or failing that, even some way from an init.d script that I can overwrite the setting myself?
EDIT
Okay, I hate giving myself clues like this, but maybe this will help others (if I'm on the right track)...
Instead of doing a grep on the ROM from my PC, pre-install, I decided to actually hit up the RUNNING copy... so from adb into a Bash prompt on the phone itself, I ran a grep -r tracfone * and got the following result:
Code:
data/data/com.android.browser/databases/browser.db:Web page not availablehttp://m.tracfone.com/
data/data/com.android.browser/shared_prefs/com.android.browser_preferences.xml:<string name="homepage">http://m.tracfone.com</string>
data/data/com.lge.providers.flex/databases/flex.db:M77BRW_SETTINGDB_CURRENT_HOME_URL_Ihttp://m.tracfone.comhttp://m.tracfone.comI#
data/data/com.lge.providers.flex/databases/flex.db:=77BRW_SETTINGDB_HOME_URL_Ihttp://m.tracfone.comhttp://m.tracfone.como"
data/data/com.lge.providers.flex/databases/flex.db:=;;DATACOM_ACCOUNT_MMSC_0_Ihttp://mms.tracfone.comhttp://[email protected]
data/data/com.lge.providers.flex/databases/flex.db:;%%DATACOM_ACCOUNT_APN_0_Iwap.tracfonewap.tracfone:?
data/data/com.lge.providers.flex/databases/flex.db:M77BRW_SETTINGDB_CURRENT_HOME_URL_Ihttp://m.tracfone.comhttp://m.tracfone.comI
data/data/com.lge.providers.flex/databases/flex.db:=77BRW_SETTINGDB_HOME_URL_Ihttp://m.tracfone.comhttp://m.tracfone.como
data/data/com.lge.providers.flex/databases/flex.db:=;;DATACOM_ACCOUNT_MMSC_0_Ihttp://mms.tracfone.comhttp://mms.tracfone.com6%
data/data/com.lge.providers.flex/databases/flex.db:;%%DATACOM_ACCOUNT_APN_0_Iwap.tracfonewap.tracfone:$
Which is very odd.... considering that is NOT the content of the actual flex.db that was flashed to the phone. That leads to 1 question: Why isn't the phone respecting the flex.db? I've noticed other edits to the file (such as bookmarks) do not apply either. So it is being ignored at somepoint. FlexProvider.apk maybe? Or is something in the ROM still identifying the phone to T-Mobile as an MVNO device and they're pushing out an OTA flex update?
EDIT 2:
AHA! There's a flex.db *INSIDE* the FlexProvider.apk file! So it *IS* ignoring the one placed in /system/etc/flex/! Editing this should solve it - but I'm going to test test test to make sure.
lotherius said:
Ok, got a bit of a problem here... I need to change the default homepage of the browser in a Rom I'm cooking... that means the homepage you get after a full factory reset, not that you set in the menu.... Please don't tell me how to set it in the browser menu....
Click to expand...
Click to collapse
firstly to say interesting question!!
but I think it it not possible to change programmatically default homepage
this is a system app so will be signed by your provider let us suppose you find homepage location in code (could by result of a script parsing) by modifying source of that apk package how to solve signature problem ?!
if in .db file ...this file is created after flashing as a result of script parsing
not framework-res.apk better browser-res.apk if you have one
ruscan.calin said:
firstly to say interesting question!!
but I think it it not possible to change programmatically default homepage
this is a system app so will be signed by your provider let us suppose you find homepage location in code (could by result of a script parsing) by modifying source of that apk package how to solve signature problem ?!
if in .db file ...this file is created after flashing as a result of script parsing
not framework-res.apk better browser-res.apk if you have one
Click to expand...
Click to collapse
man use a ... editor...I can show you for fifty bucks
I was just curious about this tricky change (from your post) so thinking about Google motto don't be bad finally I have found but should recognize that I am bad at this time
here is solution
Actually, you can use an sqlite editor to change the values in the flex.db file... the problem I was having in the OP is that on an LG phone (maybe others?) the flex.db file is ignored and the one inside FlexProvider is used instead, so you have to edit both. You can add new locales the same way. No need to use a hex editor, as that would be much more difficult.
lotherius said:
Actually, you can use an sqlite editor to change the values in the flex.db file... the problem I was having in the OP is that on an LG phone (maybe others?) the flex.db file is ignored and the one inside FlexProvider is used instead, so you have to edit both. You can add new locales the same way. No need to use a hex editor, as that would be much more difficult.
Click to expand...
Click to collapse
maybe you are right regarding your phone... but also I prepare a custom rom for Alcatel ot-908 also to change default homepage was a problem for me but I did and simply works !

[Q] apk decompiled, recompiled, signed won't install

Hello,
I'm trying to hack an apk.
My first step was to use apk multi tool, and to just decompile and recompile it.
This is what i've done:
decompiling
recompiling (without any mod)
signing
No error appears during those steps.
But this new apk won't install on my phone !
If I check difference between the two apk:
all xml files are differents
.RSA and .SF have not the same name
classes.dex, resources.arsc and manifest.mf are differents
I don't understand those difference. can somebody help me to understand that and how to recomile a proper version ?
PS: This app is a french app that shows speed cameras on the road. However this app is now only showing a big zone and not the exact location for france. But it stills show precise location for other countries, so obfuscation is done at the apk level, and I already found where it is in the code, so i'd like to bypass it and recompile a "special' version
Thanx
Just a few quick questions. Is you phone set to install from sources than Droid market? You do know the newly compiled and signed project will be located in the "place_package _here_ for_Modding" folder and is named "Signed(yourappnamehere).apk?
Sent from my SAMSUNG-SGH-I727 using xda premium
Hi,
yes, i took the newly compiled apk in this directory, and yes my phone is set accept unknown sources.
When i install the apk, i first have the
- liste of phones serviesc that will be used
- then the install progress bar
- then the message "application not installed"
I guess there is some kind of protection in the sources...
I also noticed that the two apk - original, and resigned one - don't have same size.
The only difference is actually in the META-INF directory : the .RSA and the .SF files.
In the original application they are:
- IFOX_.RSA
- IFOX_.SF
But when recompiling, those files are:
- CERT.RSA
- CERT.SF
I'm shure the problem comes from here, but i'm too noob to analyse that...
So my proble can be sum-up by:
Why the recompilation doesn not give me the same RSA and SF file ??
Beware there are some modifications that you cant do on decs, expecially the packagename.
also beware to disable the "non-market" tag on the phone.
Yes, but for the moment i didn't make any modification:
Just decompiling, recompiling and resigning.
Maybe you want to tell that the apk name must stay the same ? (sorry my english is not perfect )
GOT IT WORKED !!!
You must first uninstall the previous application !
I was trying to install my new one over the old one, but the signatures are not the same !!!
Thanx everybody, and hope this will help somebody !
APK edit error 103
Ok im having a similar issue.
I know the file size is mismatched but ive never had this issue
as a test i only modded 1 thing but 4 files
changed a link in an html / changed an image and its name and the html included the link to the new name
when this failed i changed the manifest and the .sf to match the change i made with name but not the sha :"no clue here"
Tried...
APK multi tool ... and 7zip to make the mods
Tried... Bothsigned and unsigned.
Tried copying the sig from old apk to new with names corrected "notsha" fail still
Tried....
Origional APK installs no issue
Uninstall orig apk rebooted
Allow out side apps yes and no.both
using file manager explorer and root browser and es file manager
Copying directly to /system/app fail
copying to data/data/app/copy fail " yes it wont even copy to there"
Tried.. Multiple phones
I then tried a hex editor on the apk. And after changes install still fail.
I modded several other apk's even my framework but this is the first app that ha given me so many issues
This is an app to help elderly users access internet and the devs are AWOL and the project abandoned
Code:
https drive google com/folderview?id=0B5PggxVy7c8meDhrcjNJOGs5cFk&usp=sharing
Code:
www eldy eu/en/software/eldy-tablet/‎
"edited for posting "
The goal here is to make it more U.S. friendly its English base is geared to English UK and this does not help my family as we are in the U.S.
All i can get from logcat is error 103
Logcat shows package it.vegans.eldy has no certificate at entry AndroidManifest.xml ignoring
Knstallation error code 103
I tried apk multitool certify thing
i tried copying the certs from old to new apk
i tried modding the cert to correct names
So maybe im mentally challenged but i just cant figure this one out
---
Edit .
I attached a zip with original and modified apk's
All i want to do is simple html edits xml link edits and img changes since mostly the app is a series of pages.

[Q] Removing unwanted applications from rom

The cookers of roms are by default including bunch of applications to ROM which i dont want to have and each time flash new version i need to manually remove them (like all google applications which takes quite a while and i am quite successfull at missing some). The rom is a zip file so i could make a program to kick apks out of rom automatically and repack it which isnt much of work to do but i am worried if such rom would still work. There is also a second problem, the digital signature which from expirience produces the yellow warning triangle at boot, i dont have problem with creating my own public/private keys and signing the rom but again i have no clue where the signature should be and where to register a private key (or maybe the samsung one is known?).
Is there some document on this topic or someone is prepared to help me out?
takes 20-30 seconds to open titanium and do a batch uninstall of the apps you dont need
Hmm... i dont use it but i will try, although i would still rather do a batch remove of all unwanted applications on my own before they even get installed. And adding a new application to install first also wouldnt be a bad idea (LBE privacy guard)
You can just extract the rom zip and from that delete the apks you dont want from the System --> App folders or Data --> App folders if there is anything in there. You could also use this 'opportunity' to choose which Kernel and Modem etc you wanted if you plan on changing / flashing different ones later. Re-zip and flash!
I will say this though, in the past i've done this and for some reason certain apps that I left in the zipped rom didn't install, no biggy though
Ok, this was the answer i was searching for. One more thing, what to do with digital signature?
Custom rom .
Open with Win Rar do not extract.
Open System Open Apps
Delete whatever you dont want and is safe to do so .
Close Win Rar and flash rom .
jje
Hmm, i am just playing with one thought, if the android is tied to apk extension for installing, the changing of zip header (actually from historical reasons it is footer ) to rename the apk to ap_ for unwanted application would acctually kill it from installing without ever unpacking it... and the code is actually even more trivial, search and replace...

[Q] Proper way to remove a package from source?

Hello all,
I am working on a custom CyanogenMod ROM (10.2) for my own use. I've managed to accomplish most of my goals. One thing remains: removing packages that I don't want/need from the build. Technically, I am able to do so already by modifying the Android.mk file of the package so that it produces errors during the build procedure, skips building the package, but doesn't stop the entire build process. However, that is just a lousy hack.
Can anyone point me to the correct .mk/.sh/.whatever files in the repository I would need to edit (there are probably several) so that I can skip building the packages I don't want included in my ROM? I want to avoid using a "kitchen" if I can. I won't actually learn anything if I use a kitchen.
Files to look at
After laboriously looking through the repository, I came accross several files/directories you may need to look through/edit to remove packages from the build:
This directory (replace cm102 with your path to your Cyanogen repo):
/cm102/vendor/cm/config
This file:
/cm102/android/cm-10.2-M1.xml (<- This is a long file, dig through it. I edited this to help me remove some prepackaged live wallpapers, but there is a lot more in here.)
Device specific CM makefile that may specify additional packages to include (replace the all caps with whatever seems logical in your directory at each step):
/cm102/device/YOUR_MANUFACTURER/CODENAME-COMMON/CODENAME-COMMON.mk

Made a ROM. Now what...

I built a rom for my device based on lineage oreo. So far it looks good. I want to do the following things and not sure how to achieve this, will keep working on it, but any tips are appreciated.
1. change the name etc of the ROM. Different generated name for the rom zip file. different name in settings->About phone after the install.
2. Add an existing apk to the code base so that its automatically installed. How do I make it removable (pre installed app, can be removed) or not-removable (pre installed app, can't be deleted.
3. Add sources for an apk to the code base so that it gets compiled and installed. Same question with removable/non-removable. I tried this with f-droid sources. Added a line for this to the local manifests. Sources get downloaded, but dont get compiled. I added a line for this to the PRODUCT_PACKAGES in common.mk (for the vendor tree) but I dont see anything related to f-droid in the build log or the out folder related to f-droid. App does not get installed on the phone.
4. Change settings for an app. i guess this would require modifying the contents of some file where the settings are stored. Is there a concept of a post install script where it can be taken care of.
Thats all I can think of now, more later. Thanx guys..

Categories

Resources