[Q] Enable GPS - Android Software Development

Hello Guys,
I'm a beginner android programmer.
I want to active directly GPS, same the Power Control android Widget.
I've saw this code of android kernel (http://android.git.kernel.org/?p=pl...a;hb=03a6110b4f62e72592b451c05848cfaad8c65324)
I nedd to enable or disable GPS, when i click a button.
I've write this code:
booelan gpsStatus = locmanager.isProviderEnabled(LocationManager.GPS_PROVIDER);
(!gpsStatus){
Settings.Secure.setLocationProviderEnabled(getContentResolver(), LocationManager.GPS_PROVIDER, true);
}
and I've put into manifest file the following permissions:
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"></uses-permission>
but when execute my code, the system send me this error:
java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS
but I've already inser into the manifest file this permission!!!
Can you help me?? Please, it's very important!!!
Thank you!

Some phones disable WRITE_SECURE_SETTINGS in their "default.prop" file which is stored in the boot partition so you need root and a lot of other utilities to change it. Here is is on the HTC Aria:
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=1
persist.service.adb.enable=1

I've tested this code on HTC DESIRE with root permission, but this code don't work!!

Related

Blutooth & Co - questions to the kernel guy's

I have some questions about some settings within the kernel of the HD2 device. Because the fact that I'm a Windows user I hope someone can explain this to me.
Let's take a look into the initrd.gz and take a look at the init.rc:
Code:
chmod 666 /dev/uinput
chmod 666 /etc/bluez/audio.conf
chmod 666 /etc/bluez/hcid.conf
chmod 666 /etc/bluez/input.conf
EVERY (!) Device is working with this settings. Wether within the ROM nor somewhere else is a link to this files. Here is also a file named "hcid.conf" which was the old name because now its named main.conf. The hcid.conf is responsible for i.e. the bluetooth pin.
2. Go ahead within the init.rc file and you will see this:
Code:
service hciattach /system/bin/brcm_patchram_plus --enable_hci --enable_lpm \
--baudrate 3000000 --patchram /etc/firmware/bcm4329.hcd /dev/ttyHS0
user bluetooth
group bluetooth net_bt_admin
disabled
If you take again a look at /etc/firmware you will NOT see any bcm4329.hcd. This file never exists. Also the "brcm_patchram_plus" is not within the /bin direcotry. I only have found the source code for this.
Within a ripped ROM file I found this information within the init.rc:
Code:
# Make sure we startup btld before hcid
# Set target address to emulator host loopback IF
# Limit baudrate to 460800 to ensure reliable uart operation
service btld /system/bin/logwrapper /system/bin/btld -hwtun 10.0.2.2 -hb 460800 3000000 -lpm 1
#service btld /system/bin/logwrapper /system/bin/btld -lpm 1 -hb 3000000
user root
group bluetooth net_bt_admin
disabled
oneshot
Question:
Could all this be a problem which is related to the "non displaying MAC Address" of the bluetooth within the HD2?
Thanks!

[Q] abt default.prop & init.rc

file default.prop in uRamdisk
Code:
ro.secure=0
ro.allow.mock.location=1
ro.debuggable=1
persist.service.adb.enable=1
if i only want to enable adb,must i need to enable ro.debuggable & ro.allow.mock.location?
what does it mean?
file init.rc
Code:
chmod 0666 /sys/devices/platform/i2c_omap.2/i2c-adapter/i2c-2/2-0050/forcecal
service debuglog /system/bin/debuglog.sh
user root
what does it mean?
#Owners, Modes for Bluetooth
chmod 0660 /dev/ttyS1
chown bluetooth bluetooth /dev/ttyS1
there seems no bluetooth in NST,if not,why # them?
You'll find that there is all sorts of cruft in the Nook.
Some of it is stock Android, some leftover from the Color Nook.
Mock location is the ability to have a fake location provider for testing apps when you don't physically have a GPS sensor.
The Nook touch came within a chip variant of having Bluetooth, but it doesn't.

[GUIDE] enable native VOIP in ICS ROMS

