I am sure this information can be found in some forum on XDA with adequate searching, but who wants to do that? Read on.
Many here do not want to set default access in SuperSU to "Grant." For the Fire devices, setting it to "Prompt" has the same effect as "Deny." Manually changing the default from "Prompt" to "Grant" whenever an app needs access isn't a great solution either. Here's how you can configure per-app access in SuperSU using its preferences file:
-- Edit /data/data/eu.chainfire.supersu/shared_prefs/eu.chainfire.supersu_preferences.xml in this manner:
Code:
<string name="config_com.keramidas.TitaniumBackup_access">grant</string>
This will tell SuperSU to grant permanent root access to, in this example, Titanium Backup.
You will have to add such a line for every app that needs root access. If you do this, all the permitted apps should now show up in the Apps tab in SuperSU. You can then set default access to "Prompt" or "Deny" in SuperSU.
Here's what I have in my current preferences file:
Code:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="config_default_notify" value="true" />
<int name="shown_follow" value="1" />
<boolean name="freeload" value="false" />
<string name="config_default_log">access</string>
<boolean name="tapjack" value="true" />
<boolean name="config_default_enablemultiuser" value="false" />
<string name="config_default_access">prompt</string>
<string name="locale"></string>
<boolean name="refresh" value="true" />
<boolean name="config_default_enableduringboot" value="false" />
<string name="config_default_logformat">31122359</string>
<boolean name="config_default_enablemountnamespaceseparation" value="true" />
<boolean name="superuser" value="true" />
<string name="theme">material_dark</string>
<boolean name="reauthenticate" value="true" />
<string name="config_default_logage">14</string>
<boolean name="config_default_trustsystem" value="false" />
<string name="config_default_wait">10</string>
<string name="config_com.speedsoftware.rootexplorer_access">grant</string>
<string name="config_jackpal.androidterm_access">grant</string>
<string name="config_eu.chainfire.flash_access">grant</string>
<string name="config_eu.thedarken.sdm_access">grant</string>
<string name="config_org.adaway_access">grant</string>
<string name="config_in.co.pricealert.apps2sd_access">grant</string>
<string name="config_com.dp.sysmonitor.app_access">grant</string>
<string name="config_com.jrummy.liberty.toolbox_access">grant</string>
<string name="config_com.k2.backup_access">grant</string>
<string name="config_com.seasmind.android.gmappmgr_access">grant</string>
<string name="config_ru.littlevictor.powermenu_access">grant</string>
<string name="config_com.keramidas.TitaniumBackup_access">grant</string>
<string name="config_com.buak.Link2SD_access">grant</string>
<string name="config_de.robv.android.xposed.installer_access">grant</string>
<string name="config_ADB shell_access">grant</string>
</map>
This, while cumbersome at times is the much more secure solution.
Thank you @retyre. I've always depended on your help and your guides when it comes to the Fire HD. Thanks for finding this and sharing it with us.
retyre said:
I am sure this information can be found in some forum on XDA with adequate searching, but who wants to do that? Read on.
Many here do not want to set default access in SuperSU to "Grant." For the Fire devices, setting it to "Prompt" has the same effect as "Deny." Manually changing the default from "Prompt" to "Grant" whenever an app needs access isn't a great solution either. Here's how you can configure per-app access in SuperSU using its preferences file:
-- Edit /data/data/eu.chainfire.supersu/shared_prefs/eu.chainfire.supersu_preferences.xml in this manner:
Code:
<string name="config_com.keramidas.TitaniumBackup_access">grant</string>
This will tell SuperSU to grant permanent root access to, in this example, Titanium Backup.
You will have to add such a line for every app that needs root access. If you do this, all the permitted apps should now show up in the Apps tab in SuperSU. You can then set default access to "Prompt" or "Deny" in SuperSU.
Here's what I have in my current preferences file:
Code:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<boolean name="config_default_notify" value="true" />
<int name="shown_follow" value="1" />
<boolean name="freeload" value="false" />
<string name="config_default_log">access</string>
<boolean name="tapjack" value="true" />
<boolean name="config_default_enablemultiuser" value="false" />
<string name="config_default_access">prompt</string>
<string name="locale"></string>
<boolean name="refresh" value="true" />
<boolean name="config_default_enableduringboot" value="false" />
<string name="config_default_logformat">31122359</string>
<boolean name="config_default_enablemountnamespaceseparation" value="true" />
<boolean name="superuser" value="true" />
<string name="theme">material_dark</string>
<boolean name="reauthenticate" value="true" />
<string name="config_default_logage">14</string>
<boolean name="config_default_trustsystem" value="false" />
<string name="config_default_wait">10</string>
<string name="config_com.speedsoftware.rootexplorer_access">grant</string>
<string name="config_jackpal.androidterm_access">grant</string>
<string name="config_eu.chainfire.flash_access">grant</string>
<string name="config_eu.thedarken.sdm_access">grant</string>
<string name="config_org.adaway_access">grant</string>
<string name="config_in.co.pricealert.apps2sd_access">grant</string>
<string name="config_com.dp.sysmonitor.app_access">grant</string>
<string name="config_com.jrummy.liberty.toolbox_access">grant</string>
<string name="config_com.k2.backup_access">grant</string>
<string name="config_com.seasmind.android.gmappmgr_access">grant</string>
<string name="config_ru.littlevictor.powermenu_access">grant</string>
<string name="config_com.keramidas.TitaniumBackup_access">grant</string>
<string name="config_com.buak.Link2SD_access">grant</string>
<string name="config_de.robv.android.xposed.installer_access">grant</string>
<string name="config_ADB shell_access">grant</string>
</map>
Click to expand...
Click to collapse
Many thanks for this. Just tried and works as advertised. Much better thank blanket granting su access!
Adaway
Thanks for the post. Nice workaround for this issue. I added the Adaway entry but it keeps removing itself from the xml file.
All other entries work great. Not sure what is going on with this. Thanks again.
Thank you for posting this solution. It's worked fine so far for me, except for granting root access for AFWall+, I added <string name="config_dev.ukanth.ufirewall_access">grant</string> to the preferences file, but AFWall+ doesn't show up in SuperSU's Apps tab.
Edit: AFWall+ showed up after rebooting.
This is pretty sweet. I've got it all running, but I have a few questions.
1. On my pixel phone, it has Adaway and Adaway [UID] in the grant list. What is the UID? It also has SuperSu [UID] in the grant list and wondering if that is different?
2. I notice the silently denied entry in the xml file. Any way to use that so that whenever supersu denies a request for root, it gives me a notification or something?
3. I notice you have sdmaid added. Have you gotten SD maid to do any root functions, like freeze another app, turn receivers on and off, etc? Its still not doing anything with root for me, and gives an error in the SuperSu log about the libs not being x64 or something.
4. Here's my xml file (below), it's apps that i sometimes install and i will just have them in supersu grant list so that when i install the app i don't have to mess with the xml file. Does anyone see anything in the other settings that maybe I should change?
I also have a couple tips to share:
1. force close supersu after changing the xml file. then restart supersu. That way, you don't have to reboot.
2. If you don't see your apps *icon* on the grant list, you either don't have the app installed or you made a typo in the package name or formatting. This holds true for every app I've done except for ADB shell - that one does not have an icon.
Code:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<set name="silently_denied_requests" />
<int name="shown_follow" value="1" />
<boolean name="config_default_notify" value="false" />
<int name="last_boot_version" value="282" />
<string name="config_default_log">content</string>
<boolean name="freeload" value="true" />
<string name="icon">material</string>
<boolean name="tapjack" value="false" />
<boolean name="config_default_enablemultiuser" value="false" />
<string name="config_default_access">prompt</string>
<boolean name="refresh" value="true" />
<string name="locale"></string>
<boolean name="config_default_enableduringboot" value="true" />
<boolean name="shown_backup" value="true" />
<string name="config_default_logformat">31122359</string>
<boolean name="superuser" value="true" />
<boolean name="config_default_enablemountnamespaceseparation" value="false" />
<string name="theme">dark</string>
<boolean name="reauthenticate" value="false" />
<boolean name="config_default_trustsystem" value="true" />
<string name="config_default_logage">3</string>
<string name="config_default_wait">10</string>
<string name="config_com.speedsoftware.rootexplorer_access">grant</string>
<string name="config_jackpal.androidterm_access">grant</string>
<string name="config_eu.chainfire.flash_access">grant</string>
<string name="config_eu.thedarken.sdm_access">grant</string>
<string name="config_org.adaway_access">grant</string>
<string name="config_in.co.pricealert.apps2sd.pro_access">grant</string>
<string name="config_com.dp.sysmonitor.app_access">grant</string>
<string name="config_com.jrummy.liberty.toolboxpro_access">grant</string>
<string name="config_com.k2.backup_access">grant</string>
<string name="config_com.seasmind.android.gmappmgr_access">grant</string>
<string name="config_com.antaresone.quickrebootpro_access">grant</string>
<string name="config_com.keramidas.TitaniumBackup_access">grant</string>
<string name="config_com.buak.Link2SD_access">grant</string>
<string name="config_de.robv.android.xposed.installer_access">grant</string>
<string name="config_ADB shell_access">grant</string>
<string name="config_me.kuder.diskinfo.pro_access">grant</string>
<string name="config_com.google.android.diskusage_access">grant</string>
<string name="config_org.freeandroidtools.root_checker_pro_access">grant</string>
<string name="config_nl.leonardsimonse.softreboot_access">grant</string>
<string name="config_org.fdroid.fdroid_access">grant</string>
<string name="config_flar2.exkernelmanager_access">grant</string>
<string name="config_com.grarak.kerneladiutor_access">grant</string>
<string name="config_com.swapit.expander.de_access">grant</string>
<string name="config_com.jumobile.manager.systemapp_access">grant</string>
<string name="config_eu.chainfire.supersu_access">grant</string>
<string name="config_stericson.busybox.donate_access">grant</string>
</map>
mistermojorizin said:
... I have a few questions.
Click to expand...
Click to collapse
1. Every app has a User ID. If you delete the non-UID entry, does everything work as expected? Some discussion of the duplicates issue is here.
2. I think that option is for apps that are in the "deny" list. SuperSU doesn't even prompt for access, so I doubt it will notify you when access is denied.
3. No, it does not (I remember reading something on GitHub from the app developer about the root features being ROM dependent). I use it for its primary purpose (cleaning). Why aren't you using ROM Toolbox to freeze apps and disable receivers?
4. Why do you want to grant su access to apps you haven't installed yet? Leave them at "Prompt" and change to "Grant" from the SuperSU Apps tab as needed. Since these entries are already in your preferences file, you don't have to mess with that file to do this.
Thanks for the info. In response to this, I dont use it for freezing, but I use the freezing ability as a gauge of whether it's actually able to use root at all (because if it's not, why add it to supersu?) and also for compatibility purposes (there might be other apps that won't be compatible if this one isn't compatible).
retyre said:
3. No, it does not (I remember reading something on GitHub from the app developer about the root features being ROM dependent). I use it for its primary purpose (cleaning). Why aren't you using ROM Toolbox to freeze apps and disable receivers?
.
Click to expand...
Click to collapse
Working
I just wanted to say that this method indeed works and it works very well. However, you need to be careful and patient when you try this. I gave up on it the first time I tried it because it didn't seem to work, but when I tried it again and few days later with a bit more diligence it worked beautifully. Some commonsensical suggestions:
1- Make an original backup of the XML file for faster editing in case you mess up the first time.
2- Start with setting the access to "grant" in the superSu app before you edit the XML.
3- Add your entries to the XML and be careful with the syntax especially with config_ and _access before and after the package names.
4- Before closing the XML change the default access to "deny" on the line that says: <string name="config_default_access">grant</string>
5- Reboot and check that your apps work and other su requests are rejected (for example, make sure a root checker program shows your device is unrooted). If that doesn't happen check the XML to make sure your additions are still there, and make sure they are listed under the Apps tab in superSu with access set to grant (with a green hash sign next to them). A few reboots, closing all apps, and some waiting may be needed, but eventually it will work.
6- If it doesn't work start over and follow the steps more carefully. It will eventually work...
"I am sure this information can be found in some forum on XDA with adequate searching, but who wants to do that?"
I WANT to do it, but searching here is a terrible, unrewarding process!
Given the many new posts about SuperSU not prompting, might this be a good time to bump this? Bump first, think later.
I wish someone can write a little app for this
This is working.
1. After forced stop, the App tab will show the new app added without reboot. However, the new app does not take effect until reboot.
2. Any app not yet installed will disappear from the list after reboot.
Can SuperSU 2.7.9 be upgraded to Pro Version in order to get the grant access prompt?
thanks for the guide but how do I find the correct app name that I need to enter?
Hello
Thank you for this useful thread
How can I get the list of applications name ?
(for ex can't get ADB shell when I use pm list packages )
ex :
<string name="config_ADB shell_access">grant</string>
but I can only get this from 'pm list packages' as shell :
package:com.android.shell
How to find the correct APP name to enter
9000RPM said:
thanks for the guide but how do I find the correct app name that I need to enter?
Click to expand...
Click to collapse
After you gain root, the APP name you need to enter is the "FOLDER NAME" of the APP in the /data/data/
directory of your Fire device.
You need a file manager with root access, such as FX, to navigate to the /data/data/ folder in order to find out the correct "FOLDER NAME".
For example, the app "Link2SD" has a folder name :
/data/data/com.buak.Link2SD/
So one enters :
<string name="config_com.buak.Link2SD_access">grant</string>
FOLOL2011 said:
Hello
Thank you for this useful thread
How can I get the list of applications name ?
(for ex can't get ADB shell when I use pm list packages )
ex :
<string name="config_ADB shell_access">grant</string>
but I can only get this from 'pm list packages' as shell :
package:com.android.shell
Click to expand...
Click to collapse
Sometimes the application name is not embedded in the package name. So there are many apps that will show you what you want. An example in the Play Store is "my app list".
sga999 said:
Sometimes the application name is not embedded in the package name. So there are many apps that will show you what you want. An example in the Play Store is "my app list".
Click to expand...
Click to collapse
Thank you! Very useful app
Related
EDIT 31aug2012: also this message appears if there is no "classes.dex" in the apk
Hi,
When you try to install certain apk you might get this error when using "adb install something.apk"
Andoid creates "shared users" like app_1 app_3 etc for packages you install. These UID's are like 10001, 10002, 10003 etc.
Sometimes the administration of these shared users gets messed up and you get error messages like:
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
The shared user administration is kept in /data/system:
-rw-rw-r-- system system 129933 2011-08-15 12:08 packages.xml
How to solve? You need a rooted phone and adb:
adb shell chmod 666 /data/system/packages.xml
adb pull /data/system/packages.xml
Now edit (notepad++) and remove the shared user in question xml block from the file:
Code:
<shared-user name="com.navngo" userId="10000">
<sigs count="1">
<cert index="4" />
</sigs>
<perms>
<item name="android.permission.READ_PHONE_STATE" />
<item name="android.permission.DISABLE_KEYGUARD" />
<item name="android.permission.INTERNET" />
<item name="android.permission.WRITE_EXTERNAL_STORAGE" />
<item name="android.permission.ACCESS_FINE_LOCATION" />
<item name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<item name="android.permission.ACCESS_COARSE_LOCATION" />
<item name="android.permission.READ_CONTACTS" />
<item name="android.permission.WRITE_CONTACTS" />
<item name="android.permission.ACCESS_NETWORK_STATE" />
<item name="android.permission.WAKE_LOCK" />
<item name="android.permission.MODIFY_AUDIO_SETTINGS" />
</perms>
</shared-user>
adb push packages.xml /data/system
adb shell rm /data/dalvik-cache/*
adb reboot
Now you should be able to install that apk.
Cheers
This problem might also be solved using ad uninstall command. (only for user apps)
Lets keep the same program as above as an example the you type from a dos box:
adb uninstall com.navngo.igo.javaclient
Now install it again. You need to know the package name. You can open the apk with winrar/zip and view the AndroidManifest.xml file. There you see the package name.
Cheers
thanks
thanks,
that's helped me to install new dolphin browser on mine superpad tablet pc
Hi,
I want to use android:sharedUserId="android.uid.system"
Then I get this error: Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
I removed the system uid following this procedure
It didn't work though
How to use system level privilege? I am working with hardware video codec, without system privilege. I am facing the same problem here : developer.nvidia.com/archived-tegra-forums/forum/android-how-call-libpvnvomxso-successfully
Any suggestion/idea would be welcome
The deleted "android.uid.system" in packages.xml comes back after reboot.
Hi,
I followed the instructions to remove section of android.uid.system in packages.xml. But after reboot, I felt that this file was re-generated and overwritten by system itself. I still can't install my app due to the same incompatible error.
Any help? Thanks!
Comment out shared-user name="android.uid.shared" xml block
mylifeisjourney said:
Hi,
I followed the instructions to remove section of android.uid.system in packages.xml. But after reboot, I felt that this file was re-generated and overwritten by system itself. I still can't install my app due to the same incompatible error.
Any help? Thanks!
Click to expand...
Click to collapse
Hi,
It worked for me... All you want to do is just comment out the block of XML elements under <shared-user name="android.uid.shared" userId="10012">
Note: I have "Su" permission in my Device.
This is is how i did
<!-- <shared-user name="android.uid.shared" userId="10012">
<sigs count="1">
<cert index="3" />
</sigs>
<perms>
<item name="android.permission.USE_CREDENTIALS" />
<item name="com.google.android.googleapps.permission.GOOGLE_AUTH.mail" />
<item name="android.permission.WRITE_EXTERNAL_STORAGE" />
<item name="com.google.android.googleapps.permission.GOOGLE_AUTH.cp" />
<item name="android.permission.GET_ACCOUNTS" />
<item name="android.permission.READ_CONTACTS" />
<item name="android.permission.WRITE_CONTACTS" />
<item name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
<item name="android.permission.READ_SYNC_STATS" />
<item name="android.permission.READ_PHONE_STATE" />
<item name="android.permission.READ_SMS" />
<item name="android.permission.MODIFY_PHONE_STATE" />
<item name="android.permission.WRITE_SETTINGS" />
<item name="android.permission.INTERNET" />
<item name="android.permission.SUBSCRIBED_FEEDS_READ" />
<item name="android.permission.VIBRATE" />
<item name="android.permission.SUBSCRIBED_FEEDS_WRITE" />
<item name="android.permission.WAKE_LOCK" />
<item name="android.permission.CALL_PRIVILEGED" />
</perms>
</shared-user> -->
mylifeisjourney said:
Hi,
I followed the instructions to remove section of android.uid.system in packages.xml. But after reboot, I felt that this file was re-generated and overwritten by system itself. I still can't install my app due to the same incompatible error.
Any help? Thanks!
Click to expand...
Click to collapse
same here, after I change the file and reboot it restore the line
no one?
android.uid.system (id 1000) is used for installing packages and I think this trick only works for 10.000 and higher id's.
Use google to find out more about the problem: https://www.google.com/search?num=40&hl=en&q=android.uid.system
Cheers
never mind
Okey, I did a small research to find out why my app was force closing everytime after I removed android:sharedUserId="android.uid.system" from AndroidManifest.xml.
It turned out that it doesn't have permission to force stop packages(it's a system monitor).
I have checked the androidmanifest.xml and everything looks correct to me. When installing, only wake lock and internet permissions are granted. I have attached the txt file... I hope somebody can help me out of here.
Thanks man This helped. A lot.
install failed shared user incompatible
Hi,
I have decompiled an APK using apktool. And changed one file "stings.xml" The language was in Chines and I just replaced all Chines text with English. Now I recompiled that APK using apktool. Then I signed that APK with JARSIGNER. Then I zipaligned the APK.
Even after that I was geeting "install failed shared user incompatible".
Then I used method told in this thread. But still having the same problem.
These are starting line of Menifist.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest android:sharedUserId="android.uid.system" android:versionCode="1" android:versionName="1.0" package="com.android.ktcit"
xmlns:android="http://schemas.android.com/apk/res/android">
<application android:label="@string/app_name" android:icon="@drawable/icon" android:name="KTCITApp">
<receiver android:label="@string/app_name" android:name=".KTCITBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
Could anyone help me out?
LLegend thanks a ton buds... helped me fix gmaps
It's the 1st time I encounter such problem. Fortunately got your solution . Thank you!
not worked for me
installing google calendar on i9100 4.0.4 simplistic V i have error
"incompatible wit other apps using same user id"
Hi, all. I'm desperately trying to understand what's going on here, but my programming/coding skills are nil. I've run into a shared user ID error with Google Calendar... How exactly would I use this technique to fix that?
Same here, can anyone please explain what should I do in simple words? I have this same problem and i'll be glad if you explain what is adb and those other comands, I have rooted tablet
Plz?...........
I was thinking that I could simply make the edit on boot, but it seems to regenerate every time an attempt is made to install. Everything can be hacked, there must be a way
This is a tutorial about how to download and compile specific parts in aosp based roms (such as CM10)
Written for AOSP noobs like me a year ago.
Note: I wrote this tutorial actually for my blog, as a beginners repo/compile tut, but why not share here
Introduction:
Downloading rom sources is done with the tool “repo”, this is the most awesome downloader in existence. Not only it looks very cool, it also reaches top speed at all times. But it’s only for linux (which is good since when you are busy with aosp roms you should be on linux)
Why is it awesome? Since you decide yourself how many jobs (aka connections) you make with the server. This means you always will get top speed, there is probably no faster download method available on the Internet (except for speedtests, but they don’t count). Next to the downloading of specific parts it’s of course also handy to know how to actually compile them.
Download:
The easiest way of fetching for example a batch of AOSP apps is like this:
1. Choose the desired tag you want to use, in the example I will use android-4.2.2_r1
2. Now make a dir somewhere:
Code:
- mkdir ~/aosp-apps
- cd ~/aosp-apps
3. Download repo when not installed yet:
Code:
- curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
- chmod a+x ~/bin/repo
4. Enter the line that will download the initial manifest.
for AOSP:
Code:
- repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1
Enter your name and email address and wait until it completes
for CM
Code:
- repo init -u https://github.com/Cyanogenmod/android -b cm-10.1
5. Go in the hidden “.repo” dir and change the manifest
Code:
- cd .repo
- gedit manifest.xml (if you don’t have decent text editor such as “gedit”, install it! “sudo apt-get install gedit”
)
For example when you only want to download the apps, just remove all lines that are not app related. simple as that:
Code:
<?xml version=”1.0″ encoding=”UTF-8″?>
<manifest>
<remote name=”aosp”
fetch=”..” />
<default revision=”refs/tags/android-4.2.2_r1″
remote=”aosp”
sync-j=”4″ />
<project path=”packages/apps/BasicSmsReceiver” name=”platform/packages/apps/BasicSmsReceiver” />
<project path=”packages/apps/Bluetooth” name=”platform/packages/apps/Bluetooth” />
<project path=”packages/apps/Browser” name=”platform/packages/apps/Browser” />
<project path=”packages/apps/Calculator” name=”platform/packages/apps/Calculator” />
<project path=”packages/apps/Calendar” name=”platform/packages/apps/Calendar” />
<project path=”packages/apps/Camera” name=”platform/packages/apps/Camera” />
<project path=”packages/apps/CellBroadcastReceiver” name=”platform/packages/apps/CellBroadcastReceiver” />
<project path=”packages/apps/CertInstaller” name=”platform/packages/apps/CertInstaller” />
<project path=”packages/apps/Contacts” name=”platform/packages/apps/Contacts” />
<project path=”packages/apps/DeskClock” name=”platform/packages/apps/DeskClock” />
<project path=”packages/apps/Email” name=”platform/packages/apps/Email” />
<project path=”packages/apps/Exchange” name=”platform/packages/apps/Exchange” />
<project path=”packages/apps/Gallery” name=”platform/packages/apps/Gallery” />
<project path=”packages/apps/Gallery2″ name=”platform/packages/apps/Gallery2″ />
<project path=”packages/apps/HTMLViewer” name=”platform/packages/apps/HTMLViewer” />
<project path=”packages/apps/KeyChain” name=”platform/packages/apps/KeyChain” />
<project path=”packages/apps/Launcher2″ name=”platform/packages/apps/Launcher2″ />
<project path=”packages/apps/LegacyCamera” name=”platform/packages/apps/LegacyCamera” />
<project path=”packages/apps/Mms” name=”platform/packages/apps/Mms” />
<project path=”packages/apps/Music” name=”platform/packages/apps/Music” />
<project path=”packages/apps/MusicFX” name=”platform/packages/apps/MusicFX” />
<project path=”packages/apps/Nfc” name=”platform/packages/apps/Nfc” />
<project path=”packages/apps/PackageInstaller” name=”platform/packages/apps/PackageInstaller” />
<project path=”packages/apps/Phone” name=”platform/packages/apps/Phone” />
<project path=”packages/apps/Protips” name=”platform/packages/apps/Protips” />
<project path=”packages/apps/Provision” name=”platform/packages/apps/Provision” />
<project path=”packages/apps/QuickSearchBox” name=”platform/packages/apps/QuickSearchBox” />
<project path=”packages/apps/Settings” name=”platform/packages/apps/Settings” />
<project path=”packages/apps/SoundRecorder” name=”platform/packages/apps/SoundRecorder” />
<project path=”packages/apps/SpareParts” name=”platform/packages/apps/SpareParts” />
<project path=”packages/apps/SpeechRecorder” name=”platform/packages/apps/SpeechRecorder” />
<project path=”packages/apps/Stk” name=”platform/packages/apps/Stk” />
<project path=”packages/apps/Tag” name=”platform/packages/apps/Tag” />
<project path=”packages/apps/VideoEditor” name=”platform/packages/apps/VideoEditor” />
<project path=”packages/apps/VoiceDialer” name=”platform/packages/apps/VoiceDialer” />
</manifest>
When done, save it and go a dir back in the terminal
Code:
- cd ..
6. Download the packages
Code:
- repo sync -j16 (-j16 stands for 16 jobs max. This is for around a 100mbit line)
(With my 60mb/s connection I get max speed 7.2mb/s at -j8)
The packages will be download as quickly as possible to your harddrive now.
Compile:
To compile the obtained packages separately you will need a AOSP environment (or CM/AOKP etc). When you have a succesfull environment which is able to compile for your device you may enter:
Code:
- source build/envsetup.sh
- lunch (now choose your device, for example, full_ariesve-userdebug)
- now you’re theoretically ready to compile
to compile an app on the easiest way:
Code:
- make Appname -j8
where “Appname” is the name of the folder placed in packages/apps/..
This also counts for “SystemUI” which is not in that folder.
Code:
- make Calculator -j8 (for example)
And the -j param again stands for the number of jobs, remember that this is compiling and not downloading, so the “standard rule” with this is, number of cores of your CPU + 1.
Which makes a regular quad core (-j5) but makes a i7 CPU with Hyper threading (-j9). When using -j16 for example there could be moments that your cpu will be overloaded so much that your mouse will lag all over the place.
(Linux forces the cpu to perform higher then it actually should, resulting in a very strange fan sound in my case)
When having trouble, when it stops or just nags about some useless stuff.
You should try using the “-k” param, this tells the make command to keep going when a non-critical error occurs.
Code:
- make Calculator -k -j8
When having issues with the local module tags, you should enter this:
Code:
- make Calculator -k LOCAL_MODULE_TAGS=optional -j8
To compile other parts you also need to enter the folder name, here are some examples from /frameworks/base
Code:
- make policy (the power menu and lockscreen)
- make framework (the initial framework files)
- make framework-res (the initial framework resources)
- make services (the services.jar file)
or more examples:
Code:
- make sdk (builds the android sdk)
- make modules (builds all modules)
- make installclean (removes all staging directories, such as out/target/product/boardname/system)
- make clean (removes the whole /out directory)
:silly:
another amazing tutorial made by you.. THANKS !!
This is huge! Thanks brood!
Laurentyu1995 said:
another amazing tutorial made by you.. THANKS !!
Click to expand...
Click to collapse
You're welcome, I will keep em comming
educk said:
This is huge! Thanks brood!
Click to expand...
Click to collapse
Thanks, and you're welcome
o, btw, added link to aosp tags and removed links in code
broodplank1337 said:
You're welcome, I will keep em comming
Thanks, and you're welcome
o, btw, added link to aosp tags and removed links in code
Click to expand...
Click to collapse
Great job !! Might want to clean it up and fix up the few mistakes. Also, not sure if you did it on purpose or not but you gave the 4.2 branch of AOSP and 4.1 of CM. Other than that, great guide brood!!
Xistance said:
Great job !! Might want to clean it up and fix up the few mistakes. Also, not sure if you did it on purpose or not but you gave the 4.2 branch of AOSP and 4.1 of CM. Other than that, great guide brood!!
Click to expand...
Click to collapse
Thanks . the actual tutorial (on my site) only includes the AOSP example, I added the CM example here but didn't thought about making them match versions, however, I will change it ^^.
Hi,
Is there any way to add/update a configuration xml file to an app already installed on an Android 4.2+ device?
The purpose of this would be to eliminate the setup process for technologically impaired users.
Case in point: an application through which the user can send data over wifi/3g to an IIS server, the user will have to configure the server address/location, username and password (which is generally void if it's not requested otherwise), the location of the actual data file that must be synced.
All i want to do is eliminate the part where the user has to set-up anything else but his username.
The configuration file is located in </Data/Data/application.name/files> and it's called application.config.xml
Could it be added in an apk which will act as an update?
The devices will not be rooted and the config.xml file will be different (different servers), depending on the users' location so it can't be hardcoded in the sync application.
This is the actual content of the .xml file once the settings have been made, the sync app generates a blank config.xml file during the installation.
Code:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="ClientLocation" value="/storage/emulated/0/clientapp_00" />
<add key="Username" value="User Name" />
<add key="Password" value="d41d8cd98f00b204e9800998ecf8427e" />
<add key="ServerLocation" value="Http://192.168.0.101:55541/server/sync.aspx" />
<add key="Compression" value="True" />
<add key="ServerConnections" value="Sync Serv,Http://192.168.0.101:55541/server/sync.aspx" />
<add key="Language" value="en" />
<add key="SyncApk" value="Sync.apk" />
<add key="SyncPackage" value="Data.Sync" />
</appSettings>
</configuration>
Thanks in advance!
Any help guys?
I have created an app using just html/css.
The app is build by html.I followed this guy's tutorial.As i can't publish the link I am publishing his tutorial ..
Are you a web designer or you can HTML,CSS and Java Script? If your answer is Yes, You can make android app with HTML, CSS and Java scripts knowledge! In this post I’ll show you how can you make an Android app with Just HTML css with phone gap.
What you have need
adt-bundle ( 32 bit windows version download) You can download for your OS platform here
PhoneGap ( Download )
An Android phone.
Procedure:
Open adt-bundle folder and open eclips
Create an android project by eclips
Extract PhoneGap and copy the cordova-2.9.0.js file.
In left side click on Package Explorer and paste the cordova-2.9.0.js file in assets>www folder
Copy cordova-2.9.0.jar file and paste it in Libs folder like as image below
phone gap app develop
Now open the MainActivity.java file from src folder. In this file replace the public class MainActivity extends Activity line with public class MainActivity extends DroidGap
write super.loadUrl(Config.getStartUrl()); in the place of setContentView()
eclips ide
Now add this code in AndroidMainfest.xml file at <uses-sdk…/> and <application…/> tags
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:resizeable="true"
android:anyDensity="true" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
android mainfest file
refresh the project. Now create a index.html file in assets>www folder. The app will show you whatever you write in index.html file. You can add more html file link with index.html file like as a website.
After following his guide I succeded to create an android app using basic html/css.
But now I got a problem.I can't add admob ads on the app.I tried a lot but eclips shows atleast 1 problem rather I can't add admob ads on my apps.
plz help me?/
nissan0808 said:
I have created an app using just html/css.
plz help me?/
Click to expand...
Click to collapse
Hi there,
As the rules said this is not a support forum, but rather a place to get some help by being pointed to the right thread.
The mission of XDA Assist is to provide basic help to those who have tried searching but can't find what they are looking for and need assistance. This is not a "helpdesk" providing technical assistance but more to point you in the correct direction with your problem. Perhaps you can't find posts on how to root your phone, install custom recovery or maybe you have questions about how to navigate and use features on the site.
Click to expand...
Click to collapse
In other way, you can ask for help in this area General discussion > Questions and Answers or for more detailed help try to read carefully this forum Development Tools
For L Style Header(EASY) go HERE
For Panel Transparency go HERE
For adding L Style Date/Clock View go HERE
To add Battery/WiFi/Bluetooth/Alarm icons in Header go HERE
Yo guys! Toady I am here with a more perfect guide for Lollipop Style header! No smali work, no Public comparing, only layout game!
For Panel Transparency like mine, go HERE
Let's begin.
Decompile your SystemUI.
Go to res/layout and COPY status_bar_expanded_header.xml [MTK] / tw_status_bar_expanded_header.xml [TouchWiz]
Paste it on your Desktop or in any other directory where you wish to.
Rename that xml to l_bar_expanded_header.xml
Now copy and paste l_bar_expanded_header.xml in your SystemUI/res/layout.
Next, open gemini_status_bar_expanded.xml [MTK] / tw_status_bar_expanded_dual.xml [TouchWiz]
{TIP FOR TOUCHWIZ USERS: IF YOU DON"T HAVE tw_status_bar_dual.xml IN YOUr Samsung's UI, THEN OPEN tw_status_bar_expanded.xml}
Now in the xml, find [MTK]
Code:
<include android:layout_width="fill_parent" android:layout_height="@dimen/notification_panel_header_height" layout="@layout/status_bar_expanded_header" />
For TouchWIz[JB], find this:
Code:
<include android:layout_width="fill_parent" android:layout_height="@dimen/tw_notification_panel_header_height" layout="@layout/tw_status_bar_expanded_header" />]
Paste this code below the above line:
Code:
<include layout="@layout/l_bar_expanded_header" />
Save the xml.
Now, go to res/layout and open status_bar_expanded_header.xml [MTK] / tw_status_bar_expanded_header.xml [TouchWiz] and find:
Code:
@id/clock
in the same line, find:
Code:
android:layout_width="blablabla" android:layout_height="blablabla"
Make it look like this:
Code:
android:layout_width="0.0dip" android:layout_height="0.0dip"
Now in the same XML, find,
Code:
@id/date
in the same line find:
Code:
android:layout_width="blablabla" android:layout_height="blablabla"
Make it look like this:
Code:
android:layout_width="0.0dip" android:layout_height="0.0dip"
Now, in second line of the xml find:
Code:
android:background="blablabla"
Make it look like this:
Code:
android:background="#ff374244"
Now, except in second line, make all
Code:
android:background="blablabla"
Look like this
Code:
android:background="#00000000"
in the XMl.
Save the XML.
Download the l_header.9.zip and extract it. COPY and PASTE l_header.9.png to your res/drawable-hdpi folder. [OR drawable-mdpi/ldpi/xhdpi as per your device]
Now, go to res/layout and open l_bar_expanded_header.xml.
Now, in the second line of the xml, find:
Code:
android:background="blablabla"
Make it look like:
Code:
android:background="@drawable/l_header"
In the same line find:
Code:
android:layout_height="blablabla"
Make it look like this:
Code:
android:layout_height="75.0dip"
Now, in the same XML, find:
Code:
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
Now, below this line ^
Search all
Code:
android:layout_width="blablabla" android:layout_height="blablabla"
and make all look like this:
Code:
android:layout_width="0.0dip" android:layout_height="0.0dip"
Save the XML.
RECOMPILE THE UI. SIGN. PUSH TO system/app with permissions 644.
WHAT CAN YOU DO NOW?If you want to add battery meter, or network bar in header, add it in status_bar_expanded_header.xml, and if you want to add potato weather by Sir @mariozawa in header again, add the code in l_statusbar_expanded_header.xml
In short! You made a two tabbed header!
CREDITS:
@Aniruddha_Pathak
You
what code should include to get battery and other stuff?
pranavraut033 said:
what code should include to get battery and other stuff?
Click to expand...
Click to collapse
Will give a tut soon
pranavraut033 said:
what code should include to get battery and other stuff?
Click to expand...
Click to collapse
Here it GOES
thank bro love your work
pranavraut033 said:
thank bro love your work
Click to expand...
Click to collapse
thank you :angel:
something went wrong, no clear and setting buttons
Huncriter said:
something went wrong, no clear and setting buttons
Click to expand...
Click to collapse
Do it again from the first, Sir