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 4c6497c..ebd1541 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,7 +16,7 @@
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.dsi.ant.server"
-    android:versionName="3.2.0"
+    android:versionName="4.0.0"
     android:versionCode="030200"
     android:sharedUserId="android.uid.system">
 
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
