小米电视3 android,小米电视系列ROOT教程(含4A,4S,4X等Android6.0.1版机型)

本帖最后由 MozhiTX 于 2020-6-11 09:55 编辑

首先,根据小米电视4A 65寸ROOT方法帖子的方法,本人尝试了不下20次,一直启动到小米自带的Recovery,无法进入到Twry Recovery。就FQ出去看了看,发现4pda上也有不少遇到相同问题的人,不过好在找到了解决问题的方法!原因在与:进入官方Recovery,对应触发的adb命令为  adb reboot recovery

进入Twry Recovery对应的adb命令为  adb reboot update

此处不用太在意,下面仔细说说ROOT全过程,包括刷入Magisk失败的问题!

------------------------------------教程开始------------------------------------

1、下载附件

链接:https://pan.baidu.com/s/19oPlzPSorCFCkdTAzS2ePQ 提取码:

游客,如果您要查看本帖隐藏内容请回复

2、附件内包含2个压缩文件

Reboot.zip包含adb组件和电视机重启到Twry Recovery的bat脚本。     TWRP_01-03.zip包含三组U盘文件,默认选01,若01有问题,再尝试02、03文件。

3、解压reboot.zip到电脑任意位置

格式化U盘为FAT32格式(其他格式未尝试,原作者也建议是这个)。

解压TWRP三组中任意一组文件到U盘根目录(不要有文件夹),插到电视USB接口。

4、电视开机情况下,连续点击设置-关于-产品型号一栏,直至出现已为开发者模式后

再进入电视产品与安全选项,开启adb调试功能。

5、修改reboot下reboot_update.cmd文件中的IP地址为当前电视机的IP,如 192.168.1.206

6、运行reboot_update.cmd,此时电视机会提示,请选择允许。(选择后电视未重启的情况下,再次运行脚本)

7、此时电视应该重启到Twry Recovery了。

在Twry Recovery中,收入install选项,挂载U盘后,选择Magisk-v19.1.zip刷入。

如果显示刷入失败,请回到主菜单进入Mount选项,勾选System,再次刷入即可。

在此附上原贴翻译截图:

e2b1678204adc85927e952fe32984997.gif

1.jpg (42.9 KB, 下载次数: 12)

2020-6-7 21:15 上传

e2b1678204adc85927e952fe32984997.gif

2.jpg (63.31 KB, 下载次数: 13)

2020-6-7 21:15 上传

----------------------------编辑修改---------------------------------

鉴于部分反映进不去Twry模式的机油,我再说一下,原贴已指出某些记性在特定的软件版本时无法进入Twry,请看图或者直接进原贴看。

e2b1678204adc85927e952fe32984997.gif

无标题.png (69.37 KB, 下载次数: 11)

