Comstackndo el código fuente del renderscript

Como mencioné en mi publicación anterior ( Comstackción del código del renderscript en time de ejecución ), trato de comstackr código de renderscript en time de ejecución. Según lo sugerido por Kietz, necesito modificar la class ScriptC a partir de la cual se derivan todas las classs java generadas. Hacer mi propia class que extiende el script falla porque no puedo invocar al constructor de esta superclass.

Este fragment del código

public class RuntimeScriptC extends Script { private static final String TAG = "RuntimeScriptC"; protected RuntimeScriptC(int id, RenderScript rs) { super(id, rs); } 

me da este error:

 The constructor Script(int, RenderScript) is undefined 

Mi siguiente idea fue agregar mi propia class al código fuente del renderscript y comstackrlo para crear un nuevo .jar. Encontré el código fuente en git pero no tengo idea de cómo crear solo el package de renderscript.

Editar: Acabo de descubrir que el constructor de Script.java es un package privado. Es por eso que no puedo acceder al constructor en mi propia class. Si yo mismo puedo comstackr las fonts de renderscript, podría colocar mi propia class en el package y acceder a ella.

Nueva pregunta: ¿Dónde puedo encontrar las fonts del renderscript y cómo puedo comstackrlas?

La fuente de RenderScript se puede encontrar en android.googlesource.com , junto con la del rest de Android. Si quiere rebuild Android o una parte de él, aquí es probablemente un buen lugar para comenzar.

Sin embargo, eso es exagerado. Si no puede modificar ScriptC directamente, simplemente henetworkinge de allí. Esto es posible porque los únicos methods que necesita de ScriptC son sus constructores protegidos. Por ejemplo, escribí HackedScriptC que no hace más que reenviar sus arguments a ScriptC() :

 package com.example.android.rs.extremehax; import android.content.res.Resources; import android.renderscript.RenderScript; import android.renderscript.ScriptC; public class HackedScriptC extends ScriptC { public HackedScriptC(RenderScript rs, Resources resources, int id) { // simple passthru to the only constructor that ScriptC_mono uses super(rs, resources, id); } } 

Ahora se puede sustituir por ScriptC en una class de pegamento:

 package com.example.android.rs.extremehax; // ... public class ScriptC_mono extends HackedScriptC { // otherwise identical glue class... 

En su caso, no invocaría el constructor súper ScriptC(RenderScript,Resources,int) porque invoca a internalCreate , que desea sobrescribir. En su lugar, invoque ScriptC(int,RenderScript) .