diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..e74c256
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,27 @@
+// Copyright (c) 2011 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//    * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//    * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//    * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/android_sample/SampleApp/AndroidManifest.xml b/android_sample/SampleApp/AndroidManifest.xml
index cf6e5a7..16d228a 100644
--- a/android_sample/SampleApp/AndroidManifest.xml
+++ b/android_sample/SampleApp/AndroidManifest.xml
@@ -1,17 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 Skia
+<!-- Copyright 2011 Google Inc.
 
-     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.
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.skia.sampleapp"
diff --git a/android_sample/SampleApp/res/layout/layout.xml b/android_sample/SampleApp/res/layout/layout.xml
index d71116b..cdb90e9 100644
--- a/android_sample/SampleApp/res/layout/layout.xml
+++ b/android_sample/SampleApp/res/layout/layout.xml
@@ -1,17 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 Skia
+<!-- Copyright 2011 Google Inc.
 
-     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.
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file.
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/holder"
diff --git a/android_sample/SampleApp/res/menu/sample.xml b/android_sample/SampleApp/res/menu/sample.xml
index 96399bd..91cb07d 100644
--- a/android_sample/SampleApp/res/menu/sample.xml
+++ b/android_sample/SampleApp/res/menu/sample.xml
@@ -1,17 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 Skia
+<!-- Copyright 2011 Google Inc.
 
-     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.
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file.
 -->
 
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
diff --git a/android_sample/SampleApp/res/values/strings.xml b/android_sample/SampleApp/res/values/strings.xml
index 487f335..e87c83b 100644
--- a/android_sample/SampleApp/res/values/strings.xml
+++ b/android_sample/SampleApp/res/values/strings.xml
@@ -1,17 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 Skia
+<!-- Copyright 2011 Google Inc.
 
-     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.
+     Use of this source code is governed by a BSD-style license that can be
+     found in the LICENSE file.
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name">SampleApp</string>
diff --git a/android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java b/android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
index 03a6d71..f03c95c 100644
--- a/android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
+++ b/android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
@@ -1,17 +1,8 @@
 /*
- * Copyright (C) 2011 Skia
+ * Copyright 2011 Google Inc.
  *
- * 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.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  */
 
 package com.skia.sampleapp;
diff --git a/android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java b/android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
index 56f7c12..9a4cfcb 100644
--- a/android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
+++ b/android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
@@ -1,17 +1,8 @@
 /*
- * Copyright (C) 2011 Skia
+ * Copyright 2011 Google Inc.
  *
- * 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.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  */
 
 package com.skia.sampleapp;
diff --git a/experimental/CocoaDebugger/main.m b/experimental/CocoaDebugger/main.m
index 30daa0e..cd85c6d 100644
--- a/experimental/CocoaDebugger/main.m
+++ b/experimental/CocoaDebugger/main.m
@@ -3,7 +3,9 @@
 //  CocoaSampleApp
 //
 //  Created by Yang Su on 6/14/11.
-//  Copyright 2011 Google Inc. All rights reserved.
+//  Copyright 2011 Google Inc.
+//  Use of this source code is governed by a BSD-style license that can be
+//  found in the LICENSE file.
 //
 
 #import <Cocoa/Cocoa.h>
diff --git a/experimental/FileReaderApp/main.m b/experimental/FileReaderApp/main.m
index 30daa0e..cd85c6d 100644
--- a/experimental/FileReaderApp/main.m
+++ b/experimental/FileReaderApp/main.m
@@ -3,7 +3,9 @@
 //  CocoaSampleApp
 //
 //  Created by Yang Su on 6/14/11.
-//  Copyright 2011 Google Inc. All rights reserved.
+//  Copyright 2011 Google Inc.
+//  Use of this source code is governed by a BSD-style license that can be
+//  found in the LICENSE file.
 //
 
 #import <Cocoa/Cocoa.h>
diff --git a/experimental/SimpleCocoaApp/main.m b/experimental/SimpleCocoaApp/main.m
index 30daa0e..cd85c6d 100644
--- a/experimental/SimpleCocoaApp/main.m
+++ b/experimental/SimpleCocoaApp/main.m
@@ -3,7 +3,9 @@
 //  CocoaSampleApp
 //
 //  Created by Yang Su on 6/14/11.