Hello,
Wanted to enable VOIP on ICS, but couldn't find the info. After bricking my phone twice and fixing it again
I succeeded.
problems i encountered so far:
Fragmented info in the numerous treads that are around over voip
Incomplete manuals
People giving advice without trying it on their own phone first
Bugs
So this is what i did:
On the PC
Install latest Java Runtime Environment (current version 6 Update 31)
Install latest Java SE Development Kit (current version 7u3)
Install latest Android SDK then run SDK manager and install the suggested packages
Download latest APKtool (http://code.google.com/p/android-apktool/ version 1.4.3)
Install samsung USB drivers (available on sammobile.com)
Add the \bin, \tools and \platform-tools directory to the PATH variable
in windows 7, right click computer in start menu->properties->click advanced system properties->hit the button system variables and add them to the path variable.
In my case:
c:\Program Files\Java\jdk1.7.0_03\bin;c:\Program Files\Java\jre7\bin;c:\Program Files\Android\android-sdk\platform-tools;c:\Program Files\Android\android-sdk\tools
Reboot PC (just to be sure, its windows)
On the Phone
Rooted phone
Install rootexplorer (market)
Install clockworkmod recovery (download rommanager in market)
Install busybox (Market, Stephen Erickson)
CWM and Busybox needed in case you mess up
With Rootexplorer
goto /system/framework/ and make the directory R/W
copy /system/framework/framework-res.apk to /system/framework/framework-res.apk.bak
Copy /system/framework/framework-res.apk to PC
Back to PC
Make directory
c:\APKTool
unpack downloaded APKTool to this folder
copy framework-res.apk to this folder
this folder should now contain:
framework-res.apk
apktool.jar
The following info is from http://www.miui-au.com/add-ons/apktool/
open a command prompt in the APKTool directory and run the following command:
Code:
java -jar apktool.jar if framework-res.apk
Code:
java -jar apktool.jar d framework-res.apk
this should decompile framework-res.apk to a folder named framework-res
goto the following folder
c:\apktool\framework-res\res\values
edit (notepad) the following lines in the file bools.xml to
Code:
<bool name="config_sip_wifi_only">false</bool>
<bool name="config_built_in_sip_phone">true</bool>
Now we are going to compile framework-res.apk again
Code:
java -jar apktool.jar b framework-res
Due to a bug in either APKTool.jar or aapt.exe you will probable run into a number of errors that need to be fixed
Code:
apktool\framework-res\res\values\plurals.xml:79: error
: Multiple substitutions specified in non-positional format; did you mean to add
the formatted="false" attribute?
A fix is explained at the following site:
http://www.miui.nl/?page_id=2216
in every plurals.xml file that generates an error find the following section and change it to:
Code:
<plurals name="matches_found">
<item quantity="other">%d of %d</item>
<item quantity="one">1 match</item>
</plurals>
to
Code:
<plurals name="matches_found">
<item quantity="other">%1$d of %2$d</item>
<item quantity="one">1 match</item>
</plurals>
After fixing this (could be up to 80 files, depending on ROM)
we can successfully compile framework-res.apk
Code:
java -jar apktool.jar b framework-res
We should have one warning
Code:
W: Could not find sources
This is normal for framework-res.apk
After compilation we should have the following two new folders
Code:
c:\temp\apktool\framework-res\build\
c:\temp\apktool\framework-res\dist\
in the directory dist there is a newly created framework-res.apk
DO NOT USE THIS FILE, IT WILL BRICK YOUR PHONE
instead go to the directory
Code:
framework-res\build\apk\
there should be a file resources.arsc. This file contains all our modifications and is all we need.
Framework-res.apk is a compressed file. We can open it with a zip program. I used Total Commander for this (www.ghisler.com)
now open the original Framework-res.apk and copy (pack) our modified resources.arsc (overwrite the original)
Now we have a modified framework-res.apk with voip enabled
Next we have to make the following two files:
android.software.sip.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- This is the standard set of features for devices that support SIP API. -->
<permissions>
<feature name="android.software.sip" />
</permissions>
android.software.sip.voip.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- This is the standard set of features for devices that support SIP-based VoIP. -->
<permissions>
<feature name="android.software.sip" />
<feature name="android.software.sip.voip" />
</permissions>
Copy the three files back to the Phone
Back to Phone again
UNSUCCESSFUL COMPILING, WRONG COPYING OR PURE BAD LUCK CAN BRICK YOUR PHONE. BACKUP YOUR PHONE BEFORE PROCEEDING!
CONTINUE AT YOUR OWN RISK
FORGET ADB PUSH, BE SURE TO HAVE ROOTEXPORER
Everyone saying otherwise is:
a)lying
b)not running stock rom
c)lucky
d)laisy for not writing a decent HOWTO ADB PUSH
So go ahead with root explorer
Copy android.software.sip.xml and android.software.sip.voip.xml to /system/etc/permissions
Set the persissions to rw-r--r--
Change owner to user 0-Root, group 0-root
copy framework-res.apk to /system
Set the persissions to rw-r--r--
Change owner to user 0-Root, group 0-root
Move /system/framework-res.apk to /system/framework (be sure to make backup the original file)
After reboot VOIP is enabled
What if something goes wrong:
If all else fails flash your original rom
or (works only if you followed everything in this manual)
Reboot your Phone in recovery mode (press&hold home, volume-up, power button)
In recovery mode mount /system and /SDCARD
Connect your Phone (still in recovery mode) to the PC
on the PC open a command prompt
Type the following (sgs2)
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p9 /system
cp /system/framework/framework-res.apk.bak /system/framework/framework-res.apk.bak
reboot
this should copy the backup file back.
good luck
Hi. VOIP doesn't work in my country due to restrictions but you can try this.
1. Download anycut from the market.
2. Long hold desktop > add shortcut.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
3. Click on Activity.
4. Click on SIP Settings.
5. An icon will appear on the desktop.
6. Click on icon and set it up as you wish.
I think this is a much simpler approach and just works without root or any modification.
Sent from my GT-I9100
If you wish then you can uninstall anycut after you finish. In its defense it is a 32kb program made by a Googler.
Sent from my GT-I9100
akbarhash said:
I think this is a much simpler approach and just works without root or any modification.
Click to expand...
Click to collapse
Nice try, but this will only work if voip is enabled first. basically this program only adds a shortcut to voip settings, but if the voip interface is disabled, this doesn't work.
nice effort but didn't work for me..
This is ok, but...
akbarhash said:
Hi. VOIP doesn't work in my country due to restrictions but you can try this.
1. Download anycut from the market.
2. Long hold desktop > add shortcut.
3. Click on Activity.
4. Click on SIP Settings.
5. An icon will appear on the desktop.
6. Click on icon and set it up as you wish.
I think this is a much simpler approach and just works without root or any modification.
Sent from my GT-I9100
Click to expand...
Click to collapse
This is ok for me, but don´t save the account, and checkit status forever. Any solution?
Thank.
im using bria
hi
its too long procedure. i m using bria on SGS rooted phone. and its work great.
adejager1 said:
UNSUCCESSFUL COMPILING, WRONG COPYING OR PURE BAD LUCK CAN BRICK YOUR PHONE.
Click to expand...
Click to collapse
Damn, which I have a lot
Dears,
I'm following this guide but I have a problem recompiling.
This is the log:
c:\APKtool>java -jar apktool.jar b framework-res
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
invalid resource directory name: c:\APKtool\framework-res\res/drawable-sw600dp-h
dpi
invalid resource directory name: c:\APKtool\framework-res\res/layout-sw400dp
invalid resource directory name: c:\APKtool\framework-res\res/layout-sw600dp
invalid resource directory name: c:\APKtool\framework-res\res/layout-w600dp
invalid resource directory name: c:\APKtool\framework-res\res/values-h720dp
invalid resource directory name: c:\APKtool\framework-res\res/values-sw360dp
invalid resource directory name: c:\APKtool\framework-res\res/values-sw400dp
invalid resource directory name: c:\APKtool\framework-res\res/values-sw600dp
invalid resource directory name: c:\APKtool\framework-res\res/values-sw600dp-lan
d
invalid resource directory name: c:\APKtool\framework-res\res/values-sw600dp-w10
24dp
invalid resource directory name: c:\APKtool\framework-res\res/values-sw600dp-w12
80dp
invalid resource directory name: c:\APKtool\framework-res\res/values-w360dp
invalid resource directory name: c:\APKtool\framework-res\res/values-w480dp
invalid resource directory name: c:\APKtool\framework-res\res/values-w500dp
invalid resource directory name: c:\APKtool\framework-res\res/values-w600dp
invalid resource directory name: c:\APKtool\framework-res\res/values-w720dp
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutExce
ption: could not exec command: [aapt, p, -F, C:\Users\FEDERI~1.RAM\AppData\Local
\Temp\APKTOOL1708831992001626862.tmp, -x, -S, c:\APKtool\framework-res\res, -M,
c:\APKtool\framework-res\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:193)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:301)
at brut.androlib.Androlib.buildResources(Androlib.java:248)
at brut.androlib.Androlib.build(Androlib.java:171)
at brut.androlib.Androlib.build(Androlib.java:154)
at brut.apktool.Main.cmdBuild(Main.java:182)
at brut.apktool.Main.main(Main.java:67)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\U
sers\FEDERI~1.RAM\AppData\Local\Temp\APKTOOL1708831992001626862.tmp, -x, -S, c:\
APKtool\framework-res\res, -M, c:\APKtool\framework-res\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:83)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:191)
... 6 more
c:\APKtool>​
I'm on Windows, so I think the problem is the / in the paths, but I don't know the cause of this.
I'm not a programmer.
Original framework-res.apk, APKtool and the framework-res folder with the already modified file are attached.
Can anybody gently help me?
Thank you so much.
I can get to the sip settings and add an account, but as this poster says, the account says "Checking status" forever. Also every now and then, the account simply disappears. There's no save button either.
Anyone with the same problems? Any ideas?

