summaryrefslogtreecommitdiffstats
path: root/services
Commit message (Collapse)AuthorAgeFilesLines
* Support enforcing a minimum delay between notification sounds of an app.Danny Baumann2016-10-202-1/+71
| | | | | | Useful e.g. for messenger apps. Change-Id: If8e8cc9e2f02d70537c1f9dc14f22bbd0ec1e9a6
* (Optionally) allow vibration during priority zen mode.Danny Baumann2016-10-192-15/+51
| | | | Change-Id: I6fb81c5898fbfe9e89a4af3fdc042266c8a9be6c
* Fix volume keys wakeup status handlingGabriele M2016-10-081-4/+36
| | | | | | | | | | | | | The same status flag is used for the three different volume keys, however nothing prevents users from pressing multiple keys at the same time. This allows to set the status flag with one volume key and clear it with the other volume key. Use one flag per key so that we never end up in an inconsistent state. This fixes the seldom power button issues that happen when the "volume wake" feature is enabled. Change-Id: I08f5f9ff696bef3dd840cff97d570e44ebe03e4e
* Merge tag 'android-6.0.1_r72' into HEADJessica Wagantall2016-10-065-15/+63
|\ | | | | | | | | | | | | Android 6.0.1 Release 72 (M4B30X) # gpg: Signature made Tue 04 Oct 2016 09:47:40 AM PDT using DSA key ID 9AB10E78 # gpg: Can't check signature: public key not found
| * DO NOT MERGE: Fix vulnerability where large GPS XTRA data can beDavid Christie2016-08-261-2/+19
| | | | | | | | | | | | | | | | | | injected. -Can potentially crash system with OOM. Bug: 29555864 Change-Id: I7157f48dddf148a9bcab029cf12e26a58d8054f4 (cherry picked from commit 5439aabb165b5a760d1e580016bf1d6fd963cb65)
| * Bind fingerprint when we start authentication - DO NOT MERGEJim Miller2016-08-261-9/+16
| | | | | | | | | | | | | | | | | | | | | | This fixes a bug where it was possible to authenticate the wrong user. We now bind the userId when we start authentication and confirm it when authentication completes. Fixes bug 30744668 Change-Id: I346d92c301414ed81e11fa9c171584c7ae4341c2 (cherry picked from commit b6f4b48df273d210d13631b4c2426482feb40c97)
| * Fix vulnerability in LockSettings serviceJim Miller2016-08-261-0/+6
| | | | | | | | | | | | | | Fixes bug 30003944 Change-Id: I8700d4424c6186c8d5e71d2fdede0223ad86904d (cherry picked from commit 2d71384a139ae27cbc7b57f06662bf6ee2010f2b)
| * DO NOT MERGE: Clean up when recycling a pid with a pending launchAmith Yamasani2016-08-262-4/+22
| | | | | | | | | | | | | | | | | | Fix for accidental launch of a broadcast receiver in an incorrect app instance. Bug: 30202481 Change-Id: I8ec8f19c633f3aec8da084dab5fd5b312443336f (cherry picked from commit d1eeb5b7b489d47994a71510f1ed5b97b8e32a7a)
| * Reduce shell power over user management.Sudheer Shanka2016-08-171-5/+75
| | | | | | | | | | | | | | | | Remove MANAGE_USERS permission from shell and whitelist it for some specific functionality. Bug: 29189712 Change-Id: Ifb37448c091af91991964511e3efb1bb4dea1ff3
| * DO NOT MERGE: Allow apps with CREATE_USERS permission to call UM.getProfiles.Sudheer Shanka2016-08-161-1/+1
| | | | | | | | | | | | | | Bug: 29189712 Bug: 30317026 Bug: 30235113 Change-Id: Icced9805a56675e86f894c458c4a5a0048fd54c0
| * DO NOT MERGE Block the user from entering safe boot modeBenjamin Franz2016-08-161-0/+7
| | | | | | | | | | | | | | | | Block the user from entering safe boot mode if the DISALLOW_SAFE_BOOT policy is set. Bug: 26251884 Change-Id: I4945d5d676928346c11ea305a5b6a2e1a42e94e6
| * Check caller's uid before allowing notification policy access.Julia Reynolds2016-08-161-0/+5
| | | | | | | | | | Bug: 29421441 Change-Id: I7460268595e932d54660b02007bcd68b95fe8aec
* | PhoneWindowManager: set focus flags on keyguard panelsRoman Birg2016-09-084-7/+32
| | | | | | | | | | | | | | Ticket: CYNGNOS-3251 Change-Id: I394514335bdaeafdc7b89918ece1fe3d2794647f Signed-off-by: Roman Birg <roman@cyngn.com>
* | Merge tag 'android-6.0.1_r66' into HEADJessica Wagantall2016-09-073-1/+13
|\ \ | | | | | | | | | | | | | | | | | | Android 6.0.1 release 66 # gpg: Signature made Tue 06 Sep 2016 09:26:45 AM PDT using DSA key ID 9AB10E78 # gpg: Can't check signature: public key not found
| * | DO NOT MERGE: Allow apps with CREATE_USERS permission to call UM.getProfiles.Sudheer Shanka2016-08-011-1/+1
| | | | | | | | | | | | | | | | | | | | | Bug: 29189712 Bug: 30317026 Bug: 30235113 Change-Id: Icced9805a56675e86f894c458c4a5a0048fd54c0
| * | DO NOT MERGE Block the user from entering safe boot modeBenjamin Franz2016-07-211-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | Block the user from entering safe boot mode if the DISALLOW_SAFE_BOOT policy is set. Bug: 26251884 Change-Id: I4945d5d676928346c11ea305a5b6a2e1a42e94e6
| * | Check caller's uid before allowing notification policy access.Julia Reynolds2016-07-211-0/+5
| | | | | | | | | | | | | | | Bug: 29421441 Change-Id: I7460268595e932d54660b02007bcd68b95fe8aec
* | | connectivity-service: fix/improve unique hostnameAlexander Wuerstlein2016-09-021-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ConnectivityService should set the net.hostname property to either the current DEVICE_HOSTNAME or android-ANDROID_ID or leave net.hostname unchanged if already set. However, the logic was flawed such that if DEVICE_HOSTNAME was empty but net.hostname was not, net.hostname would always be set to an empty string, leading to DHCP breakage later on. The logic has been fixed, clarified and improved such that: net.hostname will only be changed if it is empty. If net.hostname is empty, it will be set to either (in order): the nonempty value of DEVICE_HOSTNAME, android-ANDROID_ID or android-r-RANDOM_NUMBER. The last option is an addition to have a sensible fallback in case both DEVICE_HOSTNAME and ANDROID_ID are empty. The random number is generated by java.util.Random, because I consider cryptographically strong randomness unnecessary here and think possible blocking in SecureRandom might be undesirable. Thanks to stargo for pointing me to the right place to edit. Thanks to Ethan Chen for his stylistic advice. Change-Id: I603ab4d6a265456bf4fa310939965cfa677fc881
* | | Ensure DHCP requests have nonempty hostnamesAlexander Wuerstlein2016-08-311-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the net.hostname property is empty or not found, Android issues DHCP requests with an empty hostname field (option 12). RFC2132 section 3.14 prescribes a minimum length of 1 byte for the hostname. To fix this, a generic 'android-dhcp' hostname is used as a fallback. Change-Id: I7a92e7295f72b3255e4fba6498fb4039906eb702
* | | Prevent invocation of startNavigating() when GPS is offHarikrishnan Hariharan2016-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | When system comes back from idle state, GpsLocationProvider invokes startNavigating() even when GPS is turned off in settings. Change-Id: Ie6dbf60a743cce429ab83876a3cb80f7e4b0e0f6 CRs-Fixed: 1022372
* | | services: core: use proper tags when loggingAlexander Martinz2016-08-211-5/+5
| | | | | | | | | | | | | | | Change-Id: Idbcd94ae8004352c5241fc81ac9595173001a58d Signed-off-by: Alexander Martinz <eviscerationls@gmail.com>
* | | Ensure packages on adopted media do not move when updatedSam Mortimer2016-08-181-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Packages not installed with PackageInstaller.Session that are moved to adopted storage via android storage settings will get moved back to private internal storage when the package is later updated. This causes the app to lose it's data (and leaves the data dir dangling on the original adopted location). play market installs do not have this problem (because they use an installer session) but pretty much every other app install route does. eg adb install and other app stores. Change-Id: I0f606b230460f32310921c75e58ccb5b610268e4
* | | am: Account for time changes when showing recent activitiestao.pei2016-08-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Procedures] 1. Go to Settings->Date&Time Set time backwards, eg. 2016.6.15 -> 2016.6.10 2. Tap recent apps button to show recent activities. There will be no activities shown. Change-Id: Ifd860c0d08fac49f9d3c8eac590b6db9e6afb09d
* | | [2/2] base: cm custom boot dexopt UIAlexander Martinz2016-08-105-78/+35
| | | | | | | | | | | | | | | | | | | | | * Pass app info and number of installed packages to boot message UI * Ui by Asher and Joey, based on Alexander's previous work Change-Id: I9ec9d0cb0e20a9bac73e126f6b6f3965400f05e7
* | | pm: resolver: Don't hold the lock when calling into the resolverDiogo Ferreira2016-08-101-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This lock isn't really needed because the proxy will return false if the resolver package doesn't exist or throws a remote exception. Having this lock causes a deadlock between the PM and the app: resolveIntent holds the PackageManagerService#mPackages lock and then tries to lock on PackageMonitor#mLock. Meanwhile, when packages change, LaodedApk holds onto the PackageMonitor#mLock and then tries to query the intent services and tries to lock on PackageManagerService#mPackages. Relevant traces below: "Binder_4" prio=5 tid=60 Blocked | group="main" sCount=1 dsCount=0 obj=0x136f00a0 self=0x7f743d2a00 | sysTid=949 nice=0 cgrp=default sched=0/0 handle=0x7f74b93440 | state=S schedstat=( 1032333944 663457790 2968 ) utm=74 stm=29 core=3 HZ=100 | stack=0x7f74a97000-0x7f74a99000 stackSize=1013KB | held mutexes= at com.android.server.ServiceWatcher.getBinder(ServiceWatcher.java:368) - waiting to lock <0x083e77c9> (a java.lang.Object) held by thread 9 at org.cyanogenmod.platform.internal.AppSuggestProviderProxy.getService(AppSuggestProviderProxy.java:68) at org.cyanogenmod.platform.internal.AppSuggestProviderProxy.handles(AppSuggestProviderProxy.java:73) at org.cyanogenmod.platform.internal.AppSuggestManagerService$1.handles(AppSuggestManagerService.java:50) at cyanogenmod.app.suggest.AppSuggestManager.handles(AppSuggestManager.java:101) at com.android.server.pm.PackageManagerService.shouldIncludeResolveActivity(PackageManagerService.java:4704) - locked <0x0183dd64> (a android.util.ArrayMap) at com.android.server.pm.PackageManagerService.chooseBestActivity(PackageManagerService.java:4430) at com.android.server.pm.PackageManagerService.resolveIntent(PackageManagerService.java:4353) at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:628) at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:2754) at android.os.Binder.execTransact(Binder.java:453) "android.bg" prio=5 tid=9 Blocked | group="main" sCount=1 dsCount=0 obj=0x12c04b80 self=0x7f84a7d800 | sysTid=766 nice=10 cgrp=bg_non_interactive sched=0/0 handle=0x7f89b3f440 | state=S schedstat=( 1237112536 3291977271 2848 ) utm=62 stm=61 core=2 HZ=100 | stack=0x7f89a3d000-0x7f89a3f000 stackSize=1037KB | held mutexes= at com.android.server.pm.PackageManagerService.queryIntentServices(PackageManagerService.java:5405) - waiting to lock <0x0183dd64> (a android.util.ArrayMap) held by thread 60 at android.app.ApplicationPackageManager.queryIntentServicesAsUser(ApplicationPackageManager.java:731) at com.android.server.ServiceWatcher.bindBestPackageLocked(ServiceWatcher.java:167) at com.android.server.ServiceWatcher.-wrap0(ServiceWatcher.java:-1) at com.android.server.ServiceWatcher$1.onPackageChanged(ServiceWatcher.java:321) - locked <0x083e77c9> (a java.lang.Object) at com.android.internal.content.PackageMonitor.onReceive(PackageMonitor.java:352) at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:882) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.os.HandlerThread.run(HandlerThread.java:61) Change-Id: Id4775ca4d12b6cf42bea97bd74e4c38d591a1cf3
* | | framework: extend provision check to SEARCH intentsRoman Birg2016-08-081-0/+2
| | | | | | | | | | | | | | | | | | | | | TIcket: CYNGNOS-3242 Change-Id: I61ce295737471ca9bb59f45c616d626bbc4f7784 Signed-off-by: Roman Birg <roman@cyngn.com>
* | | fw: enforce android.permission.PREVENT_SYSTEM_KEYS in system serverScott Mertz2016-08-052-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since privateFlags can be accessed and modified via reflection due to change 5d927c2d8e, the prevent system keys or prevent power keys flag can be set and deployed without ever calling setPrivateFlags directly. Move enforcing to system server to prevent app tampering. TICKET: CYAN-7921 (open source JIRA) Found by Maciej Krysztofiak Change-Id: I53c2804d0283692036f5cc95e6ad57821bc0655a
* | | framework: don't allow assist activities while not provisionedRoman Birg2016-08-031-0/+14
| | | | | | | | | | | | | | | | | | | | | Ticket: CYNGNOS-3233 Change-Id: I40dae6b6fd1da497024965469fea0adc78a661c3 Signed-off-by: Roman Birg <roman@cyngn.com>
* | | am: Notify zygote of font change in ActivityManagerServiced34d2016-08-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | With the theme service being moved to its own context, it can no longer set system properties so have ActivityManagerService take care of this when updating the configuration. Change-Id: Ia5cbbf921c7c716631db1e34f5e2b04c5d814328
* | | Merge tag 'android-6.0.1_r61' into HEADJessica Wagantall2016-08-025-28/+355
|\ \ \ | |/ / | | | | | | | | | | | | Android 6.0.1 Release 61 (MOB30Z) Change-Id: Ib003ccb606e0d77209291b757ea36399d3b65814
| * | Reduce shell power over user management.Sudheer Shanka2016-06-241-5/+75
| | | | | | | | | | | | | | | | | | | | | | | | Remove MANAGE_USERS permission from shell and whitelist it for some specific functionality. Bug: 29189712 Change-Id: Ifb37448c091af91991964511e3efb1bb4dea1ff3
| * | DO NOT MERGE Disable app pinning when emergency call button pressedHall Liu2016-06-242-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also disables app pinning when the "return to call" button is pressed and brings up the in-call screen when app pinning is stopped if there is an existing call. Combination of ag/1091397 and ag/1085584 adapted for MNC. Bug: 28558307 Bug: 28761672 Change-Id: I82ec4042bff387c845ce571b197a4a86e1dd5ec8
| * | DO NOT MERGE Fix intent filter prioritiesTodd Kennedy2016-06-241-18/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since this is a backport, there is only one rule that guards intent filter priorities: 1) Updates will NOT be granted a priority greater than the priority defined on the system image. Bug: 27450489 Change-Id: Ifcec4d7a59e684331399abc41eea1bd6876155a4
| * | Don't trust callers to supply app info to bindBackupAgent()Christopher Tate2016-06-242-4/+16
| |/ | | | | | | | | | | | | | | | | | | | | | | | | Get the canonical identity and metadata about the package from the Package Manager at time of usage rather than rely on the caller to have gotten things right, even when the caller has the system uid. Bug 28795098 Change-Id: I215786bc894dedf7ca28e9c80cefabd0e40ca877 Merge conflict resolution for ag/1133474 (referencing ag/1148862) - directly to mnc-mr2-release
* | mountservice: Don't nuke all volumes when decryptingSteve Kondik2016-07-291-1/+6
| | | | | | | | | | | | | | * Instead, just unmount the emulated internal volume since it's the only one which can prevent cryptfs from restarting. Change-Id: I757babaf763b4ef789b165d116da0708a3530e99
* | pm: Skip custom resolver use when mOnlyCoreSteve Kondik2016-07-281-1/+1
| | | | | | | | | | | | * It just throws exceptions. Change-Id: I503a2b787a661b3ab5c52b675e49f2eae92c9ec0
* | lights: Make sure the lights are outSteve Kondik2016-07-282-1/+16
| | | | | | | | | | | | | | | | | | | | | | * Annoying situation where the battery charging LED comes on in the crypto startup screen, but never gets turned off because of caching. * Explicitly turn off LEDs after the bootanimation completes, and always set the full state to the hardware on the first call regardless if it's all zeros. Change-Id: I8cd2325ec5d8924391e4fc62249f6dd737d52f3e
* | mountservice: Shut down volumes before restarting frameworkSteve Kondik2016-07-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | * Vold assumes that when FUSE is killed, the mount is gone. This isn't true with sdcardfs, since the daemon doesn't continue to run. Cryptfs was assuming this behavior, and the system would hang during decryption since the emulated storage doesn't get unmounted. * Send the shutdown command before committing suicide. Change-Id: Ifcfa63f0499a717f34482754cea95b90622290c6
* | Improve the scan processmqi2016-07-263-42/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use multi task to speed up the scan process CRs-Fixed: 984513 base: fix native crash in system_server Currently PackageManagerService uses multi-thread to scan packages to speed up, when scan each package, it sometimes will call SELinux's restorecon, then libselinux uses global variable fc_sehandle to selabel_lookup and write in compile_regex, so it's not thread-safe, so will cause invalid address with possibility. From backtrace, the final crash happens in pcre_exec. Add one lock in NativeLibraryHelper to make restorecon safe. Change-Id: Ida43fcda01d3450befea6afa0be5da27bb195def CRs-Fixed: 1002406, 1027381
* | Factory reset: Wipe media by defaultScott Mertz2016-07-251-1/+1
| | | | | | | | | | | | | | | | | | | | These hidden APIs are called from some public APIs (DevicePolicyManager), so we shouldn't change the default behavior. The intent API should also be considered public, so change that as well. FEIJ-1610 Change-Id: Ib9591c122dbe6168e7e237444c754b9608be0953
* | PackageManager: make protected-broadcasts permission awareRoman Birg2016-07-212-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This extends the <protected-broadcast> mechanism to allow protecting actions based on a permission for system apps. For instance: <protected-broadcast android:name="ACTION_A" android:permission="PERMISSION_X" /> will restrict intents with action "ACTION_A" to be only sent with apps holding the "PERMISSION_X" permission. Note that system UIDs will bypass the permission check and always be allowed, just like the normal protected-broadcast mechanism. You must still be a system application to delcare a protected broadcast. Change-Id: Id25cffd233d400800dcb5249c5f487134e1b4152 Signed-off-by: Roman Birg <roman@cyngn.com>
* | AudioDucking : Check session playback stateDanesh M2016-07-191-23/+30
| | | | | | | | | | | | | | | | | | | | Use CMAudioManager to listen for session callbacks for STREAM_MUSIC. Fixes issue with youtube videos not being detected as active media. CYNGNOS-3072 Change-Id: Id47d064b28ee6e1ed5320a6a70ec3e3ba5268785
* | pm: Fix lock insanity with ActivityManagerSteve Kondik2016-07-131-16/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * It's possible that ActivityManager may be trying to stop a package while the PackageManager is trying to perform a scan during an upgrade. When AM tries to perform the stop, it will attempt to look up the package user, which will try to take the PM lock. This is fine, but while we're holding the lock in PM during the package upgrade we're attempting to call back into AM to get the current theme, which tries to take the AM lock. This results in the entire system locking up until watchdog kills off system server. * Instead of looking up the current theme while holding the lock in PM, look it up before locking the whole place down. Change-Id: If322a7f214218740d73043ff65860ccadd92f01d
* | pm: Avoid filtering out protected components in implicit queries.Adnan Begovic2016-07-111-3/+6
| | | | | | | | | | | | | | | | | | Implicity queries resolve the target component for an intent, the intent (if fired) will be gated by the protected apps feature implementation within the activity stack supervisor. Change-Id: Ib079cfa6093f472d4b85f6b4a986440a764affa3 TICKET: FEIJ-1449
* | Merge remote-tracking branch 'remotes/android-6.0.1_r52' into HEADJessica Wagantall2016-07-073-7/+53
|\ \ | |/ | | | | | | | | Ticket: CYNGNOS-3020 Change-Id: Ia14b6d0120de0b458c7c249a11041ff121389cfa
| * Backport of backup transport whitelistChristopher Tate2016-05-272-7/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Sysconfig define a whitelist of permitted backup transports Previously any apk bundled in priv-app could insert a backup transport. Reduce risk surface by giving the OEM explicit control over who is allowed to handle backup data. Bug 28406080 Backport of 494df791728f4d42d67e935c327910975993ad29 from N Change-Id: I9f90e324169a68720d608f74754d284a7e59cf87
| * Fix missing permission check when saving pattern/passwordJim Miller2016-05-271-0/+2
| | | | | | | | | | | | Fixes bug 28163930 Change-Id: Ic98ef20933b352159b88fdef331e83e9ef6e1f20
* | SystemConfig: allow app-link to be set to any possible stateWilhelm Fitzpatrick2016-07-052-9/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow app-link entries in /system/etc/sysconfig to set a system apps app-link state to any of the available states, and not just "always" as was previously possible. If the "state" attribute is not present in an app-link declaration, the state will default to "always" to preserve existing behavior. This change is needed to allow certain apps to be set to the "always-ask" state so they'll be sure to participate in intent resolution via the disambugation dialog in the default configuration. These setting can be changed by the user via the standard app-link configuration section in Settings -> Apps. Change-Id: I2f98c69ebbeb40492d7ae8d33327986675b18b65
* | am: clear protected apps from recentsScott Mertz2016-07-052-1/+32
| | | | | | | | | | | | | | | | Remove newly protected apps from recent tasks if any activity in the stack is a restricted component. FEIJ-1361 Change-Id: Ifd337bfe8356613d098ff00c575db117d35f2017
* | BT: Set persiste Bluetooth State during enable timeout caseGurpreet Ghai2016-07-021-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use case: When enable timeout occurs during S&S testing and Bluetooth state is moved from Turning On to Off. Steps: Changes related to enable timeout case, to test the changes, S&S testing can be done. Failure: Changes done to handle Bluetooth enable timeout case when Bluetooth state changes from Turning On to Off. Root cause: Setting Bluetooth Persist state to handle the enable timeout case so that Bluetooth doesnot self enable after enable timeout case is handled. Fix: Setting the Bluetooth Persist State to Off when enable timeout occurs. Change-Id: I17b3b05020eb7469666e6d8c88c86df7764b4024 CRs-Fixed: 1006444