跳过正文

折腾俩老古董设备

·2106 字·
折腾搞机 Android
Lessthread
作者
Lessthread
目录

E人E本
#

型号为 K9

  • 高通 615 处理器
  • 安卓4.4
  • BL可以直接通过fastboot解锁

power+音量上 是recovery; power+音量下是fastboot; power+音量上+音量下是9008
全网也没找到折腾这玩意的文档,不过我提取到了升级包,分区镜像直接刷入就是完整的,多个 system 镜像逐个刷入即可
Root的话用Magisk早期版本重写boot.img就行,其他折腾方法同安卓4.4

原升级包下载链接,也可以致邮我获取

https://www.123865.com/s/GrarVv-Hbgn? 提取码:tqEM

电信特供三星s3
#

power+音量上 是recovery; power+音量下是download; 因为 I939I 是电信特供,所以试了些s3通用刷机包都不太行,这里附上原版刷机包和某论坛上的定制包,还有三方recovery

原版 https://www.123865.com/s/GrarVv-Qbgn? 提取码:FsJz

定制 https://www.123865.com/s/GrarVv-9bgn? 提取码:Rdm1

三方recovery https://www.123865.com/s/GrarVv-Abgn? 提取码:HX1E

其他
#

另外附上一段赛博辉光钟代码,可以放老设备上当时钟,修改自win的小站