[Q] Any way to remove the 512 character limit on Nook Touch notes?

In the interface for reading books, you can highlight a word or set of words, then attach a note to that.
The notes are limited to 512 characters, but you can have an unlimited number of notes for a book. I currently work around the limit by highlighting a word, writing the note, then highlighting the next word and continuing the note.
Is there a way to remove the limit of 512 characters, or increase it to a very large number? My nook is fully rooted, so I imagine it is a simple config file or sqlite entry somewhere, but I don't know where to look.
I determined that the 512 character limit is hard coded into the Reader.apk app. I modified the app to increase the limit to 8192 characters (16 times as much) and have posted the details below.
Attached is the apk for the updated app. To install it, you must first uninstall the old reader.apk as this one is signed using a different key.
For those who wish to make the changes themselves, the following are the steps needed.
Pre-requisites
Nook must be rooted (obviously)
Android SDK must be installed. Link to sdk download page
APKTool must be installed. Link to APKTool download page
Install the Nook framework file. This is needed to properly recompile the apk later.
Code:
adb pull /system/framework/framework-res.apk
Code:
apktool if framework-res.apk
Copy the original Reader.apk file into the current directory.
Code:
adb pull /system/app/Reader.apk
Decompile the apk file using apktool
Code:
apktool d Reader.apk
Make the changes needed
Modify the AndroidManifest.xml file. Remove the "sharedUserId" flag.
Change this
HTML:
<manifest android:sharedUserId="android.media" android:versionCode="1" android:versionName="1.0" package="com.bn.nook.reader.activities"
xmlns:android="http://schemas.android.com/apk/res/android">
to this
HTML:
<manifest android:versionCode="1" android:versionName="1.0" package="com.bn.nook.reader.activities"
xmlns:android="http://schemas.android.com/apk/res/android">
Modify the following files. Search for "0x200" and replace it with "0x2000" (ie add a zero; this will multiply max size by 16):
Reader/smali/com/bn/nook/reader/ui/AddNoteView$1.smali
Reader/smali/com/bn/nook/reader/commonui/ReaderCommonUIConstants.smali
Modify the following file. Search for "512" and replace it with "8192" (the decimal equivalent of hex 0x2000)
Reader/res/layout/add_note_layout.xml
Recompile the source code into a new apk.
Code:
apktool b Reader ReaderUnsigned.apk
Create a signing key; Skip this step if you have created one already. Note: keytool is located in the Android SDK->Tools folder.
Code:
keytool -genkey -v keystore myAndroidKey.keystore -alias myAndroidKeyAlias -keyalg RSA -validity 10000
Sign your new apk.
Code:
jarsigner -verbose -keystore myAndroidKey.keystore ./ReaderUnsigned.apk myAndroidKeyAlias
Use zipalign (also in sdk->tools) to align your apk.
Code:
zipalign -v 4 ReaderUnsigned.apk ReaderSigned.apk
Rename the system reader.apk file to uninstall/backup the apk.
Code:
adb shell mv /system/app/Reader.apk /system/app/Reader.apk.bak
Remove any entries of the previous Reader.apk signing key from the "/data/system/packages.xml" file.
Pull the packages.xml file.
Code:
adb pull /data/system/packages.xml
Edit the packages.xml file. Search for "com.bn.nook.reader". Remove this entire tag:
HTML:
<package name="com.bn.nook.reader" ...>...</package>
Push the packages.xml file back.
Code:
adb push packages.xml /data/system/packages.xml
Install your new app and enjoy the larger note sizes!
Code:
adb install ReaderSigned.apk