-//  Copyright 2011 Google Inc. All rights reserved.
+//  Copyright 2011 Google Inc.
+//  Use of this source code is governed by a BSD-style license that can be
+//  found in the LICENSE file.
 //
 
 #import <Cocoa/Cocoa.h>
diff --git a/experimental/iOSSampleApp/Shared/SkAlertPrompt.m b/experimental/iOSSampleApp/Shared/SkAlertPrompt.m
index 5156b10..be0adf5 100644
--- a/experimental/iOSSampleApp/Shared/SkAlertPrompt.m
+++ b/experimental/iOSSampleApp/Shared/SkAlertPrompt.m
@@ -3,7 +3,9 @@
 //  iOSSampleApp
 //
 //  Created by Yang Su on 7/6/11.
-//  Copyright 2011 Google Inc. All rights reserved.
+//  Copyright 2011 Google Inc.
+//  Use of this source code is governed by a BSD-style license that can be
+//  found in the LICENSE file.
 //
 
 #import "SkAlertPrompt.h"
diff --git a/experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig b/experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
index 80de334..e2ce01f 100644
--- a/experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
+++ b/experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
@@ -3,7 +3,9 @@
 //  iOSSampleApp
 //
 //  Created by Yang Su on 6/30/11.
-//  Copyright 2011 Google Inc. All rights reserved.
+//  Copyright 2011 Google Inc.
+//  Use of this source code is governed by a BSD-style license that can be
+//  found in the LICENSE file.
 //
 GCC_PREFIX_HEADER=iOSSampleApp_Prefix.pch
 
diff --git a/experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig b/experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
index 63ea57f..eafd949 100644
--- a/experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
+++ b/experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
@@ -3,7 +3,9 @@
 //  iOSSampleApp
 //
 //  Created by Yang Su on 6/30/11.
-//  Copyright 2011 Google Inc. All rights reserved.
+//  Copyright 2011 Google Inc.
+//  Use of this source code is governed by a BSD-style license that can be
+//  found in the LICENSE file.
 //
 #include "SkiOSSampleApp-Base"
 
diff --git a/experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig b/experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
index 6acdbc3..1720318 100644
--- a/experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
+++ b/experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
@@ -3,7 +3,9 @@
 //  iOSSampleApp
 //
 //  Created by Yang Su on 6/30/11.
-//  Copyright 2011 Google Inc. All rights reserved.
+//  Copyright 2011 Google Inc.
+//  Use of this source code is governed by a BSD-style license that can be
+//  found in the LICENSE file.
 //
 #include "SkiOSSampleApp-Base"
 GCC_PREPROCESSOR_DEFINITIONS=SK_RELEASE SK_BUILD_FOR_IOS
diff --git a/gyp/common.gypi b/gyp/common.gypi
index 1c925ba..6bba0f2 100644
--- a/gyp/common.gypi
+++ b/gyp/common.gypi
@@ -1,16 +1,7 @@
-# Copyright (C) 2011 The Android Open Source Project
+# Copyright 2011 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.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 {
   # Define all variables, allowing for override in GYP_DEFINES.
   #
diff --git a/gyp_skia b/gyp_skia
index bf2feba..f44d991 100755
--- a/gyp_skia
+++ b/gyp_skia
@@ -1,18 +1,9 @@
 #!/usr/bin/python
+
+# Copyright 2011 The Android Open Source Project
 #
-# Copyright (C) 2011 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.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 # This script is a wrapper which invokes gyp with the correct --depth argument,
 # and supports the automatic regeneration of build files if all.gyp is
diff --git a/include/ports/SkHarfBuzzFont.h b/include/ports/SkHarfBuzzFont.h
index b1fce0e..66c5534 100644
--- a/include/ports/SkHarfBuzzFont.h
+++ b/include/ports/SkHarfBuzzFont.h
@@ -1,31 +1,8 @@
 /*
- * Copyright (c) 2009, Google Inc. All rights reserved.
+ * Copyright 2009 Google Inc.
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  */
 
 #ifndef SkHarfBuzzFont_DEFINED