<!doctype html>
<html>
    <head>
        <title>canvas dClock</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <style>
            body {
                background: #282525;
                text-align: center;
                margin: 0;
                padding: 0;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                min-height: 100vh;
                overflow: hidden;
            }
            
            canvas {
                max-width: 100%;
                height: auto;
            }
            
            .container {
                position: relative;
                width: 100%;
                max-width: 500px;
                margin: 0 auto;
            }
            
            footer {
                margin-top: 20px;
                color: #b3b3b3;
                font-size: 8pt;
            }
            
            footer a {
                color: #A2E3E0;
                text-decoration: none;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <canvas id="clock" width="500" height="200">
                一个canvas程序,请升级你的浏览器!
            </canvas>
        </div>
        <footer>
            <!-- <p>Design by:<a href="http://www.winotmk.com/">win</a> July.2015</p> -->
        </footer>
        <script type="text/javascript">
            var clock = document.getElementById("clock");
            var win = clock.getContext("2d");
            var isScrolling = false;
            var scrollCounter = 0;
            var scrollDigit = 0;
            // 小时和分钟的滚动状态变量
            var isHourScrolling = false;
            var hourScrollCounter = 0;
            var hourScrollDigit = 0;
            var isMinuteScrolling = false;
            var minuteScrollCounter = 0;
            var minuteScrollDigit = 0;
            // 记录上一次的时间,用于检测变动
            var lastHour = -1;
            var lastMinute = -1;
            // 用于模拟秒数更新,因为更新频率现在是100ms
            var frameCounter = 0;
            var simulatedSecond = 0;
            
            // 屏幕适配函数
            function resizeCanvas() {
                const container = document.querySelector('.container');
                const containerWidth = container.clientWidth;
                
                const canvasRatio = 500 / 200;
                const newWidth = Math.min(500, containerWidth);
                const newHeight = newWidth / canvasRatio;
                
                clock.style.width = newWidth + 'px';
                clock.style.height = newHeight + 'px';
                
                showTime(1, 50);
            }
            
            window.addEventListener('resize', resizeCanvas);
            resizeCanvas();
            
            //显示数字时钟
            function showTime(m, n) {
                win.clearRect(0, 0, 500, 500);
                var now = new Date;
                var hour = now.getHours();
                var min = now.getMinutes();
                var sec = Math.floor(now.getTime() / 1000) % 60; // 使用真实时间计算秒数
                
                // 检测小时变化,触发小时滚动
                if (lastHour !== -1 && lastHour !== hour && !isHourScrolling) {
                    isHourScrolling = true;
                    hourScrollCounter = 0;
                    hourScrollDigit = 0;
                }
                // 检测分钟变化,触发分钟滚动
                if (lastMinute !== -1 && lastMinute !== min && !isMinuteScrolling) {
                    isMinuteScrolling = true;
                    minuteScrollCounter = 0;
                    minuteScrollDigit = 0;
                }
                // 更新最后记录的时间
                lastHour = hour;
                lastMinute = min;
                
                // 每5分钟触发全屏滚动效果
                if (min % 5 === 0 && sec === 0 && !isScrolling) {
                    isScrolling = true;
                    scrollCounter = 0;
                    scrollDigit = 0;
                }
                
                if (isScrolling) {
                    // 滚动效果,依次显示0-9
                    let displayNum = scrollDigit;
                    bdigital(m + 20, n, displayNum);
                    bdigital(m + 180, n, displayNum);
                    bdigital(m + 340, n, displayNum);
                    
                    scrollCounter++;
                    if (scrollCounter >= 1) {  // 每个数字显示1帧(100ms)
                        scrollCounter = 0;
                        scrollDigit++;
                        if (scrollDigit > 9) {
                            isScrolling = false;
                        }
                    }
                } else {
                    // 正常显示时间,考虑小时和分钟的独立滚动
                    hour = hour >= 10 ? hour : "0" + hour;
                    min = min >= 10 ? min : "0" + min;
                    sec = sec >= 10 ? sec : "0" + sec;
                    
                    // 小时滚动效果
                    if (isHourScrolling) {
                        bdigital(m + 20, n, hourScrollDigit);
                        hourScrollCounter++;
                        if (hourScrollCounter >= 1) {  // 每个数字显示1帧(100ms)
                            hourScrollCounter = 0;
                            hourScrollDigit++;
                            if (hourScrollDigit > 9) {
                                isHourScrolling = false;
                            }
                        }
                    } else {
                        bdigital(m + 20, n, hour);
                    }
                    
                    // 分钟滚动效果
                    if (isMinuteScrolling) {
                        bdigital(m + 180, n, minuteScrollDigit);
                        minuteScrollCounter++;
                        if (minuteScrollCounter >= 1) {  // 每个数字显示1帧(100ms)
                            minuteScrollCounter = 0;
                            minuteScrollDigit++;
                            if (minuteScrollDigit > 9) {
                                isMinuteScrolling = false;
                            }
                        }
                    } else {
                        bdigital(m + 180, n, min);
                    }
                    
                    // 秒数正常更新,不参与滚动
                    bdigital(m + 340, n, sec);
                }
                
                //时,分,秒定位
                function bdigital(x, y, num) {
                    var ge = num % 10;
                    var shi = (parseInt(num / 10)) % 10;
                    digital(x, y, shi);
                    digital(x + 70, y, ge);
                }
                
                //竖线
                win.strokeStyle = '#666666';
                win.lineWidth = 0.75;
                win.lineCap = 'round';
                win.beginPath();
                win.moveTo(m + 167, n+49);
                win.lineTo(m + 167, n+110);
                win.moveTo(m + 326, n+49);
                win.lineTo(m + 326, n+110);
                win.stroke();
                
                //小时与分钟之间
                win.lineCap = 'round';
                win.strokeStyle = "#d69e07";
                win.shadowColor = '#c73406';
                win.shadowOffsetX = 0;
                win.shadowOffsetY = 0;
                win.shadowBlur = 30;  // 增强泛光效果
                win.lineWidth = 4;    // 增加线条粗细
                win.beginPath();
                win.moveTo(m + 167, n + 45);
                win.lineTo(m + 167, n + 55);
                win.fill();
                win.closePath();
                win.stroke();
                
                win.beginPath();
                win.moveTo(m + 167, n + 70);
                win.lineTo(m + 167, n + 80);
                win.fill();
                win.closePath();
                win.stroke();
                
                //分钟与秒之间
                win.beginPath();
                win.moveTo(m + 326, n + 45);
                win.lineTo(m + 326, n + 55);
                win.fill();
                win.closePath();
                win.stroke();
                
                win.beginPath();
                win.moveTo(m + 326, n + 70);
                win.lineTo(m + 326, n + 80);
                win.fill();
                win.closePath();
                win.stroke();
            }
            
            //显示一位数字
            function digital(x, y, num) {
                //设置风格
                function theme(){
                    var gradient = win.createLinearGradient(y, 0, y, x);
                    gradient.addColorStop("0", "#ff3f07");  // 更亮的起始颜色
                    gradient.addColorStop("0.5", "#ffa000"); // 更亮的中间颜色
                    gradient.addColorStop("1.0", "#ffe000"); // 更亮的结束颜色
                    
                    win.strokeStyle = gradient;
                    win.lineWidth = 3;  // 增加线条粗细
                    win.lineCap = 'round';
                    
                    // 增强辉光效果
                    win.shadowColor = '#ff3e00';
                    win.shadowOffsetX = 0;
                    win.shadowOffsetY = 0;
                    win.shadowBlur = 35;  // 增加模糊范围
                }
                
                // 添加泛光效果(多层叠加)
                function addGlow() {
                    // 第一层泛光
                    win.globalCompositeOperation = 'lighter';
                    win.lineWidth = 2;
                    win.strokeStyle = 'rgba(255, 150, 50, 0.7)';
                    win.shadowColor = '#ff5c40';
                    win.shadowBlur = 45;
                    
                    drawDigit();
                    
                    // 第二层泛光,范围更大但更透明
                    win.lineWidth = 1.5;
                    win.strokeStyle = 'rgba(255, 180, 80, 0.4)';
                    win.shadowBlur = 60;
                    
                    drawDigit();
                    
                    // 恢复默认混合模式
                    win.globalCompositeOperation = 'source-over';
                }
                
                function drawDigit() {
                    switch (num) {
                        case 0: zero(); break;
                        case 1: one(); break;
                        case 2: two(); break;
                        case 3: three(); break;
                        case 4: four(); break;
                        case 5: five(); break;
                        case 6: six(); break;
                        case 7: seven(); break;
                        case 8: eight(); break;
                        case 9: nine(); break;
                    }
                }
                
                function wang(){
                    win.lineWidth = 0.7;
                    win.strokeStyle = 'rgba(15,10,10,0.5)';
                    win.shadowColor = 'rgba(0,0,0,0)';
                    win.shadowOffsetX = 0;
                    win.shadowOffsetY = 0;
                    var k = 5;
                    for (var i=0; i<22; i++){
                        for (var j=0; j<13; j++){
                            win.beginPath();
                            win.arc(x+j*k+2, y+i*k+2, 2.3, 0, Math.PI*2, true);
                            win.stroke();
                        }
                    }
                }
                
                function nolight(){
                    win.strokeStyle = '#666666';
                    win.lineWidth = 1;
                    win.lineCap = 'round';
                    win.shadowColor = 'rgba(0,0,0,0)';
                    win.shadowOffsetX = 0;
                    win.shadowOffsetY = 0;
                    zero(); one(); two(); three(); four();
                    five(); six(); seven(); eight(); nine();
                }
                
                //0
                function zero() {
                    var k = .7922848,
                        a = 23,
                        b = 48,
                        ox = a * k, // 水平控制点偏移量
                        oy = b * k, // 垂直控制点偏移量
                        x2 = x+32,
                        y2 = y+54;
                    
                    win.beginPath();
                    //从椭圆的左端点开始顺时针绘制四条三次贝塞尔曲线
                    win.moveTo(x2 - a, y2);
                    win.bezierCurveTo(x2 - a, y2 - oy, x2 - ox, y2 - b, x2, y2 - b);
                    win.bezierCurveTo(x2 + ox, y2 - b, x2 + a, y2 - oy, x2 + a, y2);
                    win.bezierCurveTo(x2 + a, y2 + oy, x2 + ox, y2 + b, x2, y2 + b);
                    win.bezierCurveTo(x2 - ox, y2 + b, x2 - a, y2 + oy, x2 - a, y2);
                    win.stroke();
                }
                
                //1
                function one() {
                    win.beginPath();
                    win.moveTo(x+27, y+7);
                    win.lineTo(x+24, y+103);
                    win.stroke();
                }
                
                //2
                function two() {
                    win.beginPath();
                    win.moveTo(x+9, y+25);
                    win.quadraticCurveTo(x+9, y+5, x+31.5, y+5);
                    win.quadraticCurveTo(x+54, y+5, x+54, y+25);
                    win.quadraticCurveTo(x+56, y+41, x+35, y+60);
                    win.quadraticCurveTo(x+10, y+82, x+10, y+97);
                    win.quadraticCurveTo(x+50, y+97, x+55, y+97);
                    win.stroke();
                }
                
                //3
                function three() {
                    win.beginPath();
                    win.moveTo(x+9, y+9);
                    win.lineTo(x+46, y+9);
                    win.quadraticCurveTo(x+32, y+35, x+24, y+44);
                    win.quadraticCurveTo(x+49, y+41, x+46, y+71);
                    win.quadraticCurveTo(x+46, y+100, x+26, y+100);
                    win.quadraticCurveTo(x+7, y+100, x+7, y+85);
                    win.stroke();
                }
                
                //4
                function four() {
                    win.beginPath();
                    win.moveTo(x+39, y+100);
                    win.lineTo(x+38, y+10);
                    win.lineTo(x+30, y+10);
                    win.lineTo(x+6, y+75);
                    win.lineTo(x+49, y+75);
                    win.stroke();
                }
                
                //5
                function five() {
                    win.beginPath();
                    win.moveTo(x+46, y+9);
                    win.lineTo(x+18, y+9);
                    win.lineTo(x+11, y+51);
                    win.quadraticCurveTo(x+21, y+41, x+30, y+41);
                    win.quadraticCurveTo(x+49, y+41, x+49, y+73);
                    win.quadraticCurveTo(x+49, y+101, x+30, y+101);
                    win.quadraticCurveTo(x+12, y+100, x+9, y+82);
                    win.stroke();
                }
                
                //6
                function six() {
                    win.beginPath();
                    win.moveTo(x+33, y+7);
                    win.quadraticCurveTo(x+10, y+35, x+10, y+69);
                    win.quadraticCurveTo(x+9, y+98, x+30, y+98);
                    win.quadraticCurveTo(x+53, y+97, x+53, y+69);
                    win.quadraticCurveTo(x+52, y+43, x+33, y+43);
                    win.quadraticCurveTo(x+10, y+47, x+10, y+69);
                    win.stroke();
                }
                
                //7
                function seven() {
                    win.beginPath();
                    win.moveTo(x+5, y+12);
                    win.lineTo(x+52, y+12);
                    win.lineTo(x+30, y+100);
                    win.stroke();
                }
                
                //8
                function eight() {
                    win.beginPath();
                    win.moveTo(x+31, y+8);
                    win.quadraticCurveTo(x+12, y+8, x+12, y+27.5);
                    win.quadraticCurveTo(x+12, y+47, x+31, y+47);
                    win.quadraticCurveTo(x+53, y+47, x+53, y+75);
                    win.quadraticCurveTo(x+53, y+102, x+31, y+102);
                    win.quadraticCurveTo(x+9, y+102, x+9, y+75);
                    win.quadraticCurveTo(x+12, y+47, x+31, y+47);
                    win.quadraticCurveTo(x+50, y+47, x+50, y+27.5);
                    win.quadraticCurveTo(x+50, y+8, x+31, y+8);
                    win.stroke();
                }
                
                //9
                function nine() {
                    win.beginPath();
                    win.moveTo(x+24, y+100);
                    win.quadraticCurveTo(x+46, y+77, x+50, y+53);
                    win.quadraticCurveTo(x+52, y+39, x+52, y+29);
                    win.quadraticCurveTo(x+52, y+7, x+31, y+7);
                    win.quadraticCurveTo(x+11, y+7, x+11, y+31);
                    win.quadraticCurveTo(x+11, y+50, x+31, y+50);
                    win.quadraticCurveTo(x+52, y+50, x+52, y+29);
                    win.stroke();
                }
                
                //数字n
                function number(n) {
                    switch (n) {
                        case 0: nolight(), theme(), zero(), addGlow(), wang(); break;
                        case 1: nolight(), theme(), one(), addGlow(), wang(); break;
                        case 2: nolight(), theme(), two(), addGlow(), wang(); break;
                        case 3: nolight(), theme(), three(), addGlow(), wang(); break;
                        case 4: nolight(), theme(), four(), addGlow(), wang(); break;
                        case 5: nolight(), theme(), five(), addGlow(), wang(); break;
                        case 6: nolight(), theme(), six(), addGlow(), wang(); break;
                        case 7: nolight(), theme(), seven(), addGlow(), wang(); break;
                        case 8: nolight(), theme(), eight(), addGlow(), wang(); break;
                        case 9: nolight(), theme(), nine(), addGlow(), wang(); break;
                    }
                }
                number(num);
            }
            
            // 每100毫秒更新一次时钟显示(之前是1000毫秒)
            setInterval("showTime(1,50)", 100);
        </script>
    </body>
</html>

comments powered by Disqus