Request: A910F permissive mode kernel

Hi everyone. The reason i make this thread is to ask for helping. If anybody willingly to build permissive mode kernel for A910F. Very appreciate. If there is somewhere exist, where to find it. I already try to make my own kernel for this model but ive failed at part build the zimage.img. i try to bash script "build_kernel.sh" but fail. I follow all tutorial 100% but still fail. Really appreciate if somebody want to help me
Not a permissive kernel, but in most use cases granting the required selinux permission in an enforcing kernel might be enough, in a terminal emulator use cat /proc/avc_msg or logcat -s audit
For example
type=1400 audit(...): avc: denied { execute } for pid=22889 comm="HwBinder:22882_" path=... dev="tmpfs" ino=... scontext=u:r:hal_audio_default:s0 tcontext=ubject_r:hal_audio_default_tmpfs:s0 tclass=file
In a terminal emulator,
/sbin/magiskpolicy --live "allow hal_audio_default hal_audio_default_tmpfs file execute"
The format is
/sbin/magiskpolicy --live "allow scontext tcontext tclass permission"
The permission "ioctl" uses allowxperm instead.
If it says not found then one of these
su -c /sbin/magiskpolicy
/sbin/supolicy
/system/xbin/supolicy
/su/xbin/supolicy
/su/bin/supolicy
/su/xbin_bind/supolicy
/system/bin/supolicy
/system/bin/magiskpolicy
supolicy
If if says permission denied type su first.
Restart the software that required the permission, and the software that it requires, should revert after restarting the device.

Categories

Resources