ICS and getting those missing Market apps - Kindle Fire General

If you've got one of the ICS roms installed and want more of the market, this worked for me.
edit /etc/permissions/tablet_core_hardware.xml
Below <feature name="android.hardware.screen.landscape" />
add
Code:
<feature name="android.hardware.location.gps" />
<feature name="android.hardware.camera" />
<feature name="android.hardware.camera.autofocus" />
<feature name="android.hardware.camera.autofocus-flash" />
<feature name="android.hardware.camera.front" />
Then goto Settings, Apps, All, Google Services Framework. Force Stop and Clear data.
Reboot
That should enable all the features cept for the phone stuff. After doing this I can find and install Facebook, NFL '11 for Android Tablet, Springpad, Tiny Tower, etc. All the examples I could find of people saying they couldn't install.
If there is an app in the market you can't install, find a copy of the apk and run
Code:
platform-tools/aapt dump badging file.apk
That will give you the list of required features. For example
Code:
uses-feature:'android.hardware.location'
uses-feature:'android.hardware.location.gps'
uses-feature:'android.hardware.location.network'
uses-feature:'android.hardware.microphone'
uses-feature:'android.hardware.touchscreen'
uses-feature:'android.hardware.screen.landscape'
Just add whatever you're missing. Do the force close, clear data, reboot.
Info obtained from here developer.android.com/guide/topics/manifest/uses-feature-element.html
UD.

Wow, that's awesome! That explains why so many apps were "incompatible". This saves us the trouble of hijacking some other devices fingerprint to bypass the problem.
I thought I'd add my 2 cents to your guide though as /etc (/system/etc) is readonly through adb.
Remount the system partition as read-write
$ adb remount
Enter the shell
$ adb shell
Edit your file with your editor of choice
# vi /etc/permissions/tablet_core_hardware.xml
Insert lines and save
Code:
<!-- Fake it 'til you make it! -->
<feature name="android.hardware.location.gps" />
<feature name="android.hardware.camera" />
<feature name="android.hardware.camera.autofocus" />
<feature name="android.hardware.camera.autofocus-flash" />
<feature name="android.hardware.camera.front" />
Then force close Google Services Framework, clear it's cache and reboot.
As for the facebook and twitter apps, you only really need the location.gps line.

Yeah looks like build.prop is irrelevant for market access in ICS. This is a far better way for them to do it. Kinda stupid that apps would be "incompatible" due to gps but that's on the app developers.
Make sure those feature name lines are added inside of the <permissions> tag. Don't just add them to the end of the file.
Within about 2 hours of making this change, the market website updated and everything became compatible so I could also do installs from there.
Oh and could someone with enough post-juice link this thread into bl1nkk's ISC development thread?

To be clear, this is ICS specific right?
Because it would be amazing to not have to screw with build.prop on the stock ROM.
UberDuper said:
Oh and could someone with enough post-juice link this thread into bl1nkk's ISC development thread?
Click to expand...
Click to collapse
Done.

I don't have a stock or cm7 rom installed to test, but looking at the modaco zip file the directory structure and files are there. They're named a little different but it should be easy enough for someone to test. Just add everything to /system/etc/permissions/handheld_core_hardware.xml.
Just make sure anything you add is inside these tags
Code:
<permissions>
</permissions>

Fantastic work! I can get NFL '11 for Tablets. There's one that still eludes me now...
Media Remote for Tablets by Sony.
Anyone have any thoughts?

rmagruder said:
Fantastic work! I can get NFL '11 for Tablets. There's one that still eludes me now...
Media Remote for Tablets by Sony.
Anyone have any thoughts?
Click to expand...
Click to collapse
Yeah, platform-tools/aapt dump badging file.apk

rmagruder said:
Fantastic work! I can get NFL '11 for Tablets. There's one that still eludes me now...
Media Remote for Tablets by Sony.
Anyone have any thoughts?
Click to expand...
Click to collapse
I went and downloaded version 2.1.1 from somewhere and this is the aapt output I get
Code:
package: name='com.Relmtech.RemotePaid' versionCode='19' versionName='2.1.1'
application-label:'Unified Remote Full'
application-label-ja:'Unified Remote Full'
application-label-sv:'Unified Remote Full'
application-icon-120:'res/drawable-ldpi/icon.png'
application-icon-160:'res/drawable-mdpi/icon.png'
application-icon-240:'res/drawable-hdpi/icon.png'
application: label='Unified Remote Full' icon='res/drawable-mdpi/icon.png'
launchable-activity: name='com.Relmtech.Remote2.Activities.MainActivity' label='Unified Remote Full' icon=''
uses-permission:'com.android.vending.CHECK_LICENSE'
sdkVersion:'3'
targetSdkVersion:'9'
uses-permission:'android.permission.INTERNET'
uses-permission:'android.permission.BLUETOOTH'
uses-permission:'android.permission.WAKE_LOCK'
uses-permission:'android.permission.READ_PHONE_STATE'
uses-permission:'android.permission.ACCESS_WIFI_STATE'
uses-permission:'android.permission.VIBRATE'
uses-permission:'com.android.launcher.permission.INSTALL_SHORTCUT'
uses-permission:'android.permission.ACCESS_NETWORK_STATE'
uses-configuration: reqTouchScreen='3'
uses-feature-not-required:'android.hardware.bluetooth'
uses-feature-not-required:'android.hardware.touchscreen'
uses-feature-not-required:'android.hardware.touchscreen.multitouch'
uses-feature-not-required:'android.hardware.touchscreen.multitouch.distinct'
uses-feature-not-required:'android.hardware.wifi'
main
other-activities
other-services
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ja' 'sv'
densities: '120' '160' '240'
That doesn't appear to require any features we don't have. I'll poke at it more later tonight.

