Ensure that split names are valid

Generate valid split names for resource splits.
Validate split names for features.

Change-Id: I3040438af0156778c2bd66ddeffdf62fe9dcc9fc
diff --git a/tools/aapt/ApkBuilder.cpp b/tools/aapt/ApkBuilder.cpp
index 12f6040..01e02e2 100644
--- a/tools/aapt/ApkBuilder.cpp
+++ b/tools/aapt/ApkBuilder.cpp
@@ -85,11 +85,24 @@
         if (mName.size() > 0) {
             mName.append(",");
             mDirName.append("_");
+            mPackageSafeName.append(".");
         }
 
         String8 configStr = iter->toString();
+        String8 packageConfigStr(configStr);
+        size_t len = packageConfigStr.length();
+        if (len > 0) {
+            char* buf = packageConfigStr.lockBuffer(len);
+            for (char* end = buf + len; buf < end; ++buf) {
+                if (*buf == '-') {
+                    *buf = '_';
+                }
+            }
+            packageConfigStr.unlockBuffer(len);
+        }
         mName.append(configStr);
         mDirName.append(configStr);
+        mPackageSafeName.append(packageConfigStr);
     }
 }