2020-6-11 09:05 上传

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A: 要实现android汽车3D旋转并添加按钮,需要使用OpenGL ES库和一些基本的绘图技术来绘制3D图形和旋转效果。以下是详细的步骤: 1. 创建OpenGL ES视图: 您需要在Activity中创建OpenGL ES视图。创建视图和设置相应的参数如下: ``` class MyGLSurfaceView extends GLSurfaceView { public MyGLSurfaceView(Context context) { super(context); // Create an OpenGL ES 2.0 context. setEGLContextClientVersion(2); // Set the Renderer for drawing on the GLSurfaceView setRenderer(new MyRenderer()); } } ``` 2. 创建Renderer: Renderer类用于控制OpenGL ES绘图并呈现视觉效果。您需要重写onSurfaceCreated、onSurfaceChanged和onDrawFrame方法。以下是Renderer类的基本实现: ``` class MyRenderer implements GLSurfaceView.Renderer { private CarModel mCar; public void onSurfaceCreated(GL10 unused, EGLConfig config) { // Set the background color GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Initialize the car model mCar = new CarModel(); mCar.loadModel(); } public void onDrawFrame(GL10 unused) { // Clear the screen GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); // Draw the car model mCar.draw(); } public void onSurfaceChanged(GL10 unused, int width, int height) { // Adjust the viewport based on screen dimensions GLES20.glViewport(0, 0, width, height); } } ``` 3. 创建CarModel: 您需要定义一个CarModel类,以便可以加载汽车模型并渲染它。以下是CarModel类的实现: ``` class CarModel { private FloatBuffer mVertexBuffer; private ShortBuffer mDrawListBuffer; private int mProgram; public void loadModel() { // Load the car model into vertex buffer mVertexBuffer = ByteBuffer.allocateDirect(carVertices.length * 4) .order(ByteOrder.nativeOrder()).asFloatBuffer(); mVertexBuffer.put(carVertices).position(0); // Load the car model draw list into buffer mDrawListBuffer = ByteBuffer.allocateDirect(carDrawOrder.length * 2) .order(ByteOrder.nativeOrder()).asShortBuffer(); mDrawListBuffer.put(carDrawOrder).position(0); // Load and compile the vertex shader int vertexShader = MyGLSurfaceView.loadShader(GLES20.GL_VERTEX_SHADER, vertexShaderCode); // Load and compile the fragment shader int fragmentShader = MyGLSurfaceView.loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentShaderCode); // Create OpenGL ES program and link the shaders mProgram = GLES20.glCreateProgram(); GLES20.glAttachShader(mProgram, vertexShader); GLES20.glAttachShader(mProgram, fragmentShader); GLES20.glLinkProgram(mProgram); } public void draw() { // Use the program GLES20.glUseProgram(mProgram); // Get handle to vertex shader's vPosition member int mPositionHandle = GLES20.glGetAttribLocation(mProgram, "vPosition"); // Enable a handle to the vertices GLES20.glEnableVertexAttribArray(mPositionHandle); // Prepare the vertex data GLES20.glVertexAttribPointer( mPositionHandle, COORDS_PER_VERTEX, GLES20.GL_FLOAT, false, vertexStride, mVertexBuffer); // Get handle to fragment shader's vColor member int mColorHandle = GLES20.glGetUniformLocation(mProgram, "vColor"); // Set color for drawing the car GLES20.glUniform4fv(mColorHandle, 1, carColor, 0); // Draw the car GLES20.glDrawElements( GLES20.GL_TRIANGLES, carDrawOrder.length, GLES20.GL_UNSIGNED_SHORT, mDrawListBuffer); // Disable vertex array GLES20.glDisableVertexAttribArray(mPositionHandle); } } ``` 其中,vertexStride指每个顶点数据在缓冲区中所占的字节数({x, y, z} * 4)。 4. 添加按钮: 要添加按钮,您可以在Activity中使用布局文件添加一个Button组件。在Button的OnClickListener中实现汽车旋转逻辑。以下是Activity的基本实现: ``` public class MainActivity extends Activity implements View.OnClickListener { private MyGLSurfaceView mGLView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Create a GLSurfaceView instance and set it as the ContentView mGLView = new MyGLSurfaceView(this); setContentView(mGLView); // Add a button to the layout Button rotateButton = new Button(this); rotateButton.setText("Rotate"); rotateButton.setOnClickListener(this); FrameLayout layout = new FrameLayout(this); layout.addView(mGLView); layout.addView(rotateButton, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); setContentView(layout); } public void onClick(View v) { // Rotate the car // ... } } ``` 当用户点击按钮时,您需要在CarModel类中实现旋转逻辑。以下是一种可能的实现方式: ``` class CarModel { private float mRotation = 0.0f; public void rotate(float degrees) { mRotation += degrees; } public void draw() { // Rotate the car Matrix.setIdentityM(mRotationMatrix, 0); Matrix.rotateM(mRotationMatrix, 0, mRotation, 0, 1.0f, 0); // Apply the rotation matrix to the model coordinates Matrix.multiplyMM(mMVPMatrix, 0, mRotationMatrix, 0, mModelMatrix, 0); // ... } } ``` 在以上代码中,mRotationMatrix是一个4x4矩阵,用于旋转汽车模型。mModelMatrix是一个4x4矩阵,用于压缩、平移和旋转汽车模型,以便它在场景中位于正确的位置。 这就是在Android中实现汽车3D旋转并添加按钮的基本步骤。请注意,这只是一个示例实现方式,并且存在许多实现汽车旋转的不同方法,例如使用传感器等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值