That is the tablet version, right? Is there an alternate location to download it while we try to figure out Market? I it IS a free app after all.
Sent from my Xoom using Tapatalk

"handheld_core_hardware.xml" does not seem to exist on the stock ROM.
In the permissions folder there are;
android.hardware.sensor.accelerometer.xml
android.hardware.sensor.light.xml
android.hardware.touchscreen.multitouch.distinct.xml
android.hardware.wifi.xml
android.software.live_wallpaper.xml
com.android.location.provider.xml
platform.xml
Each of the hardware ones list individual hardware features (indicated by their file name).
I wonder if adding some of these other ones to one of these files would allow it to work as you're suggesting (they're all permissions files).
Edit: After testing this, I can confirm it does not work on the stock ROM. At least not with the apps listed above (Facebook, Tiny Tower, etc). Guess it's back to build.prop.

Hey this is awesome! Was hoping a fix for talk on ICS was in these files somewhere but I don't find anything :'(

rmagruder said:
That is the tablet version, right? Is there an alternate location to download it while we try to figure out Market? I it IS a free app after all.
Click to expand...
Click to collapse
After looking again.. What I downloaded is not the right app. If I can find that apk anywhere I can take a look. I'm on the 4th page of google results and I got nothing yet.

You are a god! Google maps working again now too! Thanks heaps.
Sent from Fire

Edit: wrong thread.

Sonic 4 ep1 cant install

Does anyone out there have an Android tablet that will download the APK for Sony Media Remote for Android Tablets so we can install/analyze it?

rmagruder said:
Does anyone out there have an Android tablet that will download the APK for Sony Media Remote for Android Tablets so we can install/analyze it?
Click to expand...
Click to collapse
is it not available via ics ? have it on the market with stock rom

rmagruder said:
Does anyone out there have an Android tablet that will download the APK for Sony Media Remote for Android Tablets so we can install/analyze it?
Click to expand...
Click to collapse
I was able to get it to install from the market using the browser trick.
Code:
bash-3.2# ./aapt dump badging apks/com.sony.seconddisplay.tabletview-1.apk
package: name='com.sony.seconddisplay.tabletview' versionCode='20111221' versionName='3.0.0'
application-label:'Media Remote'
application-label-ja:'Media Remote'
application-label-de:'Media Remote'
application-label-nl:'Media Remote'
application-label-fr:'Media Remote'
application-label-es:'Media Remote'
application-label-it:'Media Remote'
application-label-pt:'Media Remote'
application-label-ru:'Media Remote'
application-label-zh_CN:'Media Remote'
application-label-zh_TW:'Media Remote'
application-icon-160:'res/drawable-mdpi/ic_launcher_bdremote.png'
application: label='Media Remote' icon='res/drawable-mdpi/ic_launcher_bdremote.png'
launchable-activity: name='com.sony.seconddisplay.MainActivity' label='Media Remote' icon=''
sdkVersion:'11'
maxSdkVersion:'13'
targetSdkVersion:'11'
uses-permission:'android.permission.INTERNET'
uses-permission:'android.permission.ACCESS_NETWORK_STATE'
uses-permission:'android.permission.CHANGE_WIFI_MULTICAST_STATE'
uses-permission:'android.permission.ACCESS_WIFI_STATE'
uses-permission:'com.android.browser.permission.READ_HISTORY_BOOKMARKS'
uses-permission:'com.android.browser.permission.WRITE_HISTORY_BOOKMARKS'
uses-permission:'android.permission.VIBRATE'
uses-feature:'android.hardware.wifi'
uses-feature:'android.hardware.touchscreen'
uses-feature:'android.hardware.screen.landscape'
main
other-activities
other-receivers
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ja' 'de' 'nl' 'fr' 'es' 'it' 'pt' 'ru' 'zh_CN' 'zh_TW'
densities: '160'
native-code: 'armeabi'
I'm stumped on this one. It looks like it should work but it's still filtered out in the Market.

UberDuper said:
Code:
maxSdkVersion:'13'
I'm stumped on this one. It looks like it should work but it's still filtered out in the Market.
Click to expand...
Click to collapse
SdkVersion of 11 and maxSdkVersion of 13, means it's only for Honeycomb tablets, 3.0-3.2. ICS is 14-15.
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html
Future versions of Android (beyond Android 2.0.1) will no longer check or enforce the maxSdkVersion attribute during installation or re-validation. Android Market will continue to use the attribute as a filter, however, when presenting users with applications available for download.
Click to expand...
Click to collapse

Oooooh. The only stuff I read about the (min|max)sdkVersion was in relation to bluetooth. Well I guess I can stop looking into that then.
About the Sonic app, does anyone have access to the apk to run and give us the output of
Code:
aapt dump badging sonicapp.apk

Related

VoiceDialer on stock ADP1

So I wanted VoiceDialer on my stock ADP1. I grabbed VoiceDialer.apk from JFv1.31_ADP1.zip and installed it using adb (sdcard mounted on computer, so it wasn't mounted on the phone). It runs, and I was quite satisfied with its recognition abilities, but when it comes to clicking "OK" to dial, it always crashes with a "force close" dialogue. Holding the "send" button does bring up the VoiceDialer program. My guess is I'm missing some sort of configuration somewhere. Does anyone know?
Make sure you grabbed the VoiceDialer.odex too, if there is one.
Koush said:
Make sure you grabbed the VoiceDialer.odex too, if there is one.
Click to expand...
Click to collapse
I didn't find any odex files (unless they would be in recovery.img, which I haven't yet learned how to open). These files are not created automatically?
Unzip a RC30 update.zip and look in \system\app\
On ADP1, the dex is created at runtime by the dalvikvm from the classes file inside the zip. On RC30, the dex files for the builtin apps are created ahead of time and stored alongside the apk. This prevents the system from using up \data partition space with dex files (As the ADP1 build does).
jashsu said:
Unzip a RC30 update.zip and look in \system\app\
On ADP1, the dex is created at runtime by the dalvikvm from the classes file inside the zip. On RC30, the dex files for the builtin apps are created ahead of time and stored alongside the apk. This prevents the system from using up \data partition space with dex files (As the ADP1 build does).
Click to expand...
Click to collapse
I was able to find a copy of VoiceDialer.odex as per your description, but if I understand you correctly, that will not solve my problem.
If the dev phone uses dex files instead, and these are created at runtime, then I would expect to find a dex file for VoiceDialer if everything is working properly. Indeed, the file "[email protected]@[email protected]" exists.
Any other hints as to why the application might crash after clicking "OK" to dial a number?
Yeah just grab the VoiceDialer.apk from JF's modified ADP1 build. It contains the classes.dex file required to run on ADP1 build.
jashsu said:
Yeah just grab the VoiceDialer.apk from JF's modified ADP1 build. It contains the classes.dex file required to run on ADP1 build.
Click to expand...
Click to collapse
That's what I did initially. That part all seems to work.
Doh, went around in a circle ;-) I thought we were talking about the RC30 version.
Yeah you'll have to ask JF about this since I think he compiled VoiceDialer from source for his ADP mod build. There is no odex file to look for.
jashsu said:
Yeah you'll have to ask JF about this since I think he compiled VoiceDialer from source for his ADP mod build.
Click to expand...
Click to collapse
Yeah, I'm sure JF could see the problem real quick. I'm real timid about bothering people, though - I was hoping he might swing by this thread by chance. What's considered appropriate on this forum: PM? E-mail? IM? Visitor Message?
IMSargon said:
Yeah, I'm sure JF could see the problem real quick. I'm real timid about bothering people, though - I was hoping he might swing by this thread by chance. What's considered appropriate on this forum: PM? E-mail? IM? Visitor Message?
Click to expand...
Click to collapse
Your best bet is IRC. A lot of us hang out in #android on Freenode.
IMSargon said:
So I wanted VoiceDialer on my stock ADP1. I grabbed VoiceDialer.apk from JFv1.31_ADP1.zip and installed it using adb (sdcard mounted on computer, so it wasn't mounted on the phone). It runs, and I was quite satisfied with its recognition abilities, but when it comes to clicking "OK" to dial, it always crashes with a "force close" dialogue. Holding the "send" button does bring up the VoiceDialer program. My guess is I'm missing some sort of configuration somewhere. Does anyone know?
Click to expand...
Click to collapse
Your best bet is to remount /system and push the .apk directly into /system/app. I haven't tried installing it with adb install, so I'm not sure if that's what is causing your problems or what.
JesusFreke said:
Your best bet is to remount /system and push the .apk directly into /system/app. I haven't tried installing it with adb install, so I'm not sure if that's what is causing your problems or what.
Click to expand...
Click to collapse
Yeah, I had the same problem (I've installed voice dialer using adb install)
Uninstalled in application manager, rebooted, remounted, pushed voicedialer.apk to /systemp/app, rebooted again, and it worked )
JesusFreke said:
Your best bet is to remount /system and push the .apk directly into /system/app. I haven't tried installing it with adb install, so I'm not sure if that's what is causing your problems or what.
Click to expand...
Click to collapse
It worked! Great! Thanks a ton!
------------------------------
Steps taken:
1. copy VoiceDialer.apk to phone
# adb push VoiceDialer.apk /sdcard/VoiceDialer.apk
763 KB/s (51125 bytes in 0.065s)
#
2. enter shell on phone, and gain root
# adb shell
$ su
#
3. mount the system partition as rewritable
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
#
4. copy VoiceDialer.apk to the proper system directory
# cat /sdcard/VoiceDialer.apk > /system/app/VoiceDialer.apk
#
5. make permissions match the other files
# chmod 644 /system/app/VoiceDialer.apk
#
6. reboot the phone
# reboot
------------------------------
For extra credit, does anyone understand why this happens? What does it tell us about how apps work and install?
adb pushing the apk directly bypasses the PackageManager. By using adb install, the package manager will run (as if the package was installed from the Market or Browser). There are various reasons the PackageManager might reject a package, including inability to run dexopt, incompatibility with existing data registered to an older version of an app, etc. A list of errors that would block an apk installation is here. Look at the constants starting with INSTALL_FAILED and INSTALL_PARSE_FAILED.
jashsu said:
adb pushing the apk directly bypasses the PackageManager. By using adb install, the package manager will run (as if the package was installed from the Market or Browser). There are various reasons the PackageManager might reject a package, including inability to run dexopt, incompatibility with existing data registered to an older version of an app, etc. A list of errors that would block an apk installation is here. Look at the constants starting with INSTALL_FAILED and INSTALL_PARSE_FAILED.
Click to expand...
Click to collapse
Interesting, but in this case the application did not fail to install. The installation went normally, and the application functioned normally up to the point where it attempted to interface with another application/subsystem (whatever dials the phone).
IMSargon said:
Interesting, but in this case the application did not fail to install. The installation went normally, and the application functioned normally up to the point where it attempted to interface with another application/subsystem (whatever dials the phone).
Click to expand...
Click to collapse
When you install it with adb install, it gets installed as a normal (non-system) application. This can be verified by checking /data/system/packages.xml:
Code:
<package name="com.android.voicedialer" codePath="/data/app/VoiceDialer.apk" [B]system="false"[/B] ts="1232083952000" userId="10029">
<sigs count="1">
<cert index="0" />
</sigs>
</package>
One of the permissions it requires is "android.permission.CALL_PRIVILEGED". Based on the info in frameworks/base/core/res/AndroidManifest.xml (in the git source):
Code:
<permission android:name="android.permission.CALL_PRIVILEGED"
android:label="@string/permlab_callPrivileged"
android:description="@string/permdesc_callPrivileged"
[B]android:protectionLevel="signatureOrSystem"[/B] />
You can see the protectionLevel is "signatureOrSystem", meaning that the application has to be a system application in order to use that permission. Since the voice dialer was not installed as a system application, it can't be assigned that permission.
To confirm this, I tried installing the voice dialer with adb install, and then took a look at the logcat output, which contains the following line:
Code:
01-15 23:32:32.903: WARN/PackageManager(56): Not granting permission android.permission.CALL_PRIVILEGED to package com.android.voicedialer (protectionLevel=3 flags=0x44)
However, when you copy the apk to /system/app, it gets installed as a system application, which can be verified again by looking at /data/system/packages.xml:
Code:
<package name="com.android.voicedialer" codePath="/system/app/VoiceDialer.apk" [B]system="true"[/B] ts="1232084484000" userId="10035">
<sigs count="1">
<cert index="0" />
</sigs>
</package>
So it is able to use the "android.permission.CALL_PRIVILEGED" permission. After coping the apk to /system/app, I checked the logcat output and there was no mention of not being able to grant the android.permission.CALL_PRIVILEGED permission, as expected.
Interestingly enough, copying the file to /system/app doesn't bypass the package manager. The package manager is watching both /data/app and /system/app for new files, and it automatically installs anything you copy into either location. It also does an uninstall when you delete an apk from either location.
JesusFreke said:
Interestingly enough, copying the file to /system/app doesn't bypass the package manager. The package manager is watching both /data/app and /system/app for new files, and it automatically installs anything you copy into either location. It also does an uninstalls when you delete an apk from either location.
Click to expand...
Click to collapse
I didn't know that. In that context it does make sense why it would disallow call permission if put into /data/app
Offtopic, but are you planning on creating a modified version of the newly released ADP1 "1.1" build?
Thanks, JF, your explanation makes the problem quite clear!

[INFO][ROM] Guide to build AOSP 4.2. Builds provided for crespo and 4g 2013-02-20

Download:
Nexus S: crespo-20130220
filename: greenblue-crespo-20130220
md5sum: 3503235e1f66b0d2cfeeea43c2d1699b
sha1sum: 48c1cfbee8a226aae2ce5b5ab9fb7ad6d30339e3
Nexus S 4G: crespo4g-20130220
filename: greenblue-crespo4g-20130220.zip
md5sum: b02e36b543293a337dd3359bd68444d3
sha1sum: 7095ab401e71204532bf2866664452687866551a
Use the latest gapps for 4.2.1: 20121212
Warning: The new swipe keyboard and the gallery/camera/photosphere are not included. Stock photosphere apk will not work. It is hard coded to work on certain phones. You must use modified binaries or edit the build prop.
Steps to flash:
1. Flash the ROM and SuperSU.
2. Boot at least once before flashing Gapps. FCs may occur if you don't reboot.
3. Be patient: the phone will be laggy for the first few minutes as the phone scans for media on the built in sdcard.
4. If you have strange issues or FCs, make sure you wipe data / factory reset and reflash everything.
Important notes:
No tweaks, mods or kernel patches will be added. This is strictly a basic AOSP build.
A complete set of patches are provided on github so you can build your own ROM with your choice of modifications.
Flash your favorite AOSP based 4.1.x or 4.2.x kernel if desired. ASOP version of Matr1x and CM10 version of Marmite has been confirmed to work. Stock ROM is not as smooth as other kernels but it works.
Changelog:
20130221
Rebased on 4.2.2
20121206
Add bluetooth build cfg for fix build warning (trivial)
Bluetooth prevents deep sleep. Patch.
Crespo4g only: Fix Phone.apk force closes after a call *
Crespo4g only: Set voicemail number to own number for Nexus S 4G
Lockscreen PIN keyboard cuts off letters from number 7 and 9. Patch.
Update init.herring.rc: bluedroid has replaced system/bluetooth (trivial)
20121128
Restore original clock font size
Allow backups to Google account from Settings -> Backup & restore
Updated platform version number to 4.2.1 (cosmetic issue)
20121127
Build from 4.2.1 tree
Remove December to Contact's calendar - fixed in 4.2.1
Fix the building of Email.apk
Reduce the lockscreen clock font size
Update the FC on accessing Settings -> Storage patch
20121123
Add December to Contact's calendar
Fix FC on Daydream's clock setting
Fix alarm button in quick settings
Fix FC on accessing Settings -> Storage
Update the name, brand and model in build.prop
20121122 - Prevent lockscreen clock from getting cut off
20121120 - Added patch to fix MMS receive on crespo4g
20121119 - Initial build
Todo list:
Enable emulated storage. *
SElinux configuration.
Broken:
Nexus S 4G: Can't set voicemail number and cannot switch carrier back from Google Voice to My Carrier.
Nexus S 4G: Tethering with WiMax is troublesome at best.
Settings -> Battery does not properly show awake times in the graph. (Appears to be dependent on kernel used).
Working:
3G
4G WiMAX
Audio
Bluetooth audio
Camera
Daydream
Face unlock
GPS
Lockscreen widgets
MMS
NFC
Phone calls
SMS
Sprint system updates
Wifi
Instructions to build from source:
Code:
repo init -u git://github.com/diclusial/platform_manifest.git -b greenblue-4.2.2
repo sync
. build/envsetup.sh
lunch [model]
make otapackage
Build notes:
- All necessary patches and firmware are included in the repo.
Patches below my be out of date. Check github for changes.
The essential patches:
Add TARGET_ARCH to BoardConfigCommon
Fix camera build
Update location providers
Remove Launcher2 hardware acceleration overlay
Crespo bug fix patches
Set default backup transport to Google account
Fix clock and date/alarm display on lockscreen
Set the build prop value for version, brand, etc.
Remove redundant PRODUCT_PACKAGES for live wallpapers
Crespo4g bug fix patches
Update Mms config
Fix receiving MMS messages
Restore ability to utilize mobile/3g for tethering
Add full_crespo4g-userdebug to the lunch menu
Set default backup transport to Google account
Fix clock and date/alarm display on lockscreen
Set the build prop value for version, brand, etc.
Remove redundant PRODUCT_PACKAGES for live wallpapers
Patches to change the build process
Add support for overriding build.prop settings
Disable stock recovery
Bugs that might be fixed in future upstream releases
DeskClock: Fix Dream settings
Fix building, the product listing in build/ wants Email2
Merge "Settings: fix storage measurement for device without emulated
QuickSettings : Fix alarm intent
Hope will stable for daily using
So far so good here. My brother just got his N4 8gb today, at least we can run the same software... He already received an update.
---------- Post added at 11:51 PM ---------- Previous post was at 11:33 PM ----------
4G Works!
Bluetooth media audio working (listening to Pandora on my Moto S305 headphones)
I think we have a winner here. Using included kernel BTW.
Screenshot
Daydream works - what an awesome feature! Only problem with it is a FC when Clock setting is pressed but you can still use it as is.
Thanks for the guide,
Can you tell me how to solve Hunk#1?
I cannot understand op which related to hunk#1....:/
Code:
patching file 0s
Hunk #1 FAILED at 34.
1 out of 1 hunk FAILED -- saving rejects to file 0s.rej
it shows like this..:/
Articudos said:
Thanks for the guide,
Can you tell me how to solve Hunk#1?
I cannot understand op which related to hunk#1....:/
Code:
patching file 0s
Hunk #1 FAILED at 34.
1 out of 1 hunk FAILED -- saving rejects to file 0s.rej
it shows like this..:/
Click to expand...
Click to collapse
Which patch file are you trying to patch? What is the output of 0s.rej?
greenblue said:
Which patch file are you trying to patch? What is the output of 0s.rej?
Click to expand...
Click to collapse
001 patchfile.
0s.rej is here..same as .patchfile.
Code:
--- .repo/manifest.xml 2012-11-19 00:34:09.716145171 -0800
+++ .repo/manifest.xml 2012-11-16 15:00:40.058124761 -0800
@@ -34,6 +34,8 @@
<project path="device/lge/mako" name="device/lge/mako" groups="device" />
<project path="device/lge/mako-kernel" name="device/lge/mako-kernel" groups="device" />
<project path="device/sample" name="device/sample" />
+ <project path="device/samsung/crespo" name="device/samsung/crespo" groups="device" revision="refs/tags/android-4.1.2_r1" />
+ <project path="device/samsung/crespo4g" name="device/samsung/crespo4g" groups="device" revision="refs/tags/android-4.1.2_r1" />
<project path="device/samsung/maguro" name="device/samsung/maguro" groups="device" />
<project path="device/samsung/manta" name="device/samsung/manta" groups="device" />
<project path="device/samsung/toro" name="device/samsung/toro" groups="device" />
Nick N said:
Daydream works - what an awesome feature! Only problem with it is a FC when Clock setting is pressed but you can still use it as is.
Click to expand...
Click to collapse
Can't duplicate the problem. Only thing I can think of is that AOSP by default includes DeskClock.apk. The GAPPS I linked contains a DeskClockGoogle.apk so there might be a conflict.
Things to try:
1. Use adb to delete the existing DeskClock apk file inside /system/app and then copy the DeskClock.apk from the AOSP rom.
2. Use adb to delete the existing DeskClock apk file inside /system/app and then copy the DeskClockGoogle.apk from the GAPPS.
3. Uninstall the existing DeskClock with Titanium Backup. Try to install DeskClock or DeskClockGoogle one at a time a regular app (non system app).
Articudos said:
001 patchfile.
0s.rej is here..same as .patchfile.
Code:
--- .repo/manifest.xml 2012-11-19 00:34:09.716145171 -0800
+++ .repo/manifest.xml 2012-11-16 15:00:40.058124761 -0800
@@ -34,6 +34,8 @@
<project path="device/lge/mako" name="device/lge/mako" groups="device" />
<project path="device/lge/mako-kernel" name="device/lge/mako-kernel" groups="device" />
<project path="device/sample" name="device/sample" />
+ <project path="device/samsung/crespo" name="device/samsung/crespo" groups="device" revision="refs/tags/android-4.1.2_r1" />
+ <project path="device/samsung/crespo4g" name="device/samsung/crespo4g" groups="device" revision="refs/tags/android-4.1.2_r1" />
<project path="device/samsung/maguro" name="device/samsung/maguro" groups="device" />
<project path="device/samsung/manta" name="device/samsung/manta" groups="device" />
<project path="device/samsung/toro" name="device/samsung/toro" groups="device" />
Click to expand...
Click to collapse
Are you inside of the directory where you initialized the repo? Might be easier to just manually edit .repo/manifest.xml to add those two required lines. Are you trying to build it for crespo?
greenblue said:
Are you inside of the directory where you initialized the repo? Might be easier to just manually edit .repo/manifest.xml to add those two required lines. Are you trying to build it for crespo?
Click to expand...
Click to collapse
Yeah, crespo..
I downloaded in ~/ , and moved whole file to ~/crespo_4.2/ .
It can cause problem..?
Articudos said:
Yeah, crespo..
I downloaded in ~/ , and moved whole file to ~/crespo_4.2/ .
It can cause problem..?
Click to expand...
Click to collapse
So you created a git repo inside ~/, successfully synced, and then you moved all the contents to crespo_4.2? This is seperate from the download. You need to sync a few gigabytes of aosp code first.
greenblue said:
So you created a git repo inside ~/, successfully synced, and then you moved all the contents to crespo_4.2? This is seperate from the download. You need to sync a few gigabytes of aosp code first.
Click to expand...
Click to collapse
Aha, OK. It was first time using linux
I'll try it again and post result here!
BTW, There is way to sync in ~/crespo_4.2/ , not ~/ ?
edit: Success!
Articudos said:
BTW, There is way to sync in ~/crespo_4.2/ , not ~/ ?
Click to expand...
Click to collapse
Move ~/.repo to ~/crespo_4.2 and then sync. If you are using a file manager, you have to set it to show hidden files first.
greenblue said:
Move ~/.repo to ~/crespo_4.2 and then sync. If you are using a file manager, you have to set it to show hidden files first.
Click to expand...
Click to collapse
It worked!
About patch 004 and 005,
Do I have to modify it for crespo GSM?
nice try articudos i thing you can make a good rom for us
leap_ahead said:
nice try articudos i thing you can make a good rom for us
Click to expand...
Click to collapse
Yeah, I'm learning sth now..
Articudos said:
Yeah, I'm learning sth now..
Click to expand...
Click to collapse
continue that good job
Articudos said:
About patch 004 and 005,
Do I have to modify it for crespo GSM?
Click to expand...
Click to collapse
For 004, it does not exist in the cyanogenmod tree so it is unlikely to be needed.
For 005, it has already been done by default for crespo.
Sorry for bothering you... How can I apply step6 to crespo?
Second question,
If 4.2.1 source releases, how can I update source w/o losing my commits?
Sent from my Nexus S using Tapatalk 2

[Q] "pm disable" - Where's it store the list?

I know of three ways to disable/freeze unwanted apps:
Using the command pm disable PACKAGE_OR_COMPONENT
Titanium Backup Pro
Disable the app through the built-in Application Manager (does not work for all apps)
Here's some details I could find about pm disable: http://www.kpbird.com/2013/05/android-shell-command-pm-package-manager.html
But my question to the community: When an app is disabled/frozen by any of these methods, what keeps track of these? Where is this data stored?
If nobody can answer my question above, then I have a different question: Are there any apps/commands that would allow you to view/log filesystem changes on-the-fly? (goal with this: start this "watcher" app, then disable an app using pm, and figure out what changed).
Thanks!
I found it! After quite some time grepping around, I found that the list of enabled/disabled apps is located here:
/data/system/users/0/package-restrictions.xml
Now, all I need to do is find a way to update this file in bash, without relying on any external programs. I plan to make a flashable zip to run a simple script that searches for each of the following three lines:
Code:
<pkg name="com.wssyncmldm" enabled="1" />
<pkg name="com.LocalFota" enabled="1" />
<pkg name="com.sec.android.fwupgrade" enabled="1" />
And updates each to a "2".
If any of the three lines are not found, the script should add them near the end of the file, on new lines immediately before this one:
Code:
<preferred-activities />
One more thing: it's possible that a person might have multiple user accounts on their phone (seems rare...), there could be other package-restrictions.xml files in other directories (maybe a /data/system/users/1/ or example). It would be ideal if the script could search for other user accounts and make the same modifications.
Any scripting-heroes willing to make this up for me??
BTW: the point/purpose of this is to disable the OTA updates from a flashable zip, in a custom recovery, without requiring a rooted system.
Aou said:
I found it! After quite some time grepping around, I found that the list of enabled/disabled apps is located here:
/data/system/users/0/package-restrictions.xml
Now, all I need to do is find a way to update this file in bash, without relying on any external programs. I plan to make a flashable zip to run a simple script that searches for each of the following three lines:
Code:
<pkg name="com.wssyncmldm" enabled="1" />
<pkg name="com.LocalFota" enabled="1" />
<pkg name="com.sec.android.fwupgrade" enabled="1" />
And updates each to a "2".
If any of the three lines are not found, the script should add them near the end of the file, on new lines immediately before this one:
Code:
<preferred-activities />
One more thing: it's possible that a person might have multiple user accounts on their phone (seems rare...), there could be other package-restrictions.xml files in other directories (maybe a /data/system/users/1/ or example). It would be ideal if the script could search for other user accounts and make the same modifications.
Any scripting-heroes willing to make this up for me??
BTW: the point/purpose of this is to disable the OTA updates from a flashable zip, in a custom recovery, without requiring a rooted system.
Click to expand...
Click to collapse
I could probably make a flashable zip that replaces package-restrictions.xml with a modified version that disables OTA
do you have that file?
the bash script looking for and replacing lines is not possible AFAIK via recovery.
jetlitheone said:
I could probably make a flashable zip that replaces package-restrictions.xml with a modified version that disables OTA
do you have that file?
the bash script looking for and replacing lines is not possible AFAIK via recovery.
Click to expand...
Click to collapse
Well, I've done this sort of thing in MS-DOS batch, using For loops (reading the file, line-by-line and processing it). I'll have to look into the bash equivalent.
Also, simply replacing the file is far too dangerous. If any entries in that file mismatch what's installed on the system, the device will not boot properly (TouchWiz launcher will not load, for one). Every time you enable/disable an app, the entire file shifts around and changes. It's a nightmare. But dealing with it line-by-line would be feasible...
Aou said:
Well, I've done this sort of thing in MS-DOS batch, using For loops (reading the file, line-by-line and processing it). I'll have to look into the bash equivalent.
Also, simply replacing the file is far too dangerous. If any entries in that file mismatch what's installed on the system, the device will not boot properly (TouchWiz launcher will not load, for one). Every time you enable/disable an app, the entire file shifts around and changes. It's a nightmare. But dealing with it line-by-line would be feasible...
Click to expand...
Click to collapse
Yeah I know what you mean I don't know it might be possible. Only thing I know of is applications that run bash scripts on boot up. But not of running one via a flashable zip in recovery
Sent from my SGH-I337 using Tapatalk 4 Beta
Based on some of the flashable zips out there, I think it's possible to use busybox to execute a bash script. I came up with a little bit of crappy psuedocode for what needs to happen:
Code:
set foundFlag = 0
if (file exists: /system/app/<app>.apk) do:
for (each line of package-restrictions.xml) do:
if ( line = <pkg name="com.wssyncmldm" enabled="1" /> ) do:
echo <pkg name="com.wssyncmldm" enabled="2" /> into newfile
set foundFlag = 1
else do:
echo line into newfile
end if
end for
if (foundFlag != 1) do:
for (each line of package-restrictions.xml) do:
if ( line = <preferred-activities /> ) do:
echo <pkg name="com.wssyncmldm" enabled="2" /> into newfile
echo <preferred-activities /> into newfile
else do:
echo line into newfile
end if
end for
end if
move newfile -> package-restrictions.xml
end if
The above would need to be repeated 3 times for the 3 apk's that need to be disabled.
.

[Q] launcher 8 - can't set as default launcher

Hi there,
I've posted this already in the launcher 8 thread, but I guess it should've gone here from the start since it's a very specific nook question, so here goes:
I've rooted my nook and am running launcher 8 now, I am on 1.5.2 right now but I've tried newer versions too which still work with the old android system running on the nook. The latest 2.6 and 3.0 versions do not work.
I've ran into a problem though: I don't seem to be able to choose launcher 8 as the default launcher when I press the home button.
Is there anything I can do to solve this?
Some pictures attached just to make clear what my problem actually is.
schelleursli said:
Hi there,
I've posted this already in the launcher 8 thread, but I guess it should've gone here from the start since it's a very specific nook question, so here goes:
I've rooted my nook and am running launcher 8 now, I am on 1.5.2 right now but I've tried newer versions too which still work with the old android system running on the nook. The latest 2.6 and 3.0 versions do not work.
I've ran into a problem though: I don't seem to be able to choose launcher 8 as the default launcher when I press the home button.
Is there anything I can do to solve this?
Some pictures attached just to make clear what my problem actually is.
Click to expand...
Click to collapse
It appears from the photographs that your Nook is not recognizing Launcher8 as a launcher app, but instead as a regular app. Are you able to view Launcher8 from ReLaunch's app drawer?
Thanks for the reply, I guess you mean the "All applications" bit in ReLaunch? Then yes, it's there, thats how I start it at the moment.
I've already tried fiddling with the AndroidManifest.xml but I really don't know what I'm doing.
schelleursli said:
Thanks for the reply, I guess you mean the "All applications" bit in ReLaunch? Then yes, it's there, thats how I start it at the moment.
I've already tried fiddling with the AndroidManifest.xml but I really don't know what I'm doing.
Click to expand...
Click to collapse
Yes, "All applications" is ReLaunch's app drawer.
I don't know exactly how to fix this, but let me do some research, and I'll get back to you.
Check the intent-filter's in AndroidManifest.xml
You probably should see something like this:
Code:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
You can also try through ADB shell:
Code:
am start -a android.intent.action.MAIN -c android.intent.category.HOME
and see what happens.
Renate NST said:
Check the intent-filter's in AndroidManifest.xml
You probably should see something like this:
Code:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
You can also try through ADB shell:
Code:
am start -a android.intent.action.MAIN -c android.intent.category.HOME
and see what happens.
Click to expand...
Click to collapse
Thanks for that, I've tried fiddling with the Manifest but I always either get a non working application with an entry in the Home menu or a working application with no entry in the Home menu to choose as default.
If you feel like having a look, this is the default manifest that is in use by launcher 8: pastebin.com/K8BknQuk (I'm not allowed to post links yet)
I do not have the android sdk installed or anything prepared to run ADB on my nook, I'll look into that at some point if the manifest fiddling doesn't work out.
The AndroidManifest.xml looks fine, which is to be expected.
Maybe you "picked" the wrong application at some point?
That's all in /data/system/packages.xml
Check preferred-activities in there.
You can always delete that whole section, as long as you do it cleanly.
Thanks for the continued help. I've had a look at packages.xml preferred-activities looks like this:
Code:
<preferred-activities>
<item name="com.lx.launcher8/.AnallLauncher" match="100000" set="4">
<set name="com.bn.nook.home/.HomeActivity" />
<set name="com.lx.launcher8/.AnallLauncher" />
<set name="com.lx.launcher8/.Home" />
<set name="com.harasoft.relaunch/.Home" />
<filter>
<action name="android.intent.action.MAIN" />
<cat name="android.intent.category.HOME" />
<cat name="android.intent.category.DEFAULT" />
</filter>
</item>
</preferred-activities>
I can turn off my nook and turn it on again then launcher 8 starts by default, but if I press the "n" button on the nook and then press home on the touch-screen I still only get the choice between ReLaunch and the default nook Home. I've also tried completely resetting my device restoring an old unrooted backup then root it again and set it up from scratch, same problem.
I don't have my nook with me (lost it a few days ago) but I seems to remember seeing a nook manager app that can help program what buttons do what, including the N button. You may have to lose the pop up home/library/shop/search/glowlight/setting thing (you could delegate that function to long press N if you want.) but the app should properly program the N button to start up the launcher 8. I THINK it's the Nook Color Tool? I remember the appropriate app came with the 1337 ROM.
Deafcyclist said:
I don't have my nook with me (lost it a few days ago) but I seems to remember seeing a nook manager app that can help program what buttons do what, including the N button. You may have to lose the pop up home/library/shop/search/glowlight/setting thing (you could delegate that function to long press N if you want.) but the app should properly program the N button to start up the launcher 8. I THINK it's the Nook Color Tool? I remember the appropriate app came with the 1337 ROM.
Click to expand...
Click to collapse
Yep, that's Nook Touch Mod Manager. It comes pre-installed with NookManager and my 1337 ROM, but it can also be installed manually with some modified framework-related .jar files.
Thanks for the tip, sounds like a good workaround for now.
edit: I see I need a running build environment for that, will see if I can get this to work on my virtual machine.
edit2: got it working
Oh, the "n" button?
B&N has that hardwired to do some B&N specific intent.
This problem has been solved many different ways.
My solution is to patch where the problem is, com.android.internal.policy.impl.PhoneWindowManager (in android.policy.jar).
This just makes the "n" key a normal Home key.
Code:
apktool d android.policy.jar -o C:\AP
mergesmali /v C:\AP PhoneWindowManager.smali PhoneWindowManager$HomeButtonHandler.smali
apktool b C:\AP -o android.policy.jar
Check the mergesmali link in the signature, a zip of the patches is there too.
No it was the "Home" menu button you open by pressing the "n" button. But with Nook Touch Mod Manager I've managed to change the behaviour of said "Home" even though Launcher 8 still wasn't shown as a choice. Thanks for all the help.

Add Any Language Support To Any Android( 6.0+) Device Without Root

At the beginng
English is not my mother tongue so please excuse any errors on my part.
but I am gonna try to clear things as possible as I can
requirements
1-pc with installed Windows
2-android studio(with jdk and sdk ......etc)
3-some app development skills
let's start by support for examble Arabic language for setting.apk application.
for the others apps the same steps
steps
1-run android studio then create new project
2-choose the minimum sdk to be 21
3-the most important thing is create your app with no activity
4-edit AndroidManifest.xml
which in the dirctory
app/src/main
to be like
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.forsan.com.settings">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
</application>
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
<overlay androidriority="2" android:targetPackage="com.android.settings"/>
</manifest>
5-navigate to res dirctory
and create dirctory with the name values-ar
now copy values/string.xml file to values-ar folder(after translate to Arabic )
6-build the apk then install the apk as any user app
note
if you get build error just read the error and try to correct it(almost syntax error)
7-install more local app then grant the permission
by the command
adb shell pm grant jp.co.c_lis.ccl.morelocale android.permission.CHANGE_CONFIGURATION
8-launch morelocal app and select the Arabic language and enjoy
some times you need to reboot to allow changes to take effect
my setting.apk
in the attachments
my setting.apk app link
https://mega.nz/#!43JTgICK!R7iNaa54TXVwVduGLwSVoH4bNdenK_4L1klSiSa3SJE
apk can not be installed because it conflicts with another app with the same package name !!
nashwannose said:
apk can not be installed because it conflicts with another app with the same package name !!
Click to expand...
Click to collapse
do not use any system apps or user apps package name.
create your app with distinct package name.
when you install my app what you get?
Forsan Al-nemah said:
do not use any system apps or user apps package name.
create your app with distinct package name.
when you install my app what you get?
Click to expand...
Click to collapse
<overlay androidriority="2" android:targetPackage="com.android.settings"/>
keep the above line as is it

Categories

Resources