diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index cd8b547..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-gen
-bin
-doc
-libs
-assets
-.settings
-secure.properties
-
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 629ac10..72dbfa6 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,8 +16,8 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.dsi.ant.server"
-    android:versionName="3.2/ft_userswitch/1"
-    android:versionCode="030200"
+    android:versionName="4.1.0"
+    android:versionCode="040100"
     android:sharedUserId="android.uid.system">
 
     <uses-sdk
@@ -53,18 +53,6 @@
     </application>
 
     <!-- These permissions should be defined in the system -->
-    <permission android:name="com.dsi.ant.permission.ANT"
-        android:protectionLevel="dangerous"
-        android:permissionGroup="android.permission-group.NETWORK"
-        android:description="@string/permdesc_ant"
-        android:label="@string/permlab_ant"/>
-
-    <permission android:name="com.dsi.ant.permission.ANT_ADMIN"
-        android:protectionLevel="dangerous"
-        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
-        android:description="@string/permdesc_antAdmin"
-        android:label="@string/permlab_antAdmin"/>
-
     <permission android:name="com.dsi.ant.permission.ANTRADIO"
         android:protectionLevel="dangerous"
         android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index 0dafa6b..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,5 +0,0 @@
-ANT Android System Package
-Copyright 2009-2012 Dynastream Innovations
-
-This product includes software developed at
-Dynastream Innovations (http://www.dynastream.com/).
\ No newline at end of file
diff --git a/README.md b/README.md
index 3ed7db9..debf7ca 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,32 @@
-Android_ANTHALService
-=====================
\ No newline at end of file
+# Android ANT HAL Service v.4.0.0 - 25 Aug 2014
+
+The ANT HAL Service functions as a JNI wrapper for the ANT HAL. 
+The ANT Hal Service provides the messaging and state control interface
+to the built-in adapter for the ANT Radio Service to interact with.
+
+
+## License
+
+Copyright 2009-2014 Dynastream Innovations
+
+This product includes software developed at
+Dynastream Innovations (http://www.dynastream.com/).
+
+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.
+
+
+## Changelog
+
+v4.0.0 - 25 Aug 2014 (changes since 3.2.0)
+-------------------------------------------------------------
+> * Remove ANT and ANT_ADMIN permission defines which conflict with ANT Radio Service defines with new Android L permission behaviour (INSTALL_FAILED_DUPLICATE_PERMISSIONS_ERROR)
\ No newline at end of file
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
deleted file mode 100644
index 9f4f8f4..0000000
--- a/ReleaseNotes.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-AntHalService - Release Notes
-v3.1.1
-2013-11-18
-
-Copyright 2011 Dynastream Innovations
-
-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.
-
-=============================================================
-1. USAGE
-
-The ANT HAL Service provides a transport from the ANT Radio Service (or 
-any application which binds to IAntHal AIDL) through JNI to the native ANT 
-stack code (libantradio.so).  It provides the basics of send/recieve Rx 
-messages, enable, disable and get the enebaled state.
-
-=============================================================
-2. REVISION HISTORY
-
-v.3.1.1: 2013-11-18 : Android_System_ANTHALService_3-1-0
-Improvement
-    [ANTDROID-2223] - Disable "Need BT On for ANT" logic by default
-
--------------------------------------------------------------
-
-v3.1.0 : 2013-07-19 : Android_System_ANTHALService_3-1-0
-
-Task
-    [ANTDROID-2035] - Remove tabs from AntService
-    [ANTDROID-1987] - Enable Bluetooth when ANT is enabled, if required by chip
-
-v3.0.0 : 2013-01-17 : Android_System_ANTHALService_3-0-0
-
-Bug
-
-    [ANTDROID-1383] - Can not build for Android 4.2 [Delete integration with BluetoothService]
-    [ANTDROID-1389] - onDestroy() starts new disable thread, when it should be ensuring there are no threads left running
-
--------------------------------------------------------------
-
-v2.1.0 : 2012-07-20 : Android_System_ANTHALService_2-1-0
-
-Bug
-
-    [ANTDROID-992] - getEnabledState returns disabled while ANT is enabling in BT service
-    [ANTDROID-1007] - if enable is called, and already enabled, ENABLED then ENABLING is sent out
-
-Task
-
-    [ANTDROID-1256] - Remove "DSI BlueZ" from name as service is generic
-    [ANTDROID-1248] - Remove full path from repository
-    [ANTDROID-1286] - Synchronise all updating of state
-
--------------------------------------------------------------
-
-v2.0.0 : 2012-07-20 : Android_System_ANTHALService_2-0-0
-
-Improvement
-
-    * [ANTDROID-614] - Specify targetSdkVersion to let the system use compatibility behaviours for newer versions
-
-New Feature
-
-    * [ANTDROID-953] - Do ANT enable/disable through BluetoothService ANT methods if they exist
-
-Task
-
-    * [ANTDROID-938] - .classpath needs new entry for ADT Libraries
-
-Sub-task
-
-    * [ANTDROID-786] - Only include LICENCE and NOTICE in system-package_X directories
-
--------------------------------------------------------------
-
-v1.3.2 : 2012-04-02 : Android_System_ANTHALService_1-3-2
-
-Bug
-
-    [ANTDROID-570] - Unregister callback does not work correctly
-
-New Feature
-
-    [ANTDROID-611] - Define meta-data to notify that this service provides a connection to built-in ANT hardware
-
--------------------------------------------------------------
-
-v1.3.1 : 2012-03-20 : Android_System_ANTHALService_1-3-1
-
-Bug
-
-    [ANTDROID-533] - Document how to build in to Android with a single HOWTO for each platform type (not seperate steps per component)
-
--------------------------------------------------------------
-
-v1.3.0 : 2012-02-22 : Android_System_AntHalService_1-3-0
-
-Code Task
-
-    * [ANTDROID-510] - Project has both proguard.cfg and proguard.flags files
-
-Improvement
-
-    * [ANTDROID-511] - Create Hard Reset call from ARS to native
-
-New Feature
-
-    * [ANTDROID-483] - configure ANT in Android build by chip
-
-Sub-task
-
-    * [ANTDROID-481] - create callback for native code so it can do state change intents
-
-
--------------------------------------------------------------
-
-v1.2.0 : 2011-12-12 : Android_System_AntHalService_1-2-0
-
-Bug
-
-    * [ANTDROID-314] - An unsuccessful JAntJava.create() doesn't do anything
-    * [ANTDROID-380] - Change target API to 7 for onStartCommand() support
-    * [ANTDROID-382] - Service will not run for ever once restarted after being destroyed
-    * [ANTDROID-384] - Nullpointer in disable thread if onDestroy was called
-
-Code Task
-
-    * [ANTDROID-126] - Ensure header/license is on all possibly released source files
-    * [ANTDROID-331] - Update/Sync up documentation of AIDL system service interface
-    * [ANTDROID-338] - Update projects for ADT r14 (naming and configuration)
-
-Improvement
-
-    * [ANTDROID-222] - Each component adding to/modifying Android framework should include full path within Android source
-
-New Feature
-
-    * [ANTDROID-7] - Check if "ant" is in Settings.System.AIRPLANE_MODE_RADIOS.
-
-Task
-
-    * [ANTDROID-197] - Individual "how to include in build" file for each component, and Vendors Package HOW TO just says what the components are and where to find HOW TO for each
-
--------------------------------------------------------------
-
-v1.1.0 : 2011-10-14 : Android_System_AntHalService_1-1-0
-
-Bug
-
-    * [ANTDROID-198] - "Commented out mutex on tx message to test lower level mutex" commit, but change still exists
-    * [ANTDROID-215] - Manifest does not point to correct location of BootCompletedReceiver class
-
-Improvement
-
-    * [ANTDROID-170] - ANT HAL Service should start at BOOT_COMPLETED and run forever
-    * [ANTDROID-214] - Remove unnecessary Bluetooth and Vibrate permissions
-    * [ANTDROID-223] - Put enable and disable on their own threads
-
-Task
-
-    * [ANTDROID-176] - Create ANT HAL Service Release Notes / Revision history / versioning
-
--------------------------------------------------------------
-
-v1.0.0 : 2011-09-15 : Android_System_AntHalService_1-0-0
-
-Bug
-
-    * [ANTDROID-147] - Dead objects in AntService.java mCallbackList are not cleared
-    * [ANTDROID-149] - AntService and JAntJava are able to register multiple callback functions
-
-Improvement
-
-    * [ANTDROID-232] - Use a single JAntJava instance across enable/disables
-    * [ANTDROID-233] - Get state (enabled, enabling,...) of ANT chip from lowest layer
-    * [ANTDROID-234] - ANT System Service as independent application (not a thread in system_process)
-
-Task
-
-    * [ANTDROID-243] - Treat each component as independent from others (ie stack library, service, command line app, bluedroid rework)
-
--------------------------------------------------------------
-
-Previous versions were not a stand-alone component.
-
-=============================================================
-3. TODO
-
-ANTDROID-685    Update to follow Android Code Style guidelines
-ANTDROID-383    Allow multiple clients to register IAntHalCallback
-ANTDROID-346    Create AntHalLib
-ANTDROID-309    What is Version.java used for for AntHal?
-ANTDROID-246    Store platform specific values in system settings
-ANTDROID-244    Separate data and command paths
-
-=============================================================
-4. KNOWN ISSUES
-
-ANTDROID-961    On a phone with no BluetoothService, ANT HAL will not work
-ANTDROID-615    When debugging, registerCallback() doesn't check if callback is null before logging value
