diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 314b6ea..96bd16f 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -785,46 +785,6 @@
     for i, val in enumerate(target.args):
       if val == '--output':
         target.args[i + 1] = '$(out)'
-  elif target.script == "//tools/grit/stamp_grit_sources.py":
-    target.outputs = [re.sub('^\/\/', '', out) for out in target.outputs]
-    # Directory that contains grit scripts
-    target.args[0] = '`dirname $(location tools/grit/grit.py)`'
-    # Path to the stamp file
-    target.args[1] = '$(out)'
-    # Script tries to create args[2] file but this is not in the output.
-    # Specifying file under $(genDir) so that parent directory exists.
-    # If this file is used by other module, we may need to add this file to the outputs.
-    target.args[2] = '$(genDir)/' + target.args[2].split('/')[-1]
-  elif target.script == "//tools/grit/grit.py":
-    for i, val in enumerate(target.args):
-      if val == '-i':
-        # Delete leading ../..
-        filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
-        target.args[i + 1] = '$(location %s)' % filename
-      elif val == '-o':
-        filename = re.sub('^gen/', '', target.args[i + 1])
-        if filename == "net":
-          # This is a directory not a file
-          target.args[i + 1] = '$(genDir)/net'
-        else:
-          # This is an output fil
-          target.args[i + 1] = '$(location %s)' % filename
-      elif val == '--depfile':
-        # The depfile is replaced by adding /tools/**/*.py to the tools_files
-        # This is basically just globbing all the needed sources by hardcoding.
-        module.tool_files.update([
-            "tools/grit/**/*.py",
-            "third_party/six/src/six.py" # This is not picked up by default. Must be added
-        ])
-
-        # Delete the depfile argument
-        target.args[i] = ' '
-        target.args[i + 1] = ' '
-      elif val == '--input':
-        # Delete leading ../..
-        filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
-        # This is an output file so use $(location %s)
-        target.args[i + 1] = '$(location %s)' % filename
   elif target.script == "//net/tools/dafsa/make_dafsa.py":
     # This script generates .cc files but source (registry_controlled_domain.cc) in the target that
     # depends on this target includes .cc file this script generates.
@@ -888,10 +848,7 @@
 
   module.out.update(target.outputs)
 
-  if target.script == "//tools/grit/stamp_grit_sources.py":
-    # stamp_grit_sources.py is not executable
-    module.cmd = "python " + module.cmd
-  elif target.script == "//base/android/jni_generator/jni_generator.py":
+  if target.script == "//base/android/jni_generator/jni_generator.py":
     # android_jar.classes should be part of the tools as it list implicit classes
     # for the script to generate JNI headers.
     module.tool_files.add("base/android/jni_generator/android_jar.classes")