@@ -63,4 +40,3 @@
 };
 
 #endif
-
diff --git a/make.bat b/make.bat
index a2c1664..fbe0a35 100644
--- a/make.bat
+++ b/make.bat
@@ -1,16 +1,7 @@
 @rem    Copyright 2011 Google Inc.
 @rem
-@rem    Licensed under the Apache License, Version 2.0 (the "License");
-@rem    you may not use this file except in compliance with the License.
-@rem    You may obtain a copy of the License at
-@rem
-@rem         http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem    Unless required by applicable law or agreed to in writing, software
-@rem    distributed under the License is distributed on an "AS IS" BASIS,
-@rem    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem    See the License for the specific language governing permissions and
-@rem    limitations under the License.
+@rem    Use of this source code is governed by a BSD-style license that can be
+@rem    found in the LICENSE file.
 
 @rem Launches make.py on Windows, after setting Visual Studio environment variables.
 @rem See http://code.google.com/p/skia/wiki/GettingStartedOnWindows
diff --git a/make.py b/make.py
index fd05a82..a4081a2 100644
--- a/make.py
+++ b/make.py
@@ -1,16 +1,7 @@
-#    Copyright 2011 Google Inc.
+# Copyright 2011 Google Inc.
 #
-#    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.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 # "Makefile" replacement to build skia for Windows.
 # More info at http://code.google.com/p/skia/wiki/DocRoot
@@ -182,4 +173,3 @@
 Make(sys.argv[1:])
 
     
-
diff --git a/samplecode/SampleDrawBitmap.cpp b/samplecode/SampleDrawBitmap.cpp
index d15f748..aaf1123 100644
--- a/samplecode/SampleDrawBitmap.cpp
+++ b/samplecode/SampleDrawBitmap.cpp
@@ -1,3 +1,10 @@
+
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
 #include "SampleCode.h"
 #include "SkView.h"
 #include "SkCanvas.h"
@@ -75,4 +82,3 @@
 
 static SkView* MyFactory() { return new DrawBitmapView; }
 static SkViewRegister reg(MyFactory);
-
diff --git a/src/opts/memset.arm.S b/src/opts/memset.arm.S
index 04a7027..7732174 100644
--- a/src/opts/memset.arm.S
+++ b/src/opts/memset.arm.S
@@ -1,17 +1,8 @@
 /*
- * Copyright (C) 2010 The Android Open Source Project
+ * Copyright 2010 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.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  */
 
 /* Changes:
diff --git a/src/opts/memset16_neon.S b/src/opts/memset16_neon.S
index b47cc22..b1719fa 100644
--- a/src/opts/memset16_neon.S
+++ b/src/opts/memset16_neon.S
@@ -1,17 +1,8 @@
 /***************************************************************************
- Copyright (c) 2009,2010, Code Aurora Forum. All rights reserved.
-
- 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.
+ * Copyright (c) 2009,2010, Code Aurora Forum. All rights reserved.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  ***************************************************************************/
 
 /***************************************************************************
diff --git a/src/opts/memset32_neon.S b/src/opts/memset32_neon.S
index 9052c4f..a9eaa0e 100644
--- a/src/opts/memset32_neon.S
+++ b/src/opts/memset32_neon.S
@@ -1,17 +1,8 @@
 /***************************************************************************
- Copyright (c) 2009,2010, Code Aurora Forum. All rights reserved.
-
- 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.
+ * Copyright (c) 2009,2010, Code Aurora Forum. All rights reserved.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  ***************************************************************************/
 
 	.code 32
diff --git a/src/opts/opts_check_arm.cpp b/src/opts/opts_check_arm.cpp
index 4fcea2d..9d87b23 100644
--- a/src/opts/opts_check_arm.cpp
+++ b/src/opts/opts_check_arm.cpp
@@ -1,18 +1,9 @@
 /***************************************************************************
- Copyright (c) 2010, Code Aurora Forum. All rights reserved.
- Copyright 2006-2010, 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.
+ * Copyright (c) 2010, Code Aurora Forum. All rights reserved.
+ * Copyright 2006-2010, The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  ***************************************************************************/
 
 /* Changes:
diff --git a/src/ports/SkDebug_brew.cpp b/src/ports/SkDebug_brew.cpp
index 03f7968..b7ad3ef 100644
--- a/src/ports/SkDebug_brew.cpp
+++ b/src/ports/SkDebug_brew.cpp
@@ -1,20 +1,11 @@
 /* libs/corecg/SkDebug_brew.cpp
-**
-** Copyright 2009, The Android Open Source Project
-** Copyright 2009, Company 100, Inc.
-**
-** 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.
-*/
+ *
+ * Copyright 2009, The Android Open Source Project
+ * Copyright 2009, Company 100, Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
 
 #include "SkTypes.h"
 
diff --git a/src/ports/SkMemory_brew.cpp b/src/ports/SkMemory_brew.cpp
index fe73d5b..3b66ba2 100644
--- a/src/ports/SkMemory_brew.cpp
+++ b/src/ports/SkMemory_brew.cpp
@@ -1,20 +1,11 @@
 /* libs/graphics/ports/SkMemory_brew.cpp
-**
-** Copyright 2009, The Android Open Source Project
-** Copyright 2009, Company 100, Inc.
-**
-** 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.
-*/
+ *
+ * Copyright 2009, The Android Open Source Project
+ * Copyright 2009, Company 100, Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
 
 #include "SkTypes.h"
 
@@ -62,4 +53,3 @@
 }
 
 #endif
-
diff --git a/src/ports/SkOSFile_brew.cpp b/src/ports/SkOSFile_brew.cpp
index 9c7c072..50e133f 100644
--- a/src/ports/SkOSFile_brew.cpp
+++ b/src/ports/SkOSFile_brew.cpp
@@ -1,20 +1,12 @@
 /* libs/graphics/ports/SkOSFile_brew.cpp
-**
-** Copyright 2006, The Android Open Source Project
-** Copyright 2009, Company 100, Inc.
-**
-** 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.
-*/
+ *
+ * Copyright 2006, The Android Open Source Project
+ * Copyright 2009, Company 100, Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
 
 #include "SkOSFile.h"
 
@@ -96,4 +88,3 @@
 }
 
 #endif
-
diff --git a/src/utils/ios/SkImageDecoder_iOS.mm b/src/utils/ios/SkImageDecoder_iOS.mm
index fc4316a..77d49a5 100755
--- a/src/utils/ios/SkImageDecoder_iOS.mm
+++ b/src/utils/ios/SkImageDecoder_iOS.mm
@@ -1,6 +1,9 @@
 /*
-    Copyright 2010, Tetrark Inc.
-*/
+ * Copyright 2010 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
 
 #import <CoreGraphics/CoreGraphics.h>
 #include <CoreGraphics/CGColorSpace.h>
diff --git a/src/utils/ios/SkOSFile_iOS.mm b/src/utils/ios/SkOSFile_iOS.mm
index b74ea14..a685761 100755
--- a/src/utils/ios/SkOSFile_iOS.mm
+++ b/src/utils/ios/SkOSFile_iOS.mm
@@ -1,6 +1,10 @@
 /*
-    Copyright 2010, Tetrark Inc.
-*/
+ * Copyright 2010 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
 #include <Foundation/Foundation.h>
 #include "SkOSFile.h"
 #include "SkString.h"
diff --git a/src/utils/ios/SkStream_NSData.mm b/src/utils/ios/SkStream_NSData.mm
index 0586cd6..ef20f63 100755
--- a/src/utils/ios/SkStream_NSData.mm
+++ b/src/utils/ios/SkStream_NSData.mm
@@ -1,5 +1,8 @@
 /*
-    Copyright 2010, Tetrark Inc.
+ * Copyright 2010 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  */
 
 #include "SkStream_NSData.h"
diff --git a/tests/FillPathTest.cpp b/tests/FillPathTest.cpp
index ffc9f8e..8621c8e 100644
--- a/tests/FillPathTest.cpp
+++ b/tests/FillPathTest.cpp
@@ -1,17 +1,8 @@
 /*
- * Copyright (C) 2010 The Chromium Authors. All rights reserved.
+ * Copyright 2010 Google Inc.
  *
- * 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.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
  */
 
 #include "Test.